经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 大数据/云/AI » Hadoop » 查看文章
Centos7.5搭建Hadoop2.8.5完全分布式集群部署
来源:cnblogs  作者:濁水君  时间:2018/10/18 8:52:38  对本文有异议

一、基础环境设置


1. 准备4台客户机(VMware虚拟机)

系统版本:Centos7.5

节点配置:

192.168.208.128 ——Master

192.168.208.129 ——Slaver-1

192.168.208.130 ——Slaver-2

192.168.208.130 ——Slaver-3


2. 配置hosts文件,使4台客户机能够以主机名相互访问

  1. [root@Master ~]# vi /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.208.128 Master
  5. 192.168.208.129 Slaver-1
  6. 192.168.208.130 Slaver-2
  7. 192.168.208.131 Slaver-3
  8. # 将hosts文件传送给其它3台客户机
  9. [root@Master ~]# scp -r /etc/hosts root@Slaver-1:/etc
  10. [root@Master ~]# scp -r /etc/hosts root@Slaver-2:/etc
  11. [root@Master ~]# scp -r /etc/hosts root@Slaver-3:/etc


3. 为4台客户机配置jdk环境

我们选择配置jdk1.8.0_181,点击此处下载

  1. [root@Master ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
  2. # 解压
  3. [root@Master ~]# tar -xzvf jdk-8u181-linux-x64.tar.gz
  4. [root@Master ~]# mkdir /usr/local/java # 创建jdk存放目录
  5. [root@Master ~]# mv jdk1.8.0_181/ /usr/local/java # 将解压缩文件转移至存放目录
  6. # 配置jdk环境
  7. [root@Master ~]# vi /etc/profile
  8. # 在文件末尾添加如下内容
  9. # java
  10. export JAVA_HOME=/usr/local/java/jdk1.8.0_181 # 注意,要与刚刚所创建的目录匹配
  11. export PATH=$JAVA_HOME/bin:$PATH
  12. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  13. # 使jdk配置文件生效
  14. [root@Master ~]# source /etc/profile
  15. # 测试jdk环境配置是否成功,如输出如下内容,则表示成功
  16. [root@Master ~]# java -version
  17. java version "1.8.0_181"
  18. Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
  19. Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)


4. 关闭防火墙,SELinux

a. iptables

  1. # 临时关闭
  2. [root@Master ~]# service iptables stop
  3. # 禁止开机启动
  4. [root@Master ~]# chkconfig iptables off

b.firewalld

CentOS7版本后防火墙默认使用firewalld,默认是没有iptables的,所以关闭防火墙的命令如下:

  1. # 临时关闭
  2. [root@Master ~]# systemctl stop firewalld
  3. # 禁止开机启动,输出如下,则表示禁止成功
  4. [root@Master ~]# systemctl disable firewalld
  5. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  6. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

c.关闭SELinux

  1. # 永久关闭SELinux
  2. [root@Master ~]# vi /etc/selinux/config
  3. #disabled - No SELinux policy is loaded.
  4. SELINUX=disabled # 此处将SELINUX=enforcing改为SELINUX=disabled
  5. # SELINUXTYPE= can take one of three two values:
  6. # 修改SELinux配置后,需重启客户机才能生效
  7. [root@Master ~]# reboot
  8. # 重启之后,查看SELinux状态
  9. [root@Master ~]# /usr/sbin/sestatus
  10. SELinux status: disabled # 如果输出如是,则表示SELinux永久关闭成功


5. 设置SSH免密钥

关于ssh免密码的设置,要求每两台主机之间设置免密码,自己的主机与自己的主机之间也要求设置免密码。在这里,为了避免后面的各种权限问题,我们直接使用root账户来设置面密钥登陆。

  1. [root@Master ~]$ ssh-keygen -t rsa
  2. [root@Master ~]$ ssh-copy-id node-1
  3. [root@Master ~]$ ssh-copy-id node-2
  4. [root@Master ~]$ ssh-copy-id node-3

注:每一台客户机都要做如上设置,所以,最好的方式是:按上述方法配置好一台虚拟机之后,再克隆出其它几台。




二、安装hadoop集群


1. 下载hadoop2.8.5二进制文件

hadoop2.8.5下载链接


2. hadoop安装目录

为了统一管理,我们将hadoop的安装路径定为/usr/opt/hadoop下,创建目录后,我们将hadoop二进制文件解压至这个目录下。


3. 配置core-site.xml

hadoop的配置文件,在/opt/hadoop/hadoop-2.8.5/etc/hadoop下,

  1. [root@Master ~]# cd /opt/hadoop/hadoop-2.8.5/etc/hadoop
  2. [root@Master hadoop]# vi core-site.xml
  1. <configuration>
  2. <!--配置hdfs文件系统的命名空间-->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://Master:9000</value>
  6. </property>
  7. <!-- 配置操作hdfs的存冲大小 -->
  8. <property>
  9. <name>io.file.buffer.size</name>
  10. <value>4096</value>
  11. </property>
  12. <!-- 配置临时数据存储目录 -->
  13. <property>
  14. <name>hadoop.tmp.dir</name>
  15. <value>/opt/hadoop/hadoop-2.8.5/tmp</value>
  16. </property>
  17. </configuration>


