阿里云ECS构建大数据平台实践-基于Apache Hadoop

本文涉及的产品
云防火墙,500元 1000GB
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 基于阿里云ECS云服务器进行搭建私有的大数据平台,采用Apache Hadoop生态,为大数据提供存储及处理。

0. 项目背景

基于阿里云ECS云服务器进行搭建私有的大数据平台,采用Apache Hadoop生态,为大数据提供存储及处理。


1. 购买ECS云服务器实例

在这里,因为实验需要3个节点,所以我们购买3台ECS实例。


b7a8ceb2e5d2009acfcc93352262ab22084eed9c
8e8e45292577f6ddbdc43c6a4a11a54b899692fd

2. 远程登录服务器,进行基础环境的配置。

# 工欲善其事,必先利其器

# 前提准备


# 安装系统命令

yum -y install wget vim ntpdate net-tools ntpdate


2.1 节点信息

172.18.53.98 master

172.18.53.99 slave1

172.18.53.100 slave2


2.2 修改主机名,每一个节点都需要修改。

76b34f7540a6724f100d02d7ede036d2931c1116

2.3 配置主机文件(每一个节点都需要执行)

vi /etc/hosts
172.18.53.98 master
172.18.53.99 slave1
172.18.53.100 slave2

f8b35d502324f21f724b2d5f92a5dcca244e8fa8

2.4 系统防火墙和内核防火墙配置(每一个节点都需要执行)

# 临时关闭内核防火墙

setenforce 0

# 永久关闭内核防火墙

vi /etc/selinux/config
SELINUX=disabled

0bd06bcd70b17d1ae79cc6019b69e6b5f1ee2c4f

# 临时关闭系统防火墙

systemctl stop firewalld.service

# 永久关闭内核防火墙

systemctl disable firewalld.service
6a67f26ade4ee32271cb584c7993fdd686fdedea

2.5 SSH互信配置

ssh-keygen -t rsa

# 三次回车生成密钥(每一个节点都需要执行)

0a8a8e3d25000ba0f5962c89c980f2640d5c2cd0

# 生成公钥(主节点执行)

cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

# 复制其他节点的公钥(主节点执行)

ssh slave1 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
ssh slave2 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

b33b0d10d8ea8c1303e8672658448175e67e4503

# 复制公钥到其他节点(主节点执行)

scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys

22bff3ea90a8ea757d0e874ee6129f0231240b5c

# 免密SSH测试

ssh slave1 ip addr
ssh slave2 ip addr

de27e8025cb95a66288266c023a563d2dd6ae396

到这一步,我们已经搞定了基础环境的配置,主要是针对时间、主机名、防火墙等服务进行配置。

3. JDK环境的安装

cd /usr/local/src
tar zxvf jdk-8u191-linux-x64.tar.gz

# 配置环境变量,在配置最后加入

vim /etc/profile
JAVA_HOME=/usr/local/src/jdk1.8.0_191
JAVA_BIN=/usr/local/src/jdk1.8.0_191/bin
JRE_HOME=/usr/local/src/jdk1.8.0_191/jre
CLASSPATH=/usr/local/src/jdk1.8.0_191/jre/lib:/usr/local/src/jdk1.8.0_191/lib:/usr/local/src/jdk1.8.0_191/jre/lib/charsets.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

785594ae752e34aff7a41f4ec7664a760a9e488a

# 复制环境变量到其他节点

scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile


# 复制JDK包到其他节点

scp -r /usr/local/src/jdk1.8.0_191 root@slave1:/usr/local/src/jdk1.8.0_191
scp -r /usr/local/src/jdk1.8.0_191 root@slave2:/usr/local/src/jdk1.8.0_191

# 重新加载环境变量

source /etc/profile


# 测试环境是否配置成功

java -version
fbc5393be321d6d20de5a4ead138f8b4d2a7704a


到这一步,我们已经安装和配置了JAVA运行环境,因为Hadoop是Java开发的,所以我们必须需要在JAVA环境上运行Hadoop。


5. Hadoop环境安装

# 解压Hadoop包

cd /usr/local/src
tar zxvf hadoop-2.6.5.tar.gz 

# 修改配置文件 在第24行添加Java的环境变量

cd hadoop-2.6.5/etc/hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_191

b82c2983e9658bf8e428eba4c242f3cda3dc8186


# 修改配置文件 在第24行添加Java的环境变量

vim yarn-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_191

350fa25cdcdfcb839904f2f4b996ad61ac1e6d51

# 修改配置文件 添加从节点主机名

vim slaves
slave1
slave2

b5ddc8f0c907306906c0198a5565140c8c101bbe


# 修改配置文件 添加RPC配置

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://172.18.53.98:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/src/hadoop-2.6.5/tmp</value>
        </property>
