大数据分布式集群环境搭建详细步骤(Zookeeper,Hadoop安装与配置)

大数据分布式集群环境搭建详细步骤(Zookeeper,Hadoop安装与配置)

前言:前面我们完成了Linux系统的安装及网络配置,接下来我们将完成Zookeeper和Hadoop的安装与配置。

系统说明

节点ip
master192.168.83.101
slave1192.168.83.102
slave2192.168.83.103

节点配置

1、修改每个节点主机名,重启生效

# 在其他两个子节点的hostname处分别填slave1和slave2
[root@master ~]# vi /etc/hostname
master

2、添加各节点映射

# 三个节点均执行
[root@localhost ~]# vi /etc/hosts
192.168.83.101 master
192.168.83.102 slave1
192.168.83.103 slave2

3、关闭防火墙,重启生效

# 三个节点均执行
[root@master ~]# vi /etc/selinux/config
SELINUX=disabled
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
[root@master ~]# systemctl status firewalld

4、时间同步
首先在时间同步之前确认是否有网络连接,在有网络的情况下执行。要保证设置主机时间准确,每台机器时区必须一致。实验中我们需要同步网络时间,因此要首先选择一样的时区。先确保时区一样,否则同步以后时间也是有时区差。

[root@master ~]# tzselect
# 然后用数字选择时区,这里选择北京时间
故顺序为 5  9  1  1

由于hadoop集群对时间要求很高,所以集群内主机要经常同步。我们使用ntp进行时间同步,master作为ntp服务器,其余的当做ntp客户端。

# 三台机器均安装
[root@master ~]# yum -y install ntp

master作为ntp服务器,修改ntp配置文件

# master上执行
[root@master ~]# vi /etc/ntp.conf
server  127.127.1.0               # local clock
fudge   127.127.1.0   stratum 10   #stratum设置为其它值也是可以的,其范围为0~15

重启ntp服务

# master上执行
[root@master ~]# systemctl restart ntpd.service

等待三分钟,再到slave1和slave2节点同步时间

[root@slave1 ~]# ntpdate master

5、配置ssh免密登录

Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,Hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果Hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。

[root@master ~]# ssh-keygen -t rsa
# 遇到提示一路回车即可

# 拷贝本密钥到三个节点上
[root@master ~]# ssh-copy-id master
[root@master ~]# ssh-copy-id slave1
[root@master ~]# ssh-copy-id slave2
# slave1和slave2节点重复上述操作

测试免密登录是否成功

[root@master ~]# ssh slave1
# 登陆成功就会有显示
[root@slave1 ~]# exit
# 登出slave1
[root@master ~]# ssh slave2

6、安装JDK

# 我们把所有的环境配置包都放到master的/opt/soft下面
[root@master ~]# cd /opt/soft/
[root@master soft]# mkdir -p /usr/java
[root@master soft]# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/

# 配置环境变量(三台机器)
[root@master soft]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

# 使环境变量生效(三台机器)
[root@master soft]# source /etc/profile

# 在master节点操作成功后可以使用远程复制命令将JDK远程复制到slave1和slave2节点在中(此命令在master中操作)
[root@master soft]# scp -r /usr/java root@slave1:/usr/
[root@master soft]# scp -r /usr/java root@slave2:/usr/

#验证JDK是否安装成功(三台机器)
[root@master soft]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

安装Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。
1、创建zookeeper安装目录并解压

# 修改主机映射(三台机器)
[root@master soft]# vi /etc/hosts
192.168.83.101 master master.root
192.168.83.102 slave1 slave1.root
192.168.83.103 slave2 slave2.root

# 创建Zookeeper目录并解压Zookeeper
[root@master ~]# mkdir -p /usr/zookeeper
[root@master ~]# tar -zxvf /opt/soft/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/

2、配置zoo.cfg文件

[root@master ~]# cd /usr/zookeeper/zookeeper-3.4.10/conf/
[root@master conf]# cp zoo_sample.cfg zoo.cfg
[root@master conf]# vi zoo.cfg 
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

3、配置myid文件

