欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Centos7.5搭建Hadoop2.8.5完全分布式集群部署

程序员文章站 2022-05-18 14:28:27
一、基础环境设置 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 ——S ......

一、基础环境设置


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台客户机能够以主机名相互访问

[root@master ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.208.128 master
192.168.208.129 slaver-1
192.168.208.130 slaver-2
192.168.208.131 slaver-3 

# 将hosts文件传送给其它3台客户机
[root@master ~]# scp -r /etc/hosts root@slaver-1:/etc
[root@master ~]# scp -r /etc/hosts root@slaver-2:/etc
[root@master ~]# scp -r /etc/hosts root@slaver-3:/etc


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

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

[root@master ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

# 解压
[root@master ~]# tar -xzvf jdk-8u181-linux-x64.tar.gz

[root@master ~]# mkdir /usr/local/java # 创建jdk存放目录
[root@master ~]# mv jdk1.8.0_181/ /usr/local/java  # 将解压缩文件转移至存放目录

# 配置jdk环境

[root@master ~]# vi /etc/profile
# 在文件末尾添加如下内容
# java
export java_home=/usr/local/java/jdk1.8.0_181 # 注意,要与刚刚所创建的目录匹配
export path=$java_home/bin:$path
export classpath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jar

# 使jdk配置文件生效
[root@master ~]# source /etc/profile

# 测试jdk环境配置是否成功,如输出如下内容,则表示成功
[root@master ~]# java -version
java version "1.8.0_181"
java(tm) se runtime environment (build 1.8.0_181-b13)
java hotspot(tm) 64-bit server vm (build 25.181-b13, mixed mode)


4. 关闭防火墙,selinux

a. iptables

# 临时关闭
[root@master ~]# service iptables stop

# 禁止开机启动
[root@master ~]# chkconfig iptables off

b.firewalld

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

# 临时关闭
[root@master ~]# systemctl stop firewalld

# 禁止开机启动,输出如下,则表示禁止成功
[root@master ~]# systemctl disable firewalld
removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
removed symlink /etc/systemd/system/dbus-org.fedoraproject.firewalld1.service.

c.关闭selinux

# 永久关闭selinux
[root@master ~]# vi /etc/selinux/config
#disabled - no selinux policy is loaded.
selinux=disabled  # 此处将selinux=enforcing改为selinux=disabled
# selinuxtype= can take one of three two values:

# 修改selinux配置后,需重启客户机才能生效
[root@master ~]# reboot

# 重启之后,查看selinux状态
[root@master ~]# /usr/sbin/sestatus 
selinux status: disabled  # 如果输出如是,则表示selinux永久关闭成功


5. 设置ssh免密钥

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

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

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




二、安装hadoop集群


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


2. hadoop安装目录

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


3. 配置core-site.xml

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

[root@master ~]# cd /opt/hadoop/hadoop-2.8.5/etc/hadoop
[root@master hadoop]# vi core-site.xml
<configuration>

<!--配置hdfs文件系统的命名空间--> 
  <property> 
    <name>fs.defaultfs</name> 
    <value>hdfs://master:9000</value> 
  </property> 

<!-- 配置操作hdfs的存冲大小 --> 
  <property> 
    <name>io.file.buffer.size</name> 
    <value>4096</value> 
  </property> 
<!-- 配置临时数据存储目录 --> 
  <property> 
    <name>hadoop.tmp.dir</name> 
    <value>/opt/hadoop/hadoop-2.8.5/tmp</value> 
  </property>

</configuration>


4. 配置hdfs-site.xml

[root@master hadoop]# vim hdfs-site.xml
<configuration>

<!--配置副本数--> 
    <property> 
        <name>dfs.replication</name> 
        <value>3</value> 
    </property> 
<!--hdfs的元数据存储位置--> 
    <property> 
        <name>dfs.namenode.name.dir</name> 
        <value>/opt/hadoop/hadoop-2.8.5/hdfs/name</value> 
    </property> 
<!--hdfs的数据存储位置--> 
    <property> 
        <name>dfs.datanode.data.dir</name> 
        <value>/opt/hadoop/hadoop-2.8.5/hdfs/data</value> 
    </property> 
<!--hdfs的namenode的web ui 地址--> 
    <property> 
        <name>dfs.http.address</name> 
        <value>master:50070</value> 
    </property> 
<!--hdfs的snn的web ui 地址--> 
    <property> 
        <name>dfs.secondary.http.address</name> 
        <value>master:50090</value> 
    </property> 
<!--是否开启web操作hdfs--> 
    <property> 
        <name>dfs.webhdfs.enabled</name> 
        <value>true</value> 
    </property> 
<!--是否启用hdfs权限(acl)--> 
    <property> 
        <name>dfs.permissions</name> 
        <value>false</value> </property>

</configuration>


5. 配置mapred-site.xml

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<configuration>

<!--指定maoreduce运行框架--> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> </property> 
<!--历史服务的通信地址--> 
    <property> 
        <name>mapreduce.jobhistory.address</name> 
        <value>master:10020</value> 
    </property> 
<!--历史服务的web ui地址--> 
    <property> 
        <name>mapreduce.jobhistory.webapp.address</name> 
        <value>master:19888</value> 
    </property>

</configuration>


6. 配置yarn-site.xml

[root@master hadoop]# vim yarn-site.xml
<configuration>

<!-- site specific yarn configuration properties -->

<!--指定resourcemanager所启动的服务器主机名--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>master</value> 
    </property> 
<!--指定mapreduce的shuffle--> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
<!--指定resourcemanager的内部通讯地址--> 
    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>master:8032</value> 
    </property> 
<!--指定scheduler的内部通讯地址--> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>master:8030</value> 
    </property> 
<!--指定resource-tracker的内部通讯地址--> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master:8031</value> 
    </property> 
<!--指定resourcemanager.admin的内部通讯地址--> 
    <property> 
        <name>yarn.resourcemanager.admin.address</name> 
        <value>master:8033</value> 
    </property> 
<!--指定resourcemanager.webapp的ui监控地址--> 
    <property> 
        <name>yarn.resourcemanager.webapp.address</name> 
        <value>master:8088</value> 
    </property>

</configuration>


7. 配置slaves文件

[root@master hadoop]# vim slaves
slaver-1
slaver-2
slaver-3


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

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

修改 export java_home=/usr/local/java/jdk1.8.0_181


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

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

修改 export java_home=/usr/local/java/jdk1.8.0_181


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

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

修改 export java_home=/usr/local/java/jdk1.8.0_181


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

[root@master hadoop]# scp -r hadoop/ slaver-1:`pwd`
[root@master hadoop]# scp -r hadoop/ slaver-2:`pwd`
[root@master hadoop]# scp -r hadoop/ slaver-3:`pwd`




三、启动并验证hadoop集群


1. 启动集群

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

[root@master ~]# hdfs namenode -format

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

Centos7.5搭建Hadoop2.8.5完全分布式集群部署



启动hdfs

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

[root@master hadoop]# start-dfs.sh
starting namenodes on [master]
master: starting namenode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-namenode-master.out
slaver-3: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-slaver-3.out
slaver-2: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-slaver-2.out
slaver-1: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-slaver-1.out
starting secondary namenodes [master]
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。

[root@master hadoop]# start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-resourcemanager-master.out
slaver-2: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-slaver-2.out
slaver-1: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-slaver-1.out
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/,页面显示如下:

Centos7.5搭建Hadoop2.8.5完全分布式集群部署


Centos7.5搭建Hadoop2.8.5完全分布式集群部署