Hadoop大数据开发基础系列:二、Hadoop集群搭建
1:创建虚拟机CentOs7操作系统,作为大数据集群的master节点
(1)修改网卡配置文件
#vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 注意:不同版本Linux中ifcfg-eno16777736文件名不同
文件中 BOOTPROTO=dhcp 修改=>BOOTPROTO=static
ONBOOT=no 修改==》 ONBOOT=yes
(2) 重启网路
#systemctl restart network
(3)查看IP地址
#ip a
(4) 用终端工具crt 或者xshell 进行连接
(5)配置本地yum源(如果可以连接外网此步骤可以省略)
1、进入本地yum源的目录 #cd /etc/yum.repos.d/
2、查看目录下文件 #ll
3、要配置的本地yum源 CentOS-Media.repo
4、将本地yum源文件以外的文件重命名 #mv CentOS-Base.repo CentOS-Base.repo.bak
5、执行命令#vi CentOS-Media.repo
6、挂载
#mount /dev/sr0 /media
7、更新yum源
# yum clean all
(6)安装及配置JDK
1、通过CRT的secureFX把JDK压缩包上传到/opt/目录下面
2、创建目录 #mkdir /usr/jdk64
3、解压安装JDK #tar -zxvf /opt/jdk-8u231-linux-x64.tar.gz -C /usr/jdk64
4、配置环境变量:#vi /etc/profile
export JAVA_HOME=/usr/jdk64/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
5、重新加载profile文件
#source /etc/profile
6、验证jdk版本
#java -version
(7)安装及配置Hadoop(2.8.5)
1、通过CRT的secureFX把JDK压缩包上传到/opt/目录下面
2、将hadoop解压安装在/usr/local
#tar -zxvf /opt/hadoop-2.8.5.tar.gz -C /usr/local
3、修改配置文件 #cd /usr/local/hadoop-2.8.5/etc/hadoop
1、core-site.xml hadoop的核心文件
Hadoop的HDFS系统的命名,位置为主机的8020端口
配置Haddop临时文件的位置
在文件的<configuration>中添加以下代码
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
2、hadoop-env.sh hadoop运行基本环境的配置
在文件中修改或注释掉原有的export JAVA_HOME=
修改或添加 export JAVA_HOME=/usr/jdk64/jdk1.8.0_231
3、yarn-env.sh 文件是YARN框架运行环境的配置
在文件中修改或注释掉原有的export JAVA_HOME=
修改或添加 export JAVA_HOME=/usr/jdk64/jdk1.8.0_231
4、mapred-site.xml 是MapReduce的相关配置
在hadoop目录下不存在mapred-site.xml
1、复制 文件
#cp mapred-site.xml.template mapred-site.xml
2、在文件的<configuration>中添加以下代码
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
5、yarn-site.xml YARN框架的配置
在文件的<configuration>中添加以下代码
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6、hdfs-site.xml HDFS的相关配置
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
7、slaves 该文件保存有slave节点的信息 注:两个节点
删除文件中localhost
添加
slave1
slave2
(8)hosts /etc/hosts
添加下面内容
192.168.60.111 master master.centos.com
192.168.60.112 slave1 slave1.centos.com
192.168.60.113 slave2 slave2.centos.com
(9)修改主机名
#hostnamectl set-hostname master
#bash
2、创建子节点 备注:两个子节点操作完全相同
(1)克隆master节点,取名slave1
(2)修改网卡配置文件
#vi /etc/sysconfig/network-scripts/ifcfg-ens33 注意:不同版本Linux中ifcfg-ens33文件名不同
删除或者修改UUID最后一个字符,改成不一致即可
(3)重启网络
systemctl restart network
(4)查看IP地址
#ip a
(5)连接CRT 修改主机名
#hostnamectl set-hostname slave1
#bash
3、配置SSH免密码登录
(1)使用ssh-******产生公钥与私钥对
输入#ssh-****** -t rsa,连续按三次enter键 注:-t用于指定要创建的SSH**的类型是rsa
生成私有秘钥id_rsa和公有**id_rsa.pub两个文件
(2)用ssh-copy-id将公钥复制到远程机器中
#ssh-copy-id -i /root/.ssh/id_rsa.pub master 输入yes,密码(000000)
#ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
#ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
注:若通过ssh slave1进行验证是否能够无**登录时,验证完成用exit退出
4、配置时间同步服务
NTP是用来使计算机时间同步化的一种协议
(1)在master节点安装NTP服务 注:ntp安装失败,尝试重新挂载 mount /dev/sr0 /media 注:若要卸载ntp服务命令为yum erase ntp
#yum install ntp -y yum clean all
(2)设置master节点为NTP服务主节点
修改ntp.conf文件
#vi /etc/ntp.conf 四行server内容注释掉
添加
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)启动ntp服务
#systemctl start ntpd 启动ntp服务
#systemctl enable ntpd 开机自动启动ntp服务
#systemctl stop firewalld 关闭防火墙
(4)在slave1、slave2节点分别按照ntpdate
#yum install ntpdate -y 若安装失败,尝试重新挂载
#ntpdate master 同步master节点时间 注:出现no server….........错误是,关闭master节点的防火墙
#systemctl enable ntpdate 把ntpdate加入随机启动
*****同步到网络时间: ntpdate pool.ntp.org
5、在master节点配置Hadoop环境变量
(1)#vi /etc/profile
修改内容
添加一行:export HADOOP_HOME=/usr/local/hadoop-2.8.5
修改PATH:export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
(2)重新加载profile文件
source /etc/profile
6、格式化HDFS文件系统
#hdfs namenode -format
7、启动集群
#cd /usr/local/hadoop-2.8.5/ 进入Hadoop安装目录
#sbin/start-dfs.sh 启动HDFS相关服务
#sbin/start-yarn.sh 启动YARN相关服务
#sbin/mr-jobhistory-daemon.sh start historyserver 启动日志相关服务
同jps命令查看是否启动成功 master节点 slave1、slave2执行jps命令
8、HDFS监控
http://192.168.60.111:50070 若无法访问确认master是否关闭防火墙
1、 Overview 记录了NameNode的启动时间、版本号、编译版本等一些基本信息
2、 Summary 集群信息。提供集群环境的基本信息
9、关闭集群
#sbin/stop-yarn.sh
#sbin/stop-dfs.sh
#sbin/mr-jobhistory-daemon.sh stop historyserver
注:启动所以服务可以用sbin/start-all.sh
关闭所以服务可以用sbin/stop-all.sh
完成以后,在新增节点 如果需要添加节点:
1、克隆
2、修改网卡配置文件
3、主节点子节点中slaves文件修改添加slave3
4、主节点子节点中hosts文件添加slave3
5、ssh免**登录到slave3
6、安装ntpdate 同步master时间
7、在新增节点上启动DataNode
8、在新增节点上启动NodeManager
在master节点停止所有服务,然后在第三节点上清除缓存:
#rm -rvf /data/hadoop/hdfs
再重启服务就可以了