</configuration>
10523bb35a494960438c830c5ef75d7448709623

# 修改配置文件 添加DFS配置

<configuration>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>master:9001</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/usr/local/src/hadoop-2.6.5/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/usr/local/src/hadoop-2.6.5/dfs/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
</configuration>

7cae093069e35623b24e93b854750865518a0407


# 修改配置文件 添加MR配置

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

ec30bd722f21d88c36c06352074f6c8f3506cd51

# 修改配置文件 添加资源管理配置

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>master:8032</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>master:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>master:8035</value>
	</property>
	<property>
		<name>yarn.resourcemanager.admin.address</name>
		<value>master:8033</value>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>master:8088</value>
	</property>
</configuration>


2503a66a7b79f85ef4d64e8634116fb5ed4edfae


# 创建临时目录和文件目录

mkdir /usr/local/src/hadoop-2.6.5/tmp
mkdir -p /usr/local/src/hadoop-2.6.5/dfs/name
mkdir -p /usr/local/src/hadoop-2.6.5/dfs/data


# 配置环境变量,在配置最后加入

vim /etc/profile
HADOOP_HOME=/usr/local/src/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin

# 复制环境变量到从节点

scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile

# 复制Hadoop包到从节点
scp -r /usr/local/src/hadoop-2.6.5 root@slave1:/usr/local/src/hadoop-2.6.5
scp -r /usr/local/src/hadoop-2.6.5 root@slave2:/usr/local/src/hadoop-2.6.5

# 重新加载环境变量
source /etc/profile

# 格式化Namenode
hadoop namenode -format
a98d62aa03aa08cac44a97b1af08c4eba3a9d743

# 提示下列内容即是成功完成格式化

common.Storage: Storage directory /usr/local/src/hadoop-2.6.5/dfs/name has been successfully formatted


# 启动集群

/usr/local/src/hadoop-2.6.5/sbin/start-all.sh

f6a9aac788bfba042e6be6d7f5d67dd8555633b5

# 查看服务进程

# Master: ResourceManager - Namenode - SecondaryNameNode

07828e3b12e13c695067d6cfc6e859aa77c3908c

# Slave: NodeManager - DataNode

6f1053e700be4383ec2cfd163651a140dec5a48b 4b97077a70101fd1b61f9f3517bb301d4249395e

# 网页控制台 (需要修改本地hosts文件 添加主机记录)

# Windows C:\Windows\System32\drivers\etc

# Linux /etc/hosts

# Mac /etc/hosts

63d9041dd9066570fb8ea21602bd818bfef61aa7

# Yarn管理界面

# 浏览器访问 http://master:8088/cluster

9b669ee322924b569784877931b708833f10a4af

# HDFS管理界面

# 浏览器访问 http://master:50070

93cfed35e8888d99197423ba7e8c921a49dbdccd




目录
相关文章
|
3天前
|
人工智能 大数据
阿里云云计算ACA、大数据ACA、人工智能ACA三门认证升级调整公告
阿里云云计算ACA、大数据ACA、人工智能ACA三门认证升级调整公告
|
2天前
|
存储 分布式数据库 Apache
小米基于 Apache Paimon 的流式湖仓实践
小米基于 Apache Paimon 的流式湖仓实践
小米基于 Apache Paimon 的流式湖仓实践
|
3天前
|
存储 分布式计算 大数据
基于阿里云大数据平台的实时数据湖构建与数据分析实战
在大数据时代,数据湖作为集中存储和处理海量数据的架构,成为企业数据管理的核心。阿里云提供包括MaxCompute、DataWorks、E-MapReduce等在内的完整大数据平台,支持从数据采集、存储、处理到分析的全流程。本文通过电商平台案例,展示如何基于阿里云构建实时数据湖,实现数据价值挖掘。平台优势包括全托管服务、高扩展性、丰富的生态集成和强大的数据分析工具。
|
3天前
|
存储 人工智能 数据管理
媒体声音|专访阿里云数据库周文超博士:AI就绪的智能数据平台设计思路
媒体声音|专访阿里云数据库周文超博士:AI就绪的智能数据平台设计思路
|
3天前
|
SQL 人工智能 大数据
【4月重点功能发布】阿里云大数据+ AI 一体化平台
【4月重点功能发布】阿里云大数据+ AI 一体化平台
|
3天前
|
SQL 人工智能 分布式计算
【3月重点功能发布】阿里云大数据+ AI 一体化平台
【3月重点功能发布】阿里云大数据+ AI 一体化平台
|
3月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
415 33
The Past, Present and Future of Apache Flink
|
5月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1064 13
Apache Flink 2.0-preview released
|
5月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
184 3
|
6月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

推荐镜像

更多