1、首先要下载好虚拟机VMware workstation,并进行安装。
链接:https://pan.baidu.com/s/1EuNflW8so-xx46qrdCRbDg 提取码:hjl4
2、下载Linux的对应版本,可以通过官网下载。
链接:https://pan.baidu.com/s/1DJ411izE54jI014dgVwekg 提取码:hjl4
3、在VMware上新建三台虚拟机(以示范为主),主机名分别为master、slave1,slave2。
4、创建好虚拟机后,每台虚拟机都要进行以下几步操作。
- 设置静态IP;
- 关闭防火墙;
- 修改主机名;
- 配置主机名与IP映射;
- 设置SSH免密登录;
- 安装Java运行环境;
- 配置时间同步服务;
设置静态IP
在打开的虚拟机的命令行中输入以下代码,然后回车
vi /etc/sysconfig/network-scripts/ifcfg-ens33
并将以下标记的项进行添加和修改。(修改不了记得切换root用户)
IPADDR=192.168.5.130
NETMASK=255.255.255.0
GATEWAY=192.168.5.2
DNS1=114.114.114.114
DNS2=8.8.8.8
要根据自身的电脑去设置IPADDR和GATEWAY。这里只是示例。
关闭防火墙
使用以下命令关闭防火墙
关闭——systemctl stop firewalld.service
永久关闭——systemctl disable firewalld.service(防止重启虚拟机后防火墙重新开启)
查看状态——firewall-cmd --state
修改主机名
vi /etc/hostname
把原本的改为master(其他两台虚拟机是slave1和slave2)
修改完后需要重启虚拟机
shutdown -r now
重启后
配置主机名与IP映射
vi /etc/hosts
添加以下代码
192.168.5.130 master
192.168.5.131 slave1
192.168.5.132 slave2
设置SSH免密登录
在三台虚拟机中都使用以下命令生成密钥。输入命令后一直回车。
ssh-keygen -t rsa
出现以下结果为成功
然后在三个虚拟机都输入以下命令
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
然后验证三台机器时间是否可以免密登录
安装Java运行环境
(链接:https://pan.baidu.com/s/1j0NLSMr9viSOCDPWgQbIow 提取码:hjl4 )
将下载好的JDK上传到每个虚拟机的/usr/local目录下
可以使用这个moba远程连接工具进行拖动上传
(链接:https://pan.baidu.com/s/1YJspblyMrTf2bdyPITpDDQ 提取码:hjl4 )
使用以下命令进行解压
tar -zxvf jdk-8u144-linux-x64.tar.gz
使用以下命令更改jdk的文件名
mv jdk1.8.0_144 jdk
配置环境变量
vi /etc/profile
添加以下代码
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
保存后退出
输入以下代码刷新环境变量
source /etc/profile
然后输入
java -version
出现以下结果即成功安装Java
配置时间同步服务
使用以下命令下载ntpdate进行时间同步
yum install ntpdate -y
下载完成后输入以下命令同步至上海NTP服务器
ntpdate -u ntp.api.bz
5、安装与配置Hadoop
链接:https://pan.baidu.com/s/1eeCKS95XQnWXVv7wKjwmfQ
提取码:hjl4
将下载好的hadoop压缩包上传至/usr/local目录下
使用命令解压
tar -zxvf hadoop-3.3.1.tar.gz
并将解压后的文件夹改名为hadoop
mv hadoop-3.3.1 hadoop
修改环境变量
vi /etc/profile
添加以下代码
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
更新环境变量
source /etc/profile
出现以下情况表面已经表面成功
hadoop version
6、修改配置文件,以下修改可先修改主节点服务器的,之后通过分发的方式进行修改其余节点配置文件。
修改hadoop-env.sh、yarn-env.sh、mapred-env.sh配置文件,增加Java环境变量
vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
vi /usr/local/hadoop/etc/hadoop/yarn-env.sh
vi /usr/local/hadoop/etc/hadoop/mapred-env.sh
修改core-site.xml
vi /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<!-- HDFS资源路径 -->
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- Hadoop临时文件存放目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!-- HDFS保存数据的副本数量,默认值为3,此处设为2 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 存储NAMENode数据的目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<!-- 存储DateNode数据的目录 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<!-- 配置SecondaryNameNode地址 -->
<property>
<name>dfs.secondary.http.address</name>
<value>slave1:9870</value>
</property>
</configuration>
修改mapred-site.xml
vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<!-- 配置Resourcemanager在哪台机器 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 在Node Manager中运行MapReduce服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 配置Web UI访问端口(默认端口为8088)-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
修改slaves
vi /usr/local/hadoop/etc/hadoop/slaves
master
slave1
slave2
7、分发主节点配置文件到集群中的从节点服务器
输入以下两条命令
scp -r /usr/local/hadoop/etc/hadoop root@slave1:/usr/local/hadoop/etc/
scp -r /usr/local/hadoop/etc/hadoop root@slave2:/usr/local/hadoop/etc/
出现以上情况已成功分发,可前往从节点服务器查看
8、完成以上配置以后,可以说,前期配置已经完成了
现在在启动Hadoop集群以前,需要对NameNode进行格式化操作。
输入以下命令
cd /usr/local/hadoop/bin
hdfs namenode -format
出现以下情况便已成功
依次启动HDFS和YARN
cd /usr/local/hadoop/sbin
./start-dfs.sh
有可能出现以下情况(若无此问题可忽略)
解决方法:(三个虚拟机都需操作)
修改/usr/local/hadoop/sbin下的两个文件start-dfs.sh/stop-dfs.sh
在两个文件的顶部插入
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还要修改/usr/local/hadoop/sbin下的两个文件start-yarn.sh/stop-yarn.sh
在这两个文件顶部插入
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
现在可以正常启动了
输入jps查看进程
在浏览器地址栏中输入:http://192.168.5.130:9870/
在浏览器地址栏中输入:http://192.168.5.130:18088
至此,Hadoop的完全分布式部署已经完成。
祝大家成为大神~