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

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据

 并将以下标记的项进行添加和修改。(修改不了记得切换root用户)

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_02

 

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

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_03

修改主机名

vi /etc/hostname

 把原本的改为master(其他两台虚拟机是slave1和slave2)

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_hadoop_04

 修改完后需要重启虚拟机

shutdown -r now

 重启后

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_05

配置主机名与IP映射

vi /etc/hosts

 添加以下代码

192.168.5.130 master
192.168.5.131 slave1
192.168.5.132 slave2

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_06

设置SSH免密登录

在三台虚拟机中都使用以下命令生成密钥。输入命令后一直回车。

ssh-keygen -t rsa

 出现以下结果为成功

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_07

 然后在三个虚拟机都输入以下命令

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

然后验证三台机器时间是否可以免密登录

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_08

安装Java运行环境

(链接:https://pan.baidu.com/s/1j0NLSMr9viSOCDPWgQbIow    提取码:hjl4 )

将下载好的JDK上传到每个虚拟机的/usr/local目录下

可以使用这个moba远程连接工具进行拖动上传

(链接:https://pan.baidu.com/s/1YJspblyMrTf2bdyPITpDDQ  提取码:hjl4 )

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_09

 使用以下命令进行解压

tar -zxvf jdk-8u144-linux-x64.tar.gz

  使用以下命令更改jdk的文件名

mv jdk1.8.0_144 jdk

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_10

               

配置环境变量

vi /etc/profile

添加以下代码

export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_11

 保存后退出

输入以下代码刷新环境变量

source /etc/profile

然后输入

java -version

 出现以下结果即成功安装Java

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_12

配置时间同步服务

使用以下命令下载ntpdate进行时间同步

yum install ntpdate -y

 下载完成后输入以下命令同步至上海NTP服务器

ntpdate -u ntp.api.bz

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_13

5、安装与配置Hadoop

链接:https://pan.baidu.com/s/1eeCKS95XQnWXVv7wKjwmfQ 
提取码:hjl4 
 

将下载好的hadoop压缩包上传至/usr/local目录下

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_14

 使用命令解压

tar -zxvf hadoop-3.3.1.tar.gz

并将解压后的文件夹改名为hadoop

mv hadoop-3.3.1 hadoop

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_15

 修改环境变量

vi /etc/profile

添加以下代码

export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_16

更新环境变量

source /etc/profile

 出现以下情况表面已经表面成功

hadoop version

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_17

6、修改配置文件,以下修改可先修改主节点服务器的,之后通过分发的方式进行修改其余节点配置文件。

修改hadoop-env.sh、yarn-env.sh、mapred-env.sh配置文件,增加Java环境变量

vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_18

vi /usr/local/hadoop/etc/hadoop/yarn-env.sh

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_19

vi /usr/local/hadoop/etc/hadoop/mapred-env.sh

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_20

 修改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/

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_21

 出现以上情况已成功分发,可前往从节点服务器查看

8、完成以上配置以后,可以说,前期配置已经完成了

现在在启动Hadoop集群以前,需要对NameNode进行格式化操作。

输入以下命令

cd /usr/local/hadoop/bin
hdfs namenode -format

 出现以下情况便已成功

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_22

 依次启动HDFS和YARN

cd /usr/local/hadoop/sbin
./start-dfs.sh

有可能出现以下情况(若无此问题可忽略)

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_23

 解决方法:(三个虚拟机都需操作)

修改/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

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_HDFS_24

 还要修改/usr/local/hadoop/sbin下的两个文件start-yarn.sh/stop-yarn.sh

在这两个文件顶部插入

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_25

 现在可以正常启动了

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_hadoop_26

输入jps查看进程

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_27

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_大数据_28

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_29

 在浏览器地址栏中输入:http://192.168.5.130:9870/

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_分布式_30

  在浏览器地址栏中输入:http://192.168.5.130:18088

 

Linux虚拟机数据库在hdfs中的路径 虚拟机配置hadoop_xml_31

 至此,Hadoop的完全分布式部署已经完成。

祝大家成为大神~