准备工作:

1。VMware Workstation 14 中安装虚拟机 ,版本为 CentOS7(我搭建的集群为三台,安装一台克隆两台,这里不做解释,可自行百度)
2。JDK1.8 ,下载地址为  https://pan.baidu.com/s/15YA23CYnT3L-9f6Ao-gzrw
3。hadoop2.7.5 下载地址为 https://pan.baidu.com/s/1Fyfb77R6Tl1ct3pm_yaLdA

新建用户

每个虚拟机创建一个hadoop用户并加入到root组中

#添加用户hadoop到root组中
useradd -m hadoop -G root -s /bin/bash
#修改用户密码--输入密码,再次输入密码  (建议密码也设置为hadoop)
passwd hadoop

修改ip为静态ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33
注意: 最后末尾处添加的ip地址网段要和虚拟机中的网段保持一致,(Ip自定义但是不能超过255)
其中这两个中的第三位数字要和VMware Workstation中的网段一致,查看网段看第二张图
打开的位置是 :编辑 ->虚拟网络编辑器

IPADDR=192.168.255.131
GATEWAY=192.168.255.2

hadoop 添加密码认证 怎么设置hadoop用户密码_hadoop

hadoop 添加密码认证 怎么设置hadoop用户密码_环境搭建_02

修改完成后 ,重启网管

[root@dnn1 ~]systemctl restart network

然后修改主机名方便以后访问(不需要在输入ip那么麻烦了以后)

[root@dnn1 ~]# echo nnn > /etc/hostname

修改映射

vim /etc/hosts

向这个hosts文件追加三行 ,格式为 Ip地址 主机名 ,一会方便linux 系统之间进行通信

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.255.130 nn
192.168.255.131 dn1
192.168.255.132 dn2

完成之后重启

[root@dnn1 ~]# reboot

安装上述的方法将其他两台虚拟机也修改了,保证ip不一样就可以

root 是超级管理员用户,所做操作无法更改,我们集群的搭建是在hadoop 用户上搭建的,标题即使以后有什么问题也不会影响到整个系统


用hadoop用户登录到每台机器上

[root@dnn1 ~]# sudo hadoop

在用户根目录下面配置 SSH 无密码登录

[hadop@nnn ~]$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 
     [hadop@nnn ~]$ ssh-copy-id dnn1    
     [hadop@nnn ~]$ ssh-copy-id dnn2
##然后测试是否主机之间登录是否需要密码
    [hadop@nnn ~]$ ssh dnn1
    #查看主机名,打印的是dnn1 ,无密码登录成功,然后退出
    [hadop@dnn1 ~]$ hostname
    dnn1
    [hadop@dnn1 ~]$ exit
    [hadop@nnn ~]$ ssh dnn2  
    #查看主机名,打印的是dnn2 ,无密码登录成功,然后退出
    [hadop@dnn2 ~]$ hostname
    dnn2
   [hadop@dnn1 ~]$ exit

配置Java和Hadoop 的环境变量
新建opt文件夹(用于存放安装Linux软件的)
将下载的 jdk 1.8 和hadoop2.7.5的安装包解压到opt 文件夹中,然后解压配置环境变量

[hadop@nnn ~]$ mkdir opt
[hadop@nnn ~]$ vi ~/.bashrc
###向文件中添加如下代码(jdk8文件夹和hadoop2 是jdk 和hadoop文件解压后更改的名字)
#JAVA_JDK1.8
export JAVA_HOME=/home/hadoop/opt/jdk8
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP
export HADOOP_HOME=/home/hadoop/opt/hadoop2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

使环境变量生效(每台机子)

[hadop@nnn ~]$ source ~/.bashrc

集群搭建开始了

搭建hadoop全分布式集群

进入hadoop解压目录 
在/home/hadoop/opt/hadoop2/etc/hadoop/文件夹下面修改以下 5个文件
    1 core-site.xml
    2 hdfs-site.xml
    3 mapred-site.xml
    4 yarn-site.xml
    5 slaves
1.core-site.xml 
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://nnn:9000</value>
        <!-- nnn是master 的 主机名, 9000不固定,只要端口没有被占用就可以 -->
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/opt/hadoop2/tmp</value>
    </property>
</configuration>

2.hdfs-site.xml 
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
                 <!-- 这个数字2 代表你有几台子节点,这个不要错 -->
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>nnn:50090</value>
                <!-- nnn是master 的 主机名 -->
        </property>

        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/opt/hadoop2/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/hadoop/opt/hadoop2/tmp/dfs/data</value>
        </property>
</configuration>

3.mapred-site.xml   
<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>
<property>
      <name>mapreduce.app-submission.cross-platform</name>
      <value>true</value>
</property>
</configuration>

4.yarn-site.xml 配置yarn的主机地址洗牌的默认框架
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>nnn</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

</configuration>
5.slaves    #配置所有dn的主机名称        
dn1
dn2

进入hadoop的安装目录,远程分发到服务器上
[hadop@dnn1 ~]$ cd /home/hadoop/opt/

#将整个hadoop2 复制到 其他两台机器上 $PWD 是当前的目录,意思是将 hadoop2 整个文件夹复制到dnn1和dnn2 的这个相同路径下
scp -r  hadoop2/ dnn1:$PWD
scp -r  hadoop2/ dnn2:$PWD

启动集群

一、格式化hdfs 文件系统(只需要这第一次,以后启动不需要了,只在nnn(master节点上启动,其他的节点不需要启动) )
[hadop@nnn ~]$ hadoop namenode -format

二、启动dfs 服务和yarn 服务
[hadop@nnn ~]$ start-dfs.sh
[hadop@nnn ~]$ start-yarn.sh

三、验证是否有开启的服务,在nnn(master 机器上) 输入jps 查看有进程没有

hadoop 添加密码认证 怎么设置hadoop用户密码_环境搭建_03


然后分别在 dnn1 和dnn2 (slaves 节点) 输入jps 查看是否有进程

hadoop 添加密码认证 怎么设置hadoop用户密码_centos7_04

四、验证是否能够在web 端浏览页面,在浏览器中输入 nnn:50070
注意: 如果你的页面打不开,有两种可能,
1.你在windows 上的ip 映射没有配置,
2 Linux 的防火墙没有关

1修改windows ip 映射

C:\Windows\System32\drivers\etc\hosts

将这个文件拷贝到桌面上,修改后 覆盖(管理员权限,无法直接打开修改,只能替换)

末尾添加

hadoop 添加密码认证 怎么设置hadoop用户密码_hadoop _05

2修改防火墙

`

禁止开机启动
[root@nnn ~]# systemctl disable firewalld
修改里面的参数 SELINUX=disabled
[root@nnn ~]# vim /etc/selinux/config


以后开机就永远都是关闭防火墙了

`

再次测试访问hadoop web 页面

访问nnn:50070

hadoop 添加密码认证 怎么设置hadoop用户密码_环境搭建_06

查看活着的子节点是否为2 (即子节点的数量)

hadoop 添加密码认证 怎么设置hadoop用户密码_hadoop_07


因为我的集群有三台,master 一台,slave为两台,所以活着的节点信息是2

到此集群就启动成功了~

哈哈!!! 恭喜你,集群搭建成功,若有什么问题,欢迎留言!我会给大家回复的