搭建分布式大数据平台:基础环境配置与Hadoop集群搭建全程指南

 一、基础环境配置 

1. 按照左侧虚拟机名称修改对应主机名(分别为master、slave1、slave2,使用hostnamectl命令)。

操作环境:master、slave1、slave2
[root@~]# hostnamectl set-hostname master
[root@ ~]# hostname
master
[root@ ~]# bash

hostnamectl set-hostname slave1
bash

hostnamectl set-hostname slave2
bash

2.修改host文件添加左侧master、slave1、slave2节点IP与主机名映射(使用内网IP)。

操作环境:master、slave1、slave2

echo "172.18.13.157 master" >> /etc/hosts
echo "172.18.13.156 slave1" >> /etc/hosts
echo "172.18.32.47 slave2" >> /etc/hosts

3. 时区更改为上海时间(CST+0800时区)。


操作环境:master、slave1、slave2

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile
source /etc/profile
date -R 

4. 环境已经安装NTP,修改master节点NTP配置,设置master为本地时间服务器,屏蔽默认server,服务器层级设为10。


操作环境:master

vim /etc/ntp.conf
# 注释掉
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 添加以下内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10

5. 开启NTP服务。


操作环境:master

systemctl start ntpd.service


6. 添加定时任务--在早十-晚五时间段内每隔半个小时同步一次本地服务器时间(24小时制、使用用户root任务调度crontab,服务器地址使用主机名)。


操作环境:slave1、slave2

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

# 方式一:

crontab -e
*/30 10-17 * * * /usr/sbin/ntpdate master

# 方式二:

echo "*/30 10-17 * * * /usr/sbin/ntpdate master" >> /var/spool/cron/root

7. 主节点生成公钥文件id_rsa.pub(数字签名RSA,用户root,主机名master)。

操作环境:master
ssh-keygen

8. 建立master使用root用户ssh访问localhost免密登录。


操作环境:master
# 将本机的公钥复制到授权列表文件authorized_keys中

ssh-copy-id -i /root/.ssh/id_rsa.pub localhost

# 验证
ssh master
exit

ssh localhost
exit

9. 建立master使用root用户到slave1的ssh免密登录访问。


操作环境:master

ssh-copy-id -i /root/.ssh/id_rsa.pub slave1


10. 建立master使用root用户到slave2的ssh免密登录访问。

操作环境:master

ssh-copy-id -i /root/.ssh/id_rsa.pub slave2

11. 将jdk安装包解压到/usr/java目录(安装包存放于/usr/package277/,路径自行创建,解压后文件夹为默认名称,其他安装同理)。

操作环境:master、slave1、slave2

mkdir -p /usr/java
cd /usr/package277/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/java/

12. 配置系统环境变量JAVA_HOME,同时将JDK安装路径中bin目录加入PATH系统变量,注意生效变量,查看JDK版本。

操作环境:master、slave1、slave2

vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile
java -version

# 分发给slave1和slave2
scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/

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

二、Hadoop集群搭建 

1. 将Hadoop安装包解压到指定路径/usr/hadoop(安装包存放于/usr/package277/)

操作环境:master、slave1、slave2

mkdir -p /usr/hadoop
cd /usr/package277/
tar -zxvf hadoop-2.7.7.tar.gz -C /usr/hadoop/

2.配置环境变量HADOOP_HOME,将Hadoop安装路径中bin目录和sbin目录加入PATH系统变量,注意生效变量

操作环境:master、slave1、slave2

vim /etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop version

# 分发给slave1和slave2
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/

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


3.配置Hadoop运行环境JAVA_HOME

操作环境:master、slave1、slave2

cd /usr/hadoop/hadoop-2.7.7/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_221

4.设置全局参数,指定HDFS上NameNode地址为master,端口默认为9000

操作环境:master、slave1、slave2
5.指定临时存储目录为本地/root/hadoopData/tmp(要求为绝对路径,下同)

操作环境:master、slave1、slave2

vim core-site.xml
<property>
  <name>fs.default.name</name>
  <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/root/hadoopData/tmp</value>
</property>

6.设置HDFS参数,指定备份文本数量为2

操作环境:master、slave1、slave2


7.设置HDFS参数,指定NN存放元数据信息路径为本地/root/hadoopData/name;指定DN存放元数据信息路径为本地/root/hadoopData/data(要求为绝对路径)


操作环境:master、slave1、slave2


8.设置HDFS参数,关闭hadoop集群权限校验(安全配置),允许其他用户连接集群;指定datanode之间通过域名方式进行通信


操作环境:master、slave1、slave2

#dfs.replication    数据块的副本数量
#dfs.namenode.name.dir    NameNode在本地文件系统中持久存储命名空间和事务日志的路径
#dfs.datanode.data.dir    DataNode在本地文件系统中存放块的路径
#dfs.permissions    集群权限系统校验
#dfs.datanode.use.datanode.hostname    datanode之间通过域名方式通信
vim hdfs-site.xml
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/root/hadoopData/name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/root/hadoopData/data</value>
</property>
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>
<property>
  <name>dfs.datanode.use.datanode.hostname</name>
  <value>true</value>
</property>

9.设置YARN运行环境$JAVA_HOME参数

操作环境:master、slave1、slave2

# 方式一
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> yarn-env.sh
# 方式二
vim yarn-env.sh
23 export JAVA_HOME=/usr/java/jdk1.8.0_221

10.设置YARN核心参数,指定ResourceManager进程所在主机为master,端口为18141;指定mapreduce 获取数据的方式为mapreduce_shuffle

操作环境:master、slave1、slave2
 

#yarn.resourcemanager.admin.address    用于指定RM管理界面的地址(主机:端口)
#yarn.nodemanager.aux-services    mapreduce 获取数据的方式,指定在进行mapreduce作业时,yarn使用mapreduce_shuffle混洗技术。这个混洗技术是hadoop的一个核心技术,非常重要。
#yarn.nodemanager.auxservices.mapreduce.shuffle.class    用于指定混洗技术对应的字节码文件,值为org.apache.hadoop.mapred.ShuffleHandler

vim yarn-site.xml
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:18141</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>


11.设置计算框架参数,指定MR运行在yarn上

操作环境:master、slave1、slave2

# mapreduce.framework.name    指定执行MapReduce作业的运行时框架。属性值可以是local,classic或yarn。
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>


12.设置节点文件,要求master为主节点; slave1、slave2为子节点

操作环境:master、slave1、slave2

vim master
master

vim slaves
slave1
slave2

# 分发给slave1和slave2
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/


13.对文件系统进行格式化

操作环境:master
特别注意:只在master节点进行一次,首次启动Hadoop集群之前首先对文件系统进行格式化。

hdfs namenode -format


14.启动Hadoop集群查看各节点服务


操作环境:slave1、slave2

# 在master节点启动
# start-dfs.sh   start-yarn.sh
start-all.sh


15.查看集群运行状态是否正常

操作环境:master

hdfs dfsadmin -report


 

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小伍_Five

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值