第四届大数据竞赛-线上选拔赛 —–Hadoop集群配置

这个比赛我负责集群配置方向

集群配置如下:

master slave1 slave2
ip地址 192.168.1.10 192.168.1.11 192.168.1.12
系统 centos7.2 centos7.2 centos7.2

一、基础环境

1.修改主机名

master(192.168.1.10)上执行:

 hostnamectl  set-hostname master

slave1(192.168.1.11)上执行:

hostnamectl set-hostname slave1

slave2(192.168.1.12)上执行:

hostnamectl set-hostname slave2

2.关闭防火墙:

在三台机子上都执行(暂时关闭):

systemctl  stop firewalld.service

systemctl disable firewalld.service(永久关闭)————>看情况使用这个命令

3.配置主机名:

在三台机子上执行:

vi /etc/hosts

然后按o换行进入编辑模式输入:
 

        192.168.1.10 master

        192.168.1.11 slave1

        192.168.1.12 slave2

输入完之后摁esc键推出编辑模式,然后摁shift+;键输入wq推出即可。

如下图所示:

 4.将时区更改为东八区(中国北京):

在三台机子上执行:

vi /etc/profile

在文件末尾输入:

TZ='Asia/Shanghai'; export TZ

退出/etc/profile文件后:
 

source /etc/profile

出现如下信息即可:

 5.安装并配置ntp服务:

在三台机子上执行:

yum -y install ntp

在master上执行:
 

vi /etc/ntp.conf

在文件中注释所有server开头的文件:

在文件末端加上如下代码:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

 然后退出配置文件重启ntp服务:

systemctl restart ntpd

在slave1、slave2上执行:

ntpdate master

出现如下则成功

 6.创建一个定时任务(从节点在早十-晚五时间段内每隔半个小时同步一次主节点时间)

在slave1、slave2上执行:

写定时任务:

crontab -e

在文件中输入:

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

7.远程免密登入

在master上执行:

ssh slave1

输入yes,然后输入slave1密码。 这一步是要生成.ssh/目录

cd /~/.ssh/
ssh-keygen -t rsa

 然后摁三次回车

然后在依次输入命令:

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

 8.安装jdk软件包

在master上执行:

1.创建文件夹:

mkdir -p /usr/java

2.解压压缩包(注意压缩包所处的路径)

 tar -zxvf /opt/software/jdk-8u141-linux-x64.tar.gz -C /usr/java/

3.修改/etc/profile文件:

vi /etc/profile

在文件末尾追加上

export JAVA_HOME=/usr/java/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

退出文件后:

source /etc/profile

然后分发文件到slave1,slave2机子上:

scp -r /usr/java/  slave1:/usr/
scp -r /usr/java/  slave2:/usr/
scp -r /etc/profile slave1:/etc/
scp -r /etc/profile slave2:/etc/

在slave1、slave2上执行:

source /etc/profile

 二、Hadoop集群安装

在master上操作:

1.安装Hadoop安装包

mkdir -p /usr/hadoop

 tar -zxvf /opt/software/hadoop-2.7.2.tar.gz -C /usr/hadoop/

2.配置hadoop运行环境

vi /etc/profile


在文件末端输入如下内容:
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

退出文件后:
source /etc/profile

3.配置全局参数:

 cd /usr/hadoop/hadoop-2.7.2/etc/hadoop/
进入到目录后:
vi hadoop-env.sh

找到如下图:

 修改为:

export JAVA_HOME=/usr/java/jdk1.8.0_141

然后修改全局文件:

vi core-site.xml


然后在<configuration>和</configuration>中间加入以下配置文件:
<property>
  <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
   <value>/root/Hadoop_Data/tmp</value>
</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>
 

4.配置hdfs参数:

在master上执行:

vi hdfs-site.xml


然后在<configuration>和</configuration>中间加入以下配置文件:
<property>
 <name>dfs.replication</name>
   <value>2</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>/root/Hadoop_Data/name</value>
   <final>true</final>
 </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/Hadoop_Data/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>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>true</value> 
</property>

5.配置mapreduce参数:

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml


然后在<configuration>和</configuration>中间加入以下配置文件:
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

6.配置yarn框架运行环境:

vi yarn-env.sh


然后在文件末尾输入:
export JAVA_HOME=/usr/java/jdk1.8.0_141
配置集群资源管理参数:
vi yarn-site.xml


然后在<configuration>和</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.resourcemanager.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>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>

6.指定主节点和从节点,写入对应文件

在master上执行:

vi master

在文件写入:
master

退出master文件后:

vi slave

将文件写成为:
Slave1 
Slave2 
7.格式化集群,开启集群,查看
节点进程及集群状态
在master执行:
首先要分发文件:
scp -r /usr/hadoop slave1:/usr/ 
scp -r /usr/hadoop slave2:/usr/ 

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

在slave1、slave2上执行:

source /etc/profile

在master上执行:

hadoop namenode -format

出现0则表述初始化成功,如下图:

在master上启动集群:

start-all.sh 

出现如下进程则显示正确:

三、Zookeeper 搭建

 在master上执行:

1.安装 Zookeeper 软件包

mkdir -p /usr/zookeeper

tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/zookeeper/

cd /usr/zookeeper/zookeeper-3.4.9/conf

2.修改配置文件

 在master上执行:

vi /etc/profile

在文件末端追加:
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.9/
export PATH=$PATH:$ZOOKEEPER_HOME/bin


退出文件后:
source /etc/profile

修改zookeeper配置文件:

cp zoo_sample.cfg  zoo.cfg

mkdir /usr/zookeeper/zookeeper-3.4.9/zkdata

mkdir /usr/zookeeper/zookeeper-3.4.9/zkdatalog

vi zoo.cfg

然后找到如图所示的位置:

 修改成为如下图:

 代码如下:

dataDir=/usr/zookeeper/zookeeper-3.4.9/zkdata
dataLogDir=/usr/zookeeper/zookeeper-3.4.9/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

保存退出文件后;

cd /usr/zookeeper/zookeeper-3.4.9/zkdata

分发文件:
scp -r /usr/zookeeper slave1:/usr/ 
scp -r /usr/zookeeper slave2:/usr/
scp -r /etc/profile slave1:/etc/
scp -r /etc/profile slave2:/etc/

echo 1 >> myid

在slave1上执行:

source /etc/profile

echo 2 >> /usr/zookeeper/zookeeper-3.4.9/zkdata/myid

在slave2上执行:

source /etc/profile

echo 3 >> /usr/zookeeper/zookeeper-3.4.9/zkdata/myid

在三台机子上执行

zkServer.sh start

zookeeper关系如下图所示:

master slave1 slave2
follower

leader

follower

具体情况如下图:

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>