Hadoop集群搭建
文章目录
搭建环境
以下为搭建Hadoop集群所需要的环境:
VMware Workstation
Xshell
Xftp
Nodepad++
CentOS 7
hadoop-3.3.0
jdk-1.8
所需软件,可到官网进行下载
一、安装VMware虚拟机
1.1安装虚拟机
安装目录没有中文字符,没有空格
1.2配置网关
1.3修改windows的网卡信息
第3步的192.168.88.x改为192.168.240.x 即与WMware设置的相同即可
二、安装CentOS
2.1模拟硬件
2.2关联centos镜像
2.3安装centos镜像
主机名自己设置即可
三、连接xshell
四、连接nodepad++
五、使用nodepad++修改linux的网卡配置信息
文件目录:/etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="3b3f9a3b-a378-41d9-bb5e-fdeca47539a7"
DEVICE="ens32"
ONBOOT="yes"
IPADDR="192.168.240.151"
GATEWAY="192.168.240.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="114.114.114.114"
IPV6_PRIVACY="no"
修改完成后重启网卡服务,加载新的配置文件
systemctl restart network
重启完成后要重新连接xshell与nodepad++
六、关闭防火墙
查看防火墙状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
禁止开机启动
systemctl disable firewalld
七、添加用户组并给予权限
添加hadoop用户组
groupadd hadoop
添加hadoop01用户
useradd -g hadoop hadoop01
注意:这里的用户名可以自主更改
设置密码
passwd hadoop01
给予权限
chmod 660 /etc/sudoers
将 hadoop 用户添加到 sudoers 文件中:
vi /etc/sudoers
在打开的文本编辑器中找到下面这一行:
root ALL=(ALL:ALL) ALL
在这一行下面添加一行,以授予 hadoop2112034222 用户执行 sudo 命令的权限,如下所示:
hadoop01 ALL=(ALL) ALL
然后保存并关闭文件,并以 hadoop 用户身份重新登录系统即可。
reboot
八、在虚拟机中创建两个目录
这里是新建的Hadoop用户而不是root用户
软件包放置的目录:
mkdir software
软件安装的目录:
mkdir server
九、克隆虚拟机
要建立克隆两台机器
克隆虚拟机时,要将被克隆的主机关机
要建立完整克隆
十、配置MAC地址
分别为克隆的两台主机配置MAC地址
十一、分别修改三台主机的ip地址、主机名与映射
11.1配置IP地址
打开配置文件
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens32
将hadoop02与hadoop03的ip分别改为
192.168.240.152
192.168.240.153
重启网卡
systemctl restart network
查看IP地址
ifconfig
11.2配置主机名
分别编辑每台虚拟机的hostname文件,直接填写主机名,保存退出即可。
sudo vi /etc/hostname
第一台主机主机名为: hadoop01
第二台主机主机名为:hadoop02
第三台主机主机名为: hadoop03
11.3 配置每台虚拟机的映射
分别编辑每台虚拟机的hosts文件,在原有内容的基础上,填下以下内容:
注意:不要修改文件原来的内容,三台虚拟机的配置内容都一样。
sudo vi /etc/hosts
添加内容如下:
192.168.240.151 hadoop01
192.168.240.152 hadoop02
192.168.240.153 hadoop03
效果如图
重新启动三台主机
十二、配置免密登录
12.1三台主机生成公钥和私钥
在三台机器执行以下命令,生成公钥与私钥
ssh-keygen -t rsa
执行该命令之后,按下三个回车即可,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
默认保存在/home/hadoop01/.ssh
12.2拷贝公钥到同一台机器
三台机器将拷贝公钥到第一台机器
三台机器执行命令:
ssh-copy-id hadoop01
在执行该命令之后,需要输入yes和hadoop01的密码:
12.3复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上
在第一台机器上指行以下命令
scp /home/hadoop01/.ssh/authorized_keys hadoop02:/home/hadoop01/.ssh
scp /home/hadoop01/.ssh/authorized_keys hadoop03:/home/hadoop01/.ssh
执行命令时,需要输入yes和对方的密码
12.4测试免密登录
可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在hadoop01机器上,免密登录hadoop02机器,在hadoop01上输入:
ssh hadoop02
效果如下:
注意:这里是不需要输入密码的,如果需要输入密码,则表明你的免密登录设置的有问题
十三、配置java
13.1使用xftp上传jdk压缩包
在hadoop01 进入 /home/hadoop01/software目录上传 jdk-8u241-linux-x64.tar.gz
cd software
13.2解压jdk
解压压缩包到sever目录下:
tar -zxvf jdk-8u241-linux-x64.tar.gz -C ~/server
查看解压后的目录,目录中有 jdk1.8.0_241 为 jdk 解压的目录
13.3配置环境变量
打开/etc/profile 配置文件,将下面配置拷贝进去。
export 命令用于将 shell 变量输出为环境变量
sudo vi /etc/profile
通过键盘上下键 将光标拉倒最后面
然后输入 i, 将以下下内容输入即可
#set Javasource
export JAVA_HOME=/home/hadoop01/server/jdk1.8.0_241
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
按esc键 然后 :wq 保存退出即可
重新加载环境变量:
source /etc/profile
将环境配置加入到/.bashrc
cat /etc/profile >> ~/.bashrc
#远程ssh执行需要设置~/.bashrc的环境变量。
#非登入shell按如下顺序加载配置文件:1:/etc/bashrc 2:~/.bashrc
13.4验证jdk是否安装成功
java -version
出现以下内容即成功:
[hadoop01@hadoop01 ~]$ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
十四、配置hadoop
14.1使用xftp上传hadoop压缩包
在hadoop01 进入 /home/hadoop01/software目录上传 hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
cd software
14.2解压hadoop
解压压缩包到sever目录下:
tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C ~/server
查看解压后的目录,目录中有hadoop-3.3.0 为 hadoop解压的目录
14.3配置环境变量
打开/etc/profile 配置文件,将下面配置拷贝进去。
sudo vi /etc/profile
通过键盘上下键 将光标拉倒最后面
然后输入 i, 将以下下内容输入即可
#set HadoopSource
export HADOOP_HOME=/home/hadoop01/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
按esc键 然后 :wq 保存退出即可
重新加载环境变量:
source /etc/profile
将环境配置加入到/.bashrc
cat /etc/profile >> ~/.bashrc
14.4验证是否安装成功
whereis hdfs
出现以下内容即配置成功:
[hadoop01@hadoop01 ~]$ whereis hdfs
hdfs: /home/hadoop01/server/hadoop-3.3.0/bin/hdfs /home/hadoop01/server/hadoop-3.3.0/bin/hdfs.cmd
14.5修改hadoo配置文件
配置文件在 /home/hadoop01/server/hadoop-3.3.0/etc/hadoop 目录下
以下配置根据需要添加
14.5.1core-site.xml
在 /home/hadoop01/server/hadoop-3.3.0/ 目录下创建tmp文件夹
cd server/hadoop-3.3.0/
mkdir tmp
配置文件内容:
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop01/server/hadoop-3.3.0/tmp</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop01</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
14.5.2hdfs-site.xml
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:9868</value>
</property>
14.5.3yarn-site.xml
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01:19888/jobhistory/logs</value>
</property>
<!-- 保存的时间7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
14.5.4mapred-site.xml
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
14.5.5workers
删除原有内容,添加以下内容:
hadoop01
hadoop02
hadoop03
十五、分发文件到其他节点
15.1分发server下的所有文件到其他节点
scp -r /home/hadoop01/server hadoop01@hadoop02:/home/hadoop01/
scp -r /home/hadoop01/server hadoop01@hadoop03:/home/hadoop01/
15.2分发环境配置文件
scp ~/.bashrc hadoop02:~/.bashrc
scp ~/.bashrc hadoop03:~/.bashrc
分别在hadoop02与hadoop03中输入以下代码,是环境变量生效:
source ~/.bashrc
十六、格式化namenode
输入以下命令:
hdfs namenode -format
十七、启动hadoop
17.1启动hdfs
start-dfs.sh
17.2启动yarn
start-yarn.sh
17.3开启historyserver
mapred --daemon start historyserver
17.4一键启动
start-all.sh
17.5单个节点启动
[hadoop01@hadoop01 server]# hdfs --daemon start namenode
[hadoop01@hadoop01 server]# hdfs --daemon start datanode
[hadoop01@hadoop01 server]# yarn --daemon start resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon start nodemanager
[hadoop01@hadoop01 server]# mapred --daemon start historyserver
[hadoop01@hadoop02 ~]# hdfs --daemon start secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon start nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon start datanode
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
十八、测试
18.1查看进程
[hadoop01@hadoop01 ~]$ jps
30210 DataNode
30661 NodeManager
30524 ResourceManager
30047 NameNode
31695 Jps
[hadoop01@hadoop02 ~]$ jps
29762 DataNode
30306 Jps
29976 NodeManager
29883 SecondaryNameNode
[hadoop01@hadoop03 ~]$ jps
29595 NodeManager
29471 DataNode
29903 Jps
18.2HDFS界面
http://192.168.240.151:
18.3YARN界面
http://192.168.240.151:8088
18.4MR界面
http://192.168.240.152:9868
18.5historyserver
http://192.168.240.151:19888
十九、关闭hadoop
19.1关闭hdfs
stop-dfs.sh
19.2关闭yarn
stop-yarn.sh
19.3关闭historyserver
mapred --daemon stop historyserver
19.4一键关闭
stop-all.sh
19.5单个节点逐个关闭
[hadoop01@hadoop01 server]# hdfs --daemon stop namenode
[hadoop01@hadoop01 server]# hdfs --daemon stop datanode
[hadoop01@hadoop01 server]# yarn --daemon stop resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon stop nodemanager
[hadoop01@hadoop01 server]# mapred --daemon stop historyserver
[hadoop01@hadoop02 ~]# hdfs --daemon stop secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon stop datanode
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
总结
本文尽量详细的向大家展示了Hadoop集群环境的搭建流程,旨在帮助新手以最快的时间成功搭建Hadoop集群。
如有问题,欢迎评论!!!