栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

二、搭建Hadoop集群

二、搭建Hadoop集群

一、创建模板机 1.1、修改配置文件中的 IP 设置

vim /etc/sysconfig/network-scripts/ifcfg-ens33

#修改:
onBOOT=yes
BOOTPROTO=static
IPADDR=192.168.150.211
NETMASK=255.255.255.0
GATEWAY=192.168.150.2
DNS1=192.168.150.2
1.2、修改主机名,改为hadoop01

vim /etc/hostname

1.3、重启网络服务

输入“service network restart”,支持 IP 设置完成,接下来就可以使用 xshell连接该节点,操作更加方便。

1.4、连接xshell

(1)、新建会话:输入名称和hadoop01的ip

(2)、点击确定即可,然后双击左侧hadoop01,点击接收并保存

(3)、输入用户名,点击记住用户名
注意:我这里使用的是root用户,就不用后面切换到root进行配置

(4)、再次双击hadoop01,输入密码,点击记住密码,然后确定

(5)、连接成功,后续配置操作均在xshell进行

1.5、安装相关软件 1.5.1、ping一下百度检验网络是否畅通

ping www.baidu.com

按Ctrl+C结束ping

1.5.2、安装ssh连接软件

yum -y install ntp openssh-clients openssh-server vim

1.5.3、安装 epel-release

注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方repository 中是找不到的)
yum install -y epel-release

1.5.4、各节点下载rsync

yum -y install rsync

1.5.5、注意:如果 Linux 安装的是最小系统版,还需要安装如下工具;如果安装的是 Linux桌面标准版,不需要执行如下操作

➢ net-tool:工具包集合,包含 ifconfig 等命令
yum install -y net-tools
➢ vim:编辑器
yum install -y vim

1.6、关闭防火墙和防火墙开机自启动
systemctl stop firewalld
systemctl disable firewalld.service


注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

1.7、配置 pcz 用户具有 root 权限,方便后期加 sudo 执行 root 权限的命令

vim /etc/sudoers
修改/etc/sudoers 文件,在%wheel 这行下面添加一行,如下所示:
pcz ALL=(ALL) NOPASSWD:ALL

注意:pcz 这一行不要直接放到 root 行下面,因为所有用户都属于 wheel 组,你先配置了 pcz 具有免密功能,但是程序执行到%wheel 行时,该功能又被覆盖回需要密码。所以 pcz 要放到%wheel 这行下面。

1.8、在/opt 目录下创建文件夹,并修改所属主和所属组

mkdir /opt/module
mkdir /opt/software

1.9、修改 module、software 文件夹的所有者和所属组均为 pcz 用户

(1)、在/opt 目录下创建 module、software 文件夹

mkdir /opt/module
mkdir /opt/software


(2)、修改 module、software 文件夹的所有者和所属组均为 pcz 用户

chown pcz:pcz /opt/module
chown pcz:pcz /opt/software


(3)查看 module、software 文件夹的所有者和所属组

ll /opt

1.10、卸载虚拟机自带的JDK

注意:如果你的虚拟机是最小化安装不需要执行这一步。

 rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

➢ rpm -qa:查询所安装的所有 rpm 软件包
➢ grep -i:忽略大小写
➢ xargs -n1:表示每次只传递一个参数
➢ rpm -e –nodeps:强制卸载软件

1.11、重启虚拟机,模板机制作完成

reboot

二、 克隆虚拟机 1、利用模板机 hadoop01,克隆三台虚拟机:hadoop02 hadoop03 hadoop04

注意:克隆时,要先关闭 hadoop01
(1)

(2)

(3)

(4)

(5)

(6)
等待完成 关闭即可

(7)按照上面步骤 完成hadoop03、hadoop04克隆

2、修改各子节点的ip和主机名,这里以hadoop02为例 2.1、修改ip

`[root@hadoop01 pcz]# vim /etc/sysconfig/netwo

rk-scripts/ifcfg-ens33`

2.2、修改主机名

[root@hadoop01 pcz]# vim /etc/hostname

2.3、配置 Linux 克隆机主机名称映射 hosts 文件,打开/etc/hosts

vim /etc/hosts

192.168.150.211 hadoop01
192.168.150.212 hadoop02
192.168.150.213 hadoop03
192.168.150.214 hadoop04

2.4、重启该虚拟机 2.5、同样的方式修改hadoop03、hadoop04 2.6、修改 windows 的主机映射文件(hosts 文件)

操作系统是 window10,先拷贝出来,修改保存以后,再覆盖即可
进入 C:WindowsSystem32driversetc 路径,以管理员身份打开hosts文件并添加

192.168.150.211 hadoop01
192.168.150.212 hadoop02
192.168.150.213 hadoop03
192.168.150.214 hadoop04


保存时需注意:按照如下方式保存

3、在主机上创建分发脚本、配置SSH无密码登录、时间同步 3.1、创建分发脚本

(1)、进入/bin目录 在这里面配置脚本是全局可运行
cd /bin
(2)、创建脚本
vim xsync
(3)输入脚本内容,保存退出

#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
          echo 参数个数不匹配
          exit;
fi
#2.遍历集群所有机器
for host in hadoop01 hadoop02 hadoop03
do
         echo ========================$host========================
         #3.遍历所有目录,挨个发送
         for file in $@
         do
           #4.判断文件是否存在
           if [ -e $file ]
             then
              #5.获取父目录
              pdir=$(cd -P $(dirname $file); pwd)
              #6.获取当前文件的名称                         fname=$(basename $file)
              ssh $host "mkdir -p $pdir"
              rsync -av $pdir/$fname $host:$pdir
                 else
                      echo $file 不存在!
                 fi
        done
done

(4)、修改脚本 xsync 具有执行权限
chmod +x xsync

3.2、创建ssh免密登录

(1)、使用 ssh-keygen 产生公钥与私钥对。输入命令“ssh-keygen -t rsa”,接着按三次 Enter 键。执行后出现如下输出。
ssh-keygen -t rsa

生成私有密钥 id_rsa 和公有密钥 id_rsa.pub 两个文件。ssh-keygen 用来生成 RSA类型的密钥以及管理该密钥,参数“-t”用于指定要创建的 SSH 密钥的类型为RSA。

(2)、用 ssh-copy-id 将公钥复制到远程机器中

ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop01//依次输入 yes,123456(root 用户的密码)
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop02
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop03

(3)、 验证是否设置无密码登录
依次输入

ssh hadoop02
exit;
ssh hadoop03
exit;

(4).ssh 文件夹下(~/.ssh)的文件功能解释

名称含义
known_hosts记录 ssh 访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过的无密登录服务器公钥
3.3、配置时间同步服务

(1) 安装 NTP 服务。在各节点:
yum -y install ntp
(2) 修改设置
假设 master 节点为 NTP 服务主节点,那么其配置如下。使用命令“vim /etc/ntp.conf”打开/etc/ntp.conf 文件,注释掉以 server 开头的行,并添加:

restrict 192.168.150.2 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

(3) 在 子节点 中配置 NTP
同样修改/etc/ntp.conf 文件,注释掉 server 开头的行,并添加:
server hadoop01
(4) 关闭防火墙
执行命令“systemctl stop firewalld.service & systemctl disable firewalld.service”永久性关闭防火墙,主节点和从节点都要关闭。
(5) 启动 NTP 服务
① 在 hadoop01 节点执行命令“service ntpd start & chkconfig ntpd on”
② 在子节点上执行命令“ntpdate hadoop01”即可同步时间
③ 在 子节点上分别执行“service ntpd start & chkconfig ntpd on”即可启动并
永久启动 NTP 服务。

4、各节点安装jdk,主节点安装hadoop

这里以hadoop01为例

4.1、安装jdk

(1)把jdk和hadoop的压缩包放在software目录下

cd /opt/software
sz


等待上传完成

检查是否上传成功

(2)解压 JDK 到/opt/module 目录下
rpm -i --badreloc --relocate /usr/java=/opt/module jdk-8u221-linux-x64.rpm

验证jdk是否安装成功:
java -version

(3)配置 JDK 环境变量
新建/etc/profile.d/my_env.sh 文件
vim /etc/profile.d/my_env.sh
添加如下内容

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_221-amd64
export PATH=$PATH:$JAVA_HOME/bin
4.2、安装hadoop

(1)解压安装文件到/opt/module 下面
tar -zxvf hadoop-3.1.4.tar.gz -C /opt/module/

(2)将 Hadoop 添加到环境变量
vim /etc/profile.d/my_env.sh
添加

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

(3)测试Hadoop是否安装成功
hadoop version

4.3、Hadoop目录结构

位置:/opt/module/hadoop-3.1.4

a)查看hadoop目录:
[root@hadoop01 hadoop-3.1.4]# ll
total 176
drwxr-xr-x. 2 1001 1002    183 Jul 21  2020 bin
drwxr-xr-x. 3 1001 1002     20 Jul 21  2020 etc
drwxr-xr-x. 2 1001 1002    106 Jul 21  2020 include
drwxr-xr-x. 3 1001 1002     20 Jul 21  2020 lib
drwxr-xr-x. 4 1001 1002    288 Jul 21  2020 libexec
-rw-rw-r--. 1 1001 1002 147145 Jul 20  2020 LICENSE.txt
-rw-rw-r--. 1 1001 1002  21867 Jul 20  2020 NOTICE.txt
-rw-rw-r--. 1 1001 1002   1366 Jul 20  2020 README.txt
drwxr-xr-x. 3 1001 1002   4096 Jul 21  2020 sbin
drwxr-xr-x. 4 1001 1002     31 Jul 21  2020 share
b)重要目录

