大数据Hadoop系列之Hadoop分布式集群部署

一、部署规划
1、部署环境
各部署单元的软件部署情况如下:


二、环境准备
1、修改主机名
[root@VM1 ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master60

[root@VM2 ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave61

[root@VM3 ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave62

[root@VM4 ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave63

2、配置网络映射
所有主机执行
# vim /etc/hosts

192.168.9.60 master60

192.168.9.61 slave61

192.168.9.62 slave62

192.168.9.63 slave63
3、关闭防火墙
所有主机执行
# service iptables stop && chkconfig iptables off && chkconfig --list | grep iptables

4、禁用selinux
所有主机执行
# vi /etc/selinux/config

SELINUX=disabled

5、禁用IPv6
所有主机执行
# echo " " >> /etc/modprobe.d/dist.conf

# echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf

# echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf

6、重启
所有主机执行
# reboot

7、配置ssh无秘钥登录
主机master60上执行
7.1、生产公钥和私钥
# ssh-keygen

7.2、拷贝公钥给目标服务器
# ssh-copy-id -i master60

# ssh-copy-id -i slave61

# ssh-copy-id -i slave62

# ssh-copy-id -i slave63

8、集群时间同步
8.1、启动ntpd服务
所有主机执行
# service ntpd start && chkconfig ntpd on && chkconfig --list | grep ntpd

8.2、更新时间
主机master60上执行
# ntpdate -u ntp.sjtu.edu.cn

8.3、将系统时间同步给本机硬件时间
主机master60上执行
# hwclock --localtime

# hwclock --localtime -w

8.4、硬件时间自动同步给系统时间
主机master60上执行
# vi /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes

8.5、系统时间自动更新硬件时间
主机master60上执行
# vi /etc/sysconfig/ntpdate

SYNC_HWCLOCK=yes

8.6、时间进行更新并同步至集群其它主机
主机master60上执行
# ntpdate -u slave61

# ntpdate -u slave62

# ntpdate -u slave63

8.7、重启ntpd服务
所有主机执行
# service ntpd restart && service crond restart

9、设置用户的可打开最大文件数及进程数
所有主机执行
# vi /etc/security/limits.conf

# soft 软指标 ,给警告

# hard 硬指标 ,直接停止

* soft nofile 32728

* hard nofile 1024567

* soft nproc 65535

* hard nproc unlimited

* soft memlock unlimited

* hard memlock unlimited
10、创建一个Hadoop专用的普通用户
所有主机执行
10.1、创建hadoop用户并修改密码
# useradd hadoop

# passwd hadoop

10.2、创建hadoop组,并将hadoop用户加入hadoop组
# groupadd hadoop

# usermod -a -G hadoop hadoop

10.3、创建工作目录
# mkdir /apps && cd /apps && mkdir lib logs run sh sharedstorage svr

# chown -R hadoop:hadoop /apps/*

###################### 后续操作转hadoop用户 ######################

三、Hadoop集群部署
1、JDK安装
Java官网:http://www.oracle.com/technetwork/java/javase/overview/index.html上下载JDK1.8的Linux安装程序,并上传到服务器;
本平台采用JDK8U172的版本,jdk-8u172-linux-x64.tar.gz;
下载链接:http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz?AuthParam=1526031622_e7d7b8c755b98e2dd9545d5a1b5bf17a。
1.1、创建JDK工作目录
所有主机执行
$ mkdir -p /apps/svr/java/

1.2、上传解压JDK软件并拷贝至集群其它主机
主机master60上执行
$ tar -zxvf ~/jdk-8u172-linux-x64.tar.gz -C /apps/svr/java/

$ scp -r /apps/svr/java/jdk1.8.0_172/ slave61:/apps/svr/java/

$ scp -r /apps/svr/java/jdk1.8.0_172/ slave62:/apps/svr/java/

$ scp -r /apps/svr/java/jdk1.8.0_172/ slave63:/apps/svr/java/

1.3、配置JDK环境变量
所有主机执行
$ vim ~/.bash_profile

# JAVA_HOME

export JAVA_HOME=/apps/svr/java/jdk1.8.0_172

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=$PATH:$JAVA_HOME/bin
1.4、立即生效
所有主机执行
$ source ~/.bash_profile

2、部署Hadoop
Hadoop官网:http://archive.apache.org/dist/hadoop上下载hadoop2.x的Linux安装程序,并上传到服务器;
本平台采用hadoop-2.7.3的版本,hadoop-2.7.3.tar.gz;
下载链接:http://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz。
2.1、部署准备
主机master60上执行
a、创建hadoop工作目录,上传解压hadoop软件

$ mkdir -p /apps/svr/hadoop/
$ cd /apps/svr/hadoop/
$ mkdir conf data1 data2 lib logs run

$ mkdir -p /apps/svr/hadoop/data1/dfs/dn
$ mkdir -p /apps/svr/hadoop/data2/dfs/dn
$ mkdir -p /apps/svr/hadoop/data1/dfs/nn
$ mkdir -p /apps/svr/hadoop/data2/dfs/nn

$ tar -zxvf ~/hadoop-2.7.3.tar.gz -C /apps/svr/hadoop/
b、配置hadoop-env.sh

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/apps/svr/java/jdk1.8.0_172/

2.2、部署HDFS
主机master60上执行
a. 配置core-site.xml

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml

<configuration>
<!-- 设置NameNode运行的主机 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master60:9000</value>
</property>

<!-- hadoop文件系统依赖的基础配置 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/apps/svr/hadoop/run/</value>
</property>

<!-- hadoop的用户代理机制 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>

</configuration>
b. 配置hdfs-site.xml

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml

<configuration>
<!-- datanode数据保存路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/apps/svr/hadoop/data1/dfs/dn,/apps/svr/hadoop/data2/dfs/dn</value>
</property>

<!-- namenode所使用的元数据保存路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/apps/svr/hadoop/data1/dfs/nn,/apps/svr/hadoop/data2/dfs/nn</value>
</property>

<!-- hdfs数据块的复制份数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

<!-- dfs权限是否打开 -->
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>

</configuration>
c. 配置slaves,设置DataNode运行的主机

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/slaves

slave61

slave62

slave63

2.3、部署YARN
主机master60上执行
a. 配置yarn-site.xml

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml

<configuration>
<!-- ResourceManager对客户端暴露的地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master60:8032</value>
</property>

<!-- ResourceManager对ApplicationMaster暴露的访问地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master60:8030</value>
</property>

<!-- ResourceManager对NodeManager暴露的地址 -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master60:8031</value>
</property>

<!-- ResourceManager对管理员暴露的访问地址 -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master60:8033</value>
</property>

<!-- ResourceManager对外web ui地址 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master60:8038</value>
</property>

<!-- mapreduce中间需要经过shuffle过程 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

</configuration>
b. 配置mapred-site.xml

$ vim /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml

<configuration>
<!-- mapreduce运行在yarn平台上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

</configuration>
2.4、拷贝hadoop
主机master60上执行
$ scp -r /apps/svr/hadoop/ slave61:/apps/svr/

$ scp -r /apps/svr/hadoop/ slave62:/apps/svr/

$ scp -r /apps/svr/hadoop/ slave63:/apps/svr/

2.5、配置hadoop环境变量
所有主机执行
$ vim ~/.bash_profile

# HADOOP_HOME

export HADOOP_HOME=/apps/svr/hadoop/hadoop-2.7.3

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
立即生效
$ source ~/.bash_profile

2.6、启动测试hadoop
主机master60上执行
a. 格式化

$ hadoop namenode -format

b. 启动

$ start-dfs.sh

$ start-yarn.sh

c. 检查启动结果

$ yarn node -list

d. WEB UI验证

HDFS : http://192.168.9.60:50070

YARN : http://192.168.9.60:8038

2.7、历史服务器(88主机)
主机master62上执行
a. 配置mapred-site.xml

$ cd /apps/svr/hadoop/hadoop-2.7.3/etc/hadoop/

$ vim mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.9.62:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.9.62:19888</value>
</property>

<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>

<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>

<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/tmp/hadoop-yarn/staging</value>
</property>

</configuration>
b. 启动历史服务器

$ mr-jobhistory-daemon.sh start historyserver

C. WEB UI验证

JobHistory : http://192.168.9.62:19888

基于CentOS7的Hadoop3.2.0完全分布式集群部署记录
————————————————

猜你喜欢

转载自www.cnblogs.com/wuxiaoxia888/p/11429261.html