Hadoop3.1.4完全分布式集群搭建
目录
- 一、.修改主机名
- 二、关闭防火墙
- 1.查看CentOS 7防火墙状态
- 2.关闭运行的防火墙
- 3.禁用防火墙服务
- 三、关闭NodeManager服务
- 四、配置静态ip
- 五、克隆虚拟机
- mac地址的设置如下:
- 六、ip地址和主机名的映射
- 1.需要使用root用户修改 **/etc/hosts** 文件,删除原来的内容,在结尾直接追加内容(每台机器):
- 2.配置完成后可以使用**ping**命令一一测试,看看是够能够正确解析出ip地址,得到目标机器的回应(可以每台机器都测试一下:使用Ctrl + C结束)。
- 3.在slave1和slave2 上也修改hosts文件,追加内容和步骤1的内容相同,然后重复步骤2
- 七、免密登录设置
- 1.生成公钥密钥对
- 2.将子节点的公钥拷贝到主节点并添加进authorized_keys
- 3.测试是否成功
- 八、配置时间同步服务
- 1.下载安装ntp服务
- 2.设置master节点为ntp服务主节点
- 3.从节点配置ntp服务
- 4.启动ntp服务
- 九、配置jdk环境
- 1.下载jdk安装包和hadoop3.1.4
- 2.将本地的jdk安装包上传到/opt/software系统中
- 3.进入/opt/software目录下,解压jdk安装包到/opt/module
- 4.配置环境变量
- 十、Hadoop集群配置
- 1.修改core-site.xml文件
- 2.修改hdfs-site.xml文件
- 3.修改mapred-site.xml文件
- 4.修改yarn-site.xml文件
- 5 修改workers文件
- 6.修改环境变量相关设置
- 十一、格式化文件系统
- 十二、启动和关闭集群
- 1.hdfs的启动和关闭:(在主节点master上执行)
- 验证平台搭建是否成功
- 十三、通过UI界面查看Hadoop集群运行状态
- 1.windows操作系统下,配置hosts映射
- 2.在浏览器中输入 master:9870
- 十四、配置时间同步服务
- 1.下载安装ntp服务
- 2.设置master节点为ntp服务的主节点
- 3.分别在slave1和slave2节点中配置ntp服务
- 4.关闭和禁用防火墙服务
- 5.启动ntp服务
- 6.使用命令ntpdate master去同步master节点的时间
- 7.在slave1和slave2节点上启动ntp服务
- 十五、配置本地yum源及安装常用软件
- 1.yum常用的命令
- 2.参数
- 3.配置本地yum源
一、.修改主机名
在Centos7中直接使用root用户执行hostnamectl命令修改,重启(reboot)后永久生效。
hostnamectl set-hostname 新主机名
要求:三台主机的名字分别为:master slave1 slave2
二、关闭防火墙
1.查看CentOS 7防火墙状态
systemctl status firewalld.service
2.关闭运行的防火墙
systemctl stop firewalld.service
关闭后,可查看防火墙状态,当显示disavtive(dead)的字样,说明CentOS 7防火墙已经关闭。
但要注意的是,上面的命令只是临时关闭了CentOS 7防火墙,当重启操作系统后,防火墙服务还是会再次启动。如果想要永久关闭防火墙则还需要禁用防火墙服务。
3.禁用防火墙服务
systemctl disable firewalld.service
三、关闭NodeManager服务
NAT模式,修改网卡配置文件后,重启服务出现错误’Job for network.service failed because the control process exited with error code. See “systemctl status network.service” and “journalctl -xe” for details.’
解决方法:
1.和 NetworkManager 服务有冲突,关闭 NetworkManger 服务
systemctl stop NetworkManager
2.禁止开机启动NetworkManager 服务
systemctl disable NetworkManager
3.除此以外,其他相关命令如下:
查看# systemctl status NetworkManager 开启# systemctl start NetworkManager 可用# systemctl enable NetworkManager
四、配置静态ip
使用root用户修改当前启用的网卡配置文件,所在路径为 /etc/sysconfig/network-scripts ,CentOS 6系统默认为ifcfg-eth0,CentOS 7系统默认为ifcfg-ens32 ,使用vi编辑器编辑ifcfg-ens32文件,所用命令如下:
vi /etc/sysconfig/network-scripts/ifcfg-ens32
三个节点上的这个文件都需要修改,修改的内容基本一致,如下是需要修改和添加的
#原值为dhcp,修改为static BOOTPROT="satic" # 添加IPADDR,对应的值要与原ip在同一网段 IPADDR=xxx.xxx.xxx.xxx # 添加NETMASK,指定子网掩码,默认为255.255.255.0 NETMASK=255.255.255.0 # 添加GATEWAY,要与虚拟机网卡的设置一致,默认仅主机模式为1,NAT模式为2 GATEWAY=xxx.xxx.xxx.1/2 # 如果需要连入外网,则可以添加DNS1和DNS2配置,通常会将DNS1指定为网关地址 DNS1=网关地址 DNS2=8.8.8.8
注意:配置完成后保存退出,使用systemctl restart network命令重启网卡服务。(如果使用service network restart命令,则需要编辑/etc/resolv.conf文件,添加对应的如下内容:nameserver 8.8.8.8 )
五、克隆虚拟机
克隆完成后需要重新设置ip地址和mac地址
mac地址的设置如下:
启动虚拟机,输入
uuidgen
vi /etc/sysconfig/network-scripts/ifcfg-ens32
然后重启网络
systemctl restart network
六、ip地址和主机名的映射
在完全分布式部署的Hadoop平台上,为了方便各节点的交互,也为了尽量减少配置的修改,通常在配置文件中都会使用主机名来访问节点,这就需要正确的建立主机名与ip的映射。我们目前已经有了三台配置好网络的机器。现在我们有这样三台机器(master为主节点):
主机名称 IP地址 master 192.168.233.131 slave1 192.168.233.130 slave2 192.168.233.128 1.需要使用root用户修改 /etc/hosts 文件,删除原来的内容,在结尾直接追加内容(每台机器):
192.168.233.131 master 192.168.233.130 slave1 192.168.233.128 slave2
2.配置完成后可以使用ping命令一一测试,看看是够能够正确解析出ip地址,得到目标机器的回应(可以每台机器都测试一下:使用Ctrl + C结束)。
3.在slave1和slave2 上也修改hosts文件,追加内容和步骤1的内容相同,然后重复步骤2
七、免密登录设置
1.生成公钥密钥对
在3个节点上分别都执行如下命令:
ssh-keygen
连续按Enter键确认。
在root目录下输入:ll-a 可以查看当前目录下的所有文件(包含隐藏文件)。
然后进入.ssh隐藏目录,输入ls 命令,如图所示:
在图中能够看到包含两个文件分别是私钥和公钥,其中id_rsa为生成的私钥,id_rsa.pub为生成的公钥。
2.将子节点的公钥拷贝到主节点并添加进authorized_keys
在master节点上执行如下两行命令:
ssh-copy-id master ssh-copy-id slave1 ssh-copy-id slave2
执行时,到了红色框区域,需要输入yes
3.测试是否成功
为了测试免密设置是否成功,可执行如下命令:
ssh master ssh slave1 ssh slave2
结果如图所示:
八、配置时间同步服务
-
如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
-
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
-
NTP(Network Time Protocol,网络时间协议) 是使计算机时间同步化的一种协议,可以使计算机对其服务器或时钟源进行同步化,提供高精度的时间校正。
-
Hadoop集群对时间要求很高,主节点与各从节点的时间必须同步,因此需要配置时间同步服务。
1.下载安装ntp服务
2.设置master节点为ntp服务主节点
3.从节点配置ntp服务
4.启动ntp服务
九、配置jdk环境
为了规范后续Hadoop集群相关软件和数据的安装配置,这里在虚拟机的根目录下建一些文件夹作为约定,具体如下:
文件夹名 作用 /opt/module 存放软件 /opt/software 存放安装包压缩包 具体需要执行下面3条命令:
mkdir -p /opt/module mkdir -p /opt/software
进入/opt目录下,执行ls命令,如图所示即为成功。
1.下载jdk安装包和hadoop3.1.4
下载JDK地址 : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.将本地的jdk安装包上传到/opt/software系统中
3.进入/opt/software目录下,解压jdk安装包到/opt/module
执行如下命令:
cd /opt/software tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/module tar hadoop-3.1.4.tar.gz -C /opt/module/
解压后在/opt/module目录下使用ll命令查看:!](https://img-blog.csdnimg.cn/direct/6327133fd6d3457a896f36b2e32b3873.png)
4.配置环境变量
使用vi编辑器编辑etc文件夹下的profile文件,键盘按下大写字母G,即可将光标移动到文章的末尾。
vi /etc/profile.d/my_env.sh
将如下内容添加到末尾
#jdk环境变量 export JAVA_HOME=/opt/module/jdk1.8.0_161 export PATH=$JAVA_HOME/bin:$PATH #hadoop环境变量 export HADOOP_HOME=/opt/module/hadoop-3.1.4 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新环境变量
source /etc/profile
使用命令测试jdk环境变量的配置
java -version
使用命令测试hadoop环境变量的配置
hadoop version
十、Hadoop集群配置
hadoop完全分布式集群各节点进程角色分配如下表所示:
master slave1 s;ave2 namenode resourcemanager secondarynamenode datanode datanode datanode nodemanager nodemanager nodemanager 1.修改core-site.xml文件
fs.defaultFS hdfs://master:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.4/data hadoop.http.staticuser.user root
这里的data文件夹需要我们自己创建,进入到对应的目录
cd /opt/module/hadoop-3.1.4/ mkdir data
2.修改hdfs-site.xml文件
dfs.namenode.http-address master:9870 dfs.namenode.secondary.http-address slave2:9868 dfs.permissions false
3.修改mapred-site.xml文件
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888
4.修改yarn-site.xml文件
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname slave1 yarn.nodemanager.vmem-check-enabled false
在任意目录下输入:hadoop classpath,复制返回的信息,并添加到如下value标签中
yarn.application.classpath 输入刚才返回的Hadoop classpath路径
5 修改workers文件
master slave1 slave2
6.修改环境变量相关设置
vi /etc/profile.d/my_env.sh
添加hadoop为root用户,否则启动的HDFS的时候可能会报错.
添加如下内容:
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_JOURNALNODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
十一、格式化文件系统
初次启动HDFS集群时,必须对主节点进行格式化处理
格式化文件系统指令如下:
hdfs namenode -format
十二、启动和关闭集群
1.hdfs的启动和关闭:(在主节点master上执行)
启动:start-dfs.sh 关闭:stop-dfs.sh
2.启动yarn:(在主节点slave1上执行)
启动:start-yarn.sh 关闭:stop-yarn.sh
验证平台搭建是否成功
需要在三台节点上分别敲入jps命令,如下图所示,说明搭建成功
十三、通过UI界面查看Hadoop集群运行状态
windows系统下通过浏览器输入master节点的ip地址+端口号可以进入HDFS的UI监控界面
1.windows操作系统下,配置hosts映射
进入C:\Windows\System32\drivers\etc,可以删掉hosts文件,然后在桌面新建一个文本文档,将映射关系写入后保存为文件名为hosts,然后复制粘贴到etc目录下。
192.168.15.130 master
192.168.15.131 slave1
192.168.15.132 slave2
2.在浏览器中输入 master:9870
十四、配置时间同步服务
NTP(Network Time Protocol)网络时间协议,使计算机时间同步的一种协议
1.下载安装ntp服务
yum install -y ntp
2.设置master节点为ntp服务的主节点
vi /etc/ntp.conf
注释掉server开头的行
添加如下内容:
restrict 192.168.15.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3.分别在slave1和slave2节点中配置ntp服务
(1)通过scp -r命令将ntp.conf传给slave1和slave2
(2)在ntp.conf文件中添加如下内容:
server master
4.关闭和禁用防火墙服务
关闭防火墙:systemctl stop firewalld.service
查看防火墙状态: systemctl status firewalld.service
移除防火墙: systemctl disable firewalld.service
5.启动ntp服务
(1)在master节点上使用
systemctl start ntpd 启动ntp服务
systemctl enable ntpd 永久开启ntp服务
6.使用命令ntpdate master去同步master节点的时间
7.在slave1和slave2节点上启动ntp服务
systemctl start ntpd 启动ntp服务
systemctl enable ntpd永久开启ntp服务
十五、配置本地yum源及安装常用软件
1.yum常用的命令
install 安装RPM软件包
remove 删除RPM软件包(卸载)
2.参数
-y 对所有的提问都回答yes
3.配置本地yum源
(1)cd /etc/yum.repos.d/ 进入对应的配置目录
(2)查看目录的下的文件:ll
(3)将除了 CentOS-Media.repo这个文件以外的其他文件都加.bak后缀
(4)vi CentOS-Media.repo
将baseurl的值修改为file:///media/
将gpgcheck的值修改为0
将enabled的值修改为1
(4)使用 mount /dev/sr0 /media/ 命令挂在本地yum源
(5)yum clean all 更新yum源
注意事项:
二次格式化hdfs,需要将data文件夹下的内容清空(直接删除data文件夹),还要删除logs文件夹下的内容(直接删除logs文件夹)
-