准备三台centos虚拟机 。(master,slave1,slave2)

 (hadoop、jdk文件链接:https://pan.baidu.com/s/1wal1CSF1oO2h4dkSbceODg 提取码:4zra)

 前四步可参考hadoop伪分布式环境搭建详解-CSDN博客 

1.修改主机名,设置ip与主机的映射关系

hostname //查看主机名

vim /etc/hostname //更改主机名

vim /etc/hosts //将127.0.0.1后面的主机名更改为本机主机名,并在文件中写入三台机器的ip与主机名的映射关系

reboot //重启服务器

(文件的后三行在三台机器上都要存在且保持一致)

2.在master机器上创建/usr/apps、/usr/apps/dist-hadoop,将jdk解压至/usr/apps,hadoop解压至/usr/apps/dist-hadoop下(路径不要随便设,否则和第四步的配置文件对应不上)

mkdir /usr/apps

mkdir /usr/apps/dist-hadoop

tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/apps/

tar -zxvf hadoop-2.7.1.tar.gz -C /usr/apps/dist-hadoop/ //-zxvf可以打印解压的东西

3.在master设置jdk,hadoop的环境变量

vim 编辑/etc/profile文件

添加下列语句(赋值时不要有空格,图中有空格)

export JAVA_HOME=/usr/apps/jdk1.8.0_201

export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/usr/apps/dist-hadoop/hadoop-2.7.1

export PATH=$PATH:$HADOOP_HOME/bin

 保存退出。

source /etc/profile //重新加载该文件

java -version //查看jdk版本,检查环境是否设置成功

4.在master机器上dist-hadoop/hadoop-2.7.1/etc/hadoop目录下修改以下六个配置文件

①slaves

vim 编辑slaves文件,加入节点的主机名

slave1

slave2

②hadoop-env.sh

编辑/etc/hadoop/hadoop-env.sh文件,将jdk路径导入

[root@master data]# cd /usr/apps/hadoop-2.7.1/

[root@master hadoop-2.7.1]# cd /etc/hadoop

[root@master hadoop]# vim hadoop-env.sh

 

③core-site.xml

fs.defaultFS

hdfs://master:9000

hadoop.tmp.dir

/usr/apps/dist-hadoop/hadoop-2.7.1/data/

hadoop.http.staticuser.user

root

网页界面访问数据使用的用户名

 ④hdfs-site.xml

dfs.replication

2

dfs.namenode.name.dir

file:///usr/apps/dist-hadoop/hadoop-2.7.1/data/dfs/nn/name

NN使用的元数据保存

dfs.datanode.data.dir

/usr/apps/dist-hadoop/hadoop-2.7.1/data/

DN使用的数据保存

dfs.namenode.edits.dir

file:///usr/apps/dist-hadoop/hadoop-2.7.1/data/dfs/nn/edits edits文件的存储路径

dfs.namenode.checkpoint.edits.dir

/usr/apps/dist-hadoop/hadoop-2.7.1/data/dfs/snn/edits SecondaryNameNode在文件系统中存储用于合并的临时edits文件的目录

dfs.namenode.secondary.http-address

master:50090

secondarynamenode提供网络服务的端口和地址

dfs.permissions false 文件操作时的权限检查标识

dfs.namenode.http-address

master:50070

namenode提供网络服务的端口和地址

 

⑤mapred-site.xml

先将mapred-site.xml.template复制到 mapred-site.xml中

再进入mapred-site.xml编辑

 

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

master:10020

MapReduce的JobHistoryserver的IP和端口

mapreduce.jobhistory.webapp.address

master:19888

MapReduce的JobHistoryserver在web端查看的地址

mapreduce.job.ubertask.enable

true

是否开启小作业优化

⑥yarn-site.xml 

yarn.resourcemanager.hostname

master

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.log-aggregation-enable

false

是否启用日志聚合功能,日志聚合开启后保存到HDFS上

yarn.log-aggregation.retain-seconds 604800

聚合后的日志在HDFS上保存多长时间,单位为s

 5.在master上配置三台机器的免密登陆

[root@master hadoop-2.7.1]# ssh-keygen -t rsa  //在hadoop目录下生成密钥对

[root@master hadoop-2.7.1]# find / -name .ssh //找到密钥对的位置

拷贝秘钥。 

[root@master ~]# cd /root/.ssh/

[root@master .ssh]# ssh-copy-id master

[root@master .ssh]# ssh-copy-id slave1

[root@master .ssh]# ssh-copy-id slave2

6.在master上将jdk,dist-hadoop,/etc/profile文件拷贝至其他两台机器(slave1,slave2)

scp -r /usr/apps/jdk1.8.0_201 slave1:/usr/apps/jdk1.8.0_201

scp -r /usr/apps/jdk1.8.0_201 slave2:/usr/apps/jdk1.8.0_201

scp -r dist-hadoop/ slave1:/usr/apps/

scp -r dist-hadoop/ slave2:/usr/apps/

scp -r /etc/profile slave1:/etc/profile

scp -r /etc/profile slave2:/etc/profile

(拷贝的时候在其他两台机器的jdk和hadoop的路径可能不对,此时进入/etc/profile修改正确即可)

并在slave1和slave2上重载/etc/profile文件

source /etc/profile

 

 7.格式化namenode

[root@master hadoop-2.7.1]# hadoop namenode -format

 

8.master上启动dfs.sh,yarn.sh文件

sbin/start-dfs.sh

sbin/start-yarn.sh

 

搭建成功! 

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: