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.21.2、修改主机名,改为hadoop01
vim /etc/hostname
输入“service network restart”,支持 IP 设置完成,接下来就可以使用 xshell连接该节点,操作更加方便。
1.4、连接xshell(1)、新建会话:输入名称和hadoop01的ip
(2)、点击确定即可,然后双击左侧hadoop01,点击接收并保存
(3)、输入用户名,点击记住用户名
注意:我这里使用的是root用户,就不用后面切换到root进行配置
(4)、再次双击hadoop01,输入密码,点击记住密码,然后确定
(5)、连接成功,后续配置操作均在xshell进行
ping www.baidu.com
按Ctrl+C结束ping
yum -y install ntp openssh-clients openssh-server vim
注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方repository 中是找不到的)
yum install -y epel-release
yum -y install rsync
➢ net-tool:工具包集合,包含 ifconfig 等命令
yum install -y net-tools
➢ vim:编辑器
yum install -y vim
systemctl stop firewalld systemctl disable firewalld.service
注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙
vim /etc/sudoers
修改/etc/sudoers 文件,在%wheel 这行下面添加一行,如下所示:
pcz ALL=(ALL) NOPASSWD:ALL
注意:pcz 这一行不要直接放到 root 行下面,因为所有用户都属于 wheel 组,你先配置了 pcz 具有免密功能,但是程序执行到%wheel 行时,该功能又被覆盖回需要密码。所以 pcz 要放到%wheel 这行下面。
mkdir /opt/module
mkdir /opt/software
(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 /opt1.10、卸载虚拟机自带的JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
➢ rpm -qa:查询所安装的所有 rpm 软件包
➢ grep -i:忽略大小写
➢ xargs -n1:表示每次只传递一个参数
➢ rpm -e –nodeps:强制卸载软件
reboot
注意:克隆时,要先关闭 hadoop01
(1)
(2)
(3)
(4)
(5)
(6)
等待完成 关闭即可
(7)按照上面步骤 完成hadoop03、hadoop04克隆
`[root@hadoop01 pcz]# vim /etc/sysconfig/netwo
rk-scripts/ifcfg-ens33`
[root@hadoop01 pcz]# vim /etc/hostname
vim /etc/hosts
192.168.150.211 hadoop01 192.168.150.212 hadoop02 192.168.150.213 hadoop03 192.168.150.214 hadoop042.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
保存时需注意:按照如下方式保存
(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
(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 | 存放授权过的无密登录服务器公钥 |
(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 服务。
这里以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/bin4.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
位置:/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 shareb)重要目录
(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
注意:
➢ NameNode 和 SecondaryNameNode 不要安装在同一台服务器
➢ ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。
| hadoop01 | hadoop02 | hadoop03 | |
|---|---|---|---|
| HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager | NodeManager |
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 这个路径上,用户可以根据项目需求重新进行修改配置。
进入配置文件目录:
cd $HADOOP_HOME/etc/hadoop或者cd /opt/module/hadoop-3.1.4/etc/hadoop
配置core-site.xml
vim core-site.xml
(2)HDFS 配置文件fs.defaultFS hdfs://hadoop01:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.4/data hadoop.http.staticuser.user pcz
配置 hdfs-site.xml
[pcz@hadoop01 hadoop]$ vim hdfs-site.xml
(3)YARN 配置文件dfs.namenode.http-address hadoop01:9870 dfs.namenode.secondary.http-address hadoop03:9868
配置 yarn-site.xml
[pcz@hadoop01 hadoop]$ vim yarn-site.xml
(4)MapReduce 配置文件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
配置 mapred-site.xml
[pcz@hadoop01 hadoop]$ vim mapred-site.xml
3.4、在集群上分发配置好的 Hadoop 配置文件mapreduce.framework.name yarn
[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/
(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
(1)整体启动/停止 HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止 YARN
start-yarn.sh/stop-yarn.sh
(1)分别启动/停止 HDFS 组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)启动/停止 YARN
yarn --daemon start/stop resourcemanager/nodemanager
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