[root@master zookeeper-3.4.10]# mkdir zkdata
[root@master zookeeper-3.4.10]# mkdir zkdatalog
[root@master zookeeper-3.4.10]# cd zkdata
[root@master zkdata]# vi myid
1

4、配置其它两个节点

[root@master zkdata]# scp -r /usr/zookeeper root@slave1:/usr/
[root@master zkdata]# scp -r /usr/zookeeper root@slave2:/usr/
# 注意将slave1和slave2的myid分别替换为2和3

5、配置环境变量(三台机器)

[root@master zkdata]# vi /etc/profile
#set zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
PATH=$PATH:$ZOOKEEPER_HOME/bin
[root@master zkdata]# source /etc/profile

6、启动zookeeper集群(三台机器)

[root@master zookeeper-3.4.10]# bin/zkServer.sh start
[root@master zookeeper-3.4.10]# bin/zkServer.sh status
# 三个节点一个是leader,另外两个是follower
# 三个节点分别执行命令 jps
# 检查每个节点是否都有 QuorumPeerMain进程

安装 Hadoop

1、创建Hadoop安装目录并解压

[root@master ~]# mkdir -p /usr/hadoop
[root@master ~]# tar -zxvf /opt/soft/hadoop-2.7.3.tar.gz -C /usr/hadoop/

2、配置环境变量(三台机器)

[root@master ~]# vi /etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin
[root@master ~]# source /etc/profile

Hadoop的配置文件所在目录为 /usr/hadoop/hadoop-2.7.3/etc/hadoop

3、配置core-site.xml

[root@master hadoop]# vi core-site.xml
<configuration>
<property>
  <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
   <value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
  <name>io.file.buffer.size</name>
   <value>131072</value>
</property>
<property>
  <name>fs.checkpoint.period</name>
   <value>60</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
   <value>67108864</value>
</property>
</configuration>

4、配置hdfs-site.xml

[root@master hadoop]# vi hdfs-site.xml
<configuration>
<property>
 <name>dfs.replication</name>
   <value>2</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
   <final>true</final>
</property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
   <final>true</final>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
   <value>master:9001</value>
 </property>
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.permissions</name>
   <value>false</value>
 </property>
</configuration>

5、配置mapred-site.xml

[root@master hadoop]# vi mapred-site.xml
<configuration>
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
</configuration>

6、配置yarn-site.xml

[root@master hadoop]# vi yarn-site.xml
<configuration>
<property>
 <name>yarn.resourcemanager.address</name>
   <value>master:18040</value>
 </property>
 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:18030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:18088</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:18025</value>
 </property>
 <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>

<!-- Site specific YARN configuration properties -->

</configuration>

7、配置hadoop-env.sh

[root@master hadoop]# vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171

8、修改slaves

[root@master hadoop]# vi slaves
slave1
slave2

9、编辑master

[root@master hadoop]# vi master
master

10、分发hadoop

[root@master hadoop]# scp -r /usr/hadoop/ root@slave1:/usr/
[root@master hadoop]# scp -r /usr/hadoop/ root@slave2:/usr/

11、格式化hadoop并开启集群

# 第一次启动hadoop时格式化
[root@master hadoop]# hadoop namenode -format
# 若出现 Exiting with status 0 ,则格式化成功
[root@master hadoop]# cd $HADOOP_HOME 
[root@master hadoop-2.7.3]# sbin/start-all.sh 
# master节点进程
[root@master hadoop-2.7.3]# jps
2819 NameNode
2998 SecondaryNameNode
3143 ResourceManager
3452 Jps
# slave1 节点进程
[root@slave1 zookeeper-3.4.10]# jps
2672 DataNode
2768 NodeManager
2916 Jps
# slave2 节点进程
[root@slave2 zookeeper-3.4.10]# jps
2672 DataNode
2916 Jps
2767 NodeManager
若三个节点出现上述进程,则表明hadoop启动成功

12、浏览器访问可视化界面

http://192.168.83.101:50070/

在这里插入图片描述
到此为止,Hadoop的配置就完成了。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Code-Dragon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值