赞
踩
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
vim /etc/hostname
输入“service network restart
”,支持 IP 设置完成,接下来就可以使用 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 /opt
注意:如果你的虚拟机是最小化安装不需要执行这一步。
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 hadoop04
操作系统是 window10,先拷贝出来,修改保存以后,再覆盖即可
进入 C:\Windows\System32\drivers\etc 路径,以管理员身份打开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为例
(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
(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
[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
(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
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.4/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 pcz -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>pcz</value>
</property>
</configuration>
配置 hdfs-site.xml
[pcz@hadoop01 hadoop]$ vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
</property>
</configuration>
配置 yarn-site.xml
[pcz@hadoop01 hadoop]$ vim yarn-site.xml
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop1:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!--是否启动一个线程检查每一个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
配置 mapred-site.xml
[pcz@hadoop01 hadoop]$ vim mapred-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[root@hadoop01 opt]# xsync /opt/module/hadoop-3.1.4/etc/hadoop/
[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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。