(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

三、集群配置 3.1、集群部署规划

注意:
➢ NameNode 和 SecondaryNameNode 不要安装在同一台服务器
➢ ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。

hadoop01hadoop02hadoop03
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager
3.2、配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认
配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:
位置:/opt/module/hadoop-3.1.4/share/hadoop

要获取的默认文件文件存放在 Hadoop 的 jar 包中的位置
[core-default.xml]hadoop-common-3.1.4.jar/core-default.xml
[hdfs-default.xml]hadoop-hdfs-3.1.4.jar/hdfs-default.xml
[yarn-default.xml]hadoop-yarn-common-3.1.4.jar/yarn-default.xml
[mapred-default.xml]hadoop-mapreduce-client-core-3.1.4.jar/mapred-default.xml

(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。

3.3、配置集群

进入配置文件目录:
cd $HADOOP_HOME/etc/hadoop或者cd /opt/module/hadoop-3.1.4/etc/hadoop

(1)核心配置文件

配置core-site.xml
vim core-site.xml




 
 
 fs.defaultFS
 hdfs://hadoop01:8020
 
 
 
 hadoop.tmp.dir
 /opt/module/hadoop-3.1.4/data
 
 
 
 hadoop.http.staticuser.user
 pcz
 

(2)HDFS 配置文件

配置 hdfs-site.xml
[pcz@hadoop01 hadoop]$ vim hdfs-site.xml






 dfs.namenode.http-address
 hadoop01:9870
 

 
 dfs.namenode.secondary.http-address
 hadoop03:9868
 

(3)YARN 配置文件

配置 yarn-site.xml
[pcz@hadoop01 hadoop]$ vim yarn-site.xml





yarn.nodemanager.aux-services
mapreduce_shuffle




yarn.resourcemanager.hostname
hadoop02




yarn.nodemanager.env-whitelist

JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME



yarn.log-aggregation-enable
true



yarn.log.server.url
http://hadoop1:19888/jobhistory/logs



yarn.log-aggregation.retain-seconds
604800



yarn.nodemanager.vmem-check-enabled
false



(4)MapReduce 配置文件

配置 mapred-site.xml
[pcz@hadoop01 hadoop]$ vim mapred-site.xml





 
 mapreduce.framework.name
 yarn
 


3.4、在集群上分发配置好的 Hadoop 配置文件

[root@hadoop01 opt]# xsync /opt/module/hadoop-3.1.4/etc/hadoop/

3.5、群起集群 1)、配置workers

[root@hadoop01 opt]# vim /opt/module/hadoop-3.1.4/etc/hadoop/workers

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
[root@hadoop01 opt]# xsync /opt/module/hadoop-3.1.4/etc/

2)、启动集群

(1)如果集群是第一次启动,需要在 hadoop01 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)
格式化NameNode: hdfs namenode -format

(2)启动 HDFS
/opt/module/hadoop-3.1.4
sbin/start-dfs.sh
(3)在配置了 ResourceManager 的节点(hadoop02)启动 YARN
sbin/start-yarn.sh
(4)Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://hadoop01:9870
(b)查看 HDFS 上存储的数据信息
(5)Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://hadoop02:8088
(b)查看 YARN 上运行的 Job 信息
(6)查看 JobHistory
http://hadoop01:19888/jobhistory

3.6、集群启动/停止方式总结 1)各个模块分开启动/停止(配置 ssh 是前提)常用

(1)整体启动/停止 HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止 YARN
start-yarn.sh/stop-yarn.sh

2)各个服务组件逐一启动/停止

(1)分别启动/停止 HDFS 组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)启动/停止 YARN
yarn --daemon start/stop resourcemanager/nodemanager

3.7、编写hadoop常用脚本

1)Hadoop 集群启停脚本(包含 HDFS,Yarn,Historyserver):pczhd

#!/bin/bash
if [ $# -lt 1 ]
then
 echo "输入的参数有误!"
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 hadoop 集群 ==================="
 echo "    ================     启动 hdfs     ================ "
 ssh hadoop01 "/opt/module/hadoop-3.1.4/sbin/start-dfs.sh"
 echo "    ================     启动 yarn     ================ "
 ssh hadoop02 "/opt/module/hadoop-3.1.4/sbin/start-yarn.sh"
 echo "    ================ 启动historyserver ================ "
 ssh hadoop01 "/opt/module/hadoop-3.1.4/bin/mapred --daemon start historyserver"
;;
"stop")
 echo " =================== 关闭 hadoop 集群 ==================="
 echo "    ================ 关闭historyserver ================  "
 ssh hadoop01 "/opt/module/hadoop-3.1.4/bin/mapred --daemon stop historyserver"
 echo "    ================     关闭 yarn     ================ "
 ssh hadoop02 "/opt/module/hadoop-3.1.4/sbin/stop-yarn.sh"
 echo "    ================     关闭 hdfs     ================ "
 ssh hadoop01 "/opt/module/hadoop-3.1.4/sbin/stop-dfs.sh"
;;
*)
 echo "输入参数有误!"
;;
esac


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号