4. 配置hdfs-site.xml

  1. [root@Master hadoop]# vim hdfs-site.xml
  1. <configuration>
  2. <!--配置副本数-->
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>3</value>
  6. </property>
  7. <!--hdfs的元数据存储位置-->
  8. <property>
  9. <name>dfs.namenode.name.dir</name>
  10. <value>/opt/hadoop/hadoop-2.8.5/hdfs/name</value>
  11. </property>
  12. <!--hdfs的数据存储位置-->
  13. <property>
  14. <name>dfs.datanode.data.dir</name>
  15. <value>/opt/hadoop/hadoop-2.8.5/hdfs/data</value>
  16. </property>
  17. <!--hdfs的namenode的web ui 地址-->
  18. <property>
  19. <name>dfs.http.address</name>
  20. <value>Master:50070</value>
  21. </property>
  22. <!--hdfs的snn的web ui 地址-->
  23. <property>
  24. <name>dfs.secondary.http.address</name>
  25. <value>Master:50090</value>
  26. </property>
  27. <!--是否开启web操作hdfs-->
  28. <property>
  29. <name>dfs.webhdfs.enabled</name>
  30. <value>true</value>
  31. </property>
  32. <!--是否启用hdfs权限(acl)-->
  33. <property>
  34. <name>dfs.permissions</name>
  35. <value>false</value> </property>
  36. </configuration>


5. 配置mapred-site.xml

  1. [root@Master hadoop]# cp mapred-site.xml.template mapred-site.xml
  2. [root@Master hadoop]# vim mapred-site.xml
  1. <configuration>
  2. <!--指定maoreduce运行框架-->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value> </property>
  6. <!--历史服务的通信地址-->
  7. <property>
  8. <name>mapreduce.jobhistory.address</name>
  9. <value>Master:10020</value>
  10. </property>
  11. <!--历史服务的web ui地址-->
  12. <property>
  13. <name>mapreduce.jobhistory.webapp.address</name>
  14. <value>Master:19888</value>
  15. </property>
  16. </configuration>


6. 配置yarn-site.xml

  1. [root@Master hadoop]# vim yarn-site.xml
  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <!--指定resourcemanager所启动的服务器主机名-->
  4. <property>
  5. <name>yarn.resourcemanager.hostname</name>
  6. <value>Master</value>
  7. </property>
  8. <!--指定mapreduce的shuffle-->
  9. <property>
  10. <name>yarn.nodemanager.aux-services</name>
  11. <value>mapreduce_shuffle</value>
  12. </property>
  13. <!--指定resourcemanager的内部通讯地址-->
  14. <property>
  15. <name>yarn.resourcemanager.address</name>
  16. <value>Master:8032</value>
  17. </property>
  18. <!--指定scheduler的内部通讯地址-->
  19. <property>
  20. <name>yarn.resourcemanager.scheduler.address</name>
  21. <value>Master:8030</value>
  22. </property>
  23. <!--指定resource-tracker的内部通讯地址-->
  24. <property>
  25. <name>yarn.resourcemanager.resource-tracker.address</name>
  26. <value>Master:8031</value>
  27. </property>
  28. <!--指定resourcemanager.admin的内部通讯地址-->
  29. <property>
  30. <name>yarn.resourcemanager.admin.address</name>
  31. <value>Master:8033</value>
  32. </property>
  33. <!--指定resourcemanager.webapp的ui监控地址-->
  34. <property>
  35. <name>yarn.resourcemanager.webapp.address</name>
  36. <value>Master:8088</value>
  37. </property>
  38. </configuration>


7. 配置slaves文件

  1. [root@Master hadoop]# vim slaves
  1. Slaver-1
  2. Slaver-2
  3. Slaver-3


8. 配置hadoop-env.sh,指定JAVA_HOME

  1. [root@Master hadoop]# vim hadoop-env.sh
  2. 修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181


9. 配置yarn-env.sh,指定JAVA_HOME

  1. [root@Master hadoop]# vim yarn-env.sh
  2. 修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181


10. 配置mapred-env.sh,指定JAVA_HOME

  1. [root@Master hadoop]# vim mapred-env.sh
  2. 修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181


11. 将hadoop文件分发到其它几台客户机上

  1. [root@Master hadoop]# scp -r hadoop/ Slaver-1:`pwd`
  2. [root@Master hadoop]# scp -r hadoop/ Slaver-2:`pwd`
  3. [root@Master hadoop]# scp -r hadoop/ Slaver-3:`pwd`




三、启动并验证hadoop集群


1. 启动集群

第一次启动集群,需要格式化namenode,操作如下:

  1. [root@Master ~]# hdfs namenode -format

输出如下内容,则表示格式化成功

test



启动HDFS

格式化成功之后,我们就可以启动HDFS了,命令如下:

  1. [root@Master hadoop]# start-dfs.sh
  2. Starting namenodes on [Master]
  3. Master: starting namenode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-namenode-Master.out
  4. Slaver-3: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-3.out
  5. Slaver-2: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-2.out
  6. Slaver-1: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-1.out
  7. Starting secondary namenodes [Master]
  8. Master: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-secondarynamenode-Master.out


启动Yarn

启动Yarn时需要注意,我们不能在NameNode上启动Yarn,而应该在ResouceManager所在的主机上启动。但我们这里是将NameNode和ResouceManager部署在了同一台主机上,所以,我们直接在Master这台机器上启动Yarn。

  1. [root@Master hadoop]# start-yarn.sh
  2. starting yarn daemons
  3. starting resourcemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-resourcemanager-Master.out
  4. Slaver-2: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-2.out
  5. Slaver-1: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-1.out
  6. Slaver-3: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-3.out


2. web验证

至此,我们的集群就已完全启动起来了,我们可以通过访问web页面,来做最后一步验证。我们已将web页面配置在Master主机上,因此,我们访问http://192.168.208.128:50070/,页面显示如下:

1539781810394


1539781852813

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号