所需条件:

1.三台centos7-64虚拟机(请使用单独的“4G内存2CPU三台虚拟机”环境。(一台master主机,两台slave主机,分别为slave1,slave2)

2.Java安装包版本:jdk-8u161-linux-x64.tar.gz(旧版本)

3.hadoop安装包版本:hadoop-2.7.3.tar.gz(旧版本)

注:若电脑上有xftp,连接虚拟机将安装包拖到虚拟机里,安装包到Apache-Hadoop官网和Jdk官网下载

步骤:

一.修改计算机名和创建Hadoop用户:

1.创建Hadoop用户:useradd   Hadoop     设置Hadoop密码:password   Hadoop

输入完此命令后再输入你想要设置的密码。

 2.改计算机名:vi    /etc/hostname    或者   hostnamectl   set-hostname   master(在另外两台虚拟机上各改为slave1,slave2)。

3.修改三台虚拟机的IP地址:ifcfg(查看)   

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_Hadoop

4.修改本地映射:vi  /etc/hosts       修改完成后重启虚拟机:reboot

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_hadoop_02

注:以上操作,三台虚拟机都要进行

二.解压和赋权限:

1.解压:找到你们安装包所在的位置进行解压:tar  -zxvf  ./hadoop-2.7.3.tar.gz(包名) -C  /usr/local/src/(解压到你们自己想要存放的路径,jdk安装包也是一样)

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_docker部署hadoop伪分布式_03

2.更改名:先到解压文件后的路径:cd  /usr/local/src   

然后改名:mv  hadoop-2.7.3.tar.gz  hadoop   (jdk同样改名为java)

3.更改环境变量:vi  /etc/profile,到文件的低端,插入

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_Hadoop_04

# this is java configration
export JAVA_HOME=/usr/local/src/java(此处上操作改名了,所以用java,若没有改名用原文件名)
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# this is hadoop configration
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$ HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
修改后,按esc ,然后按住shift+;,wq退出保存,发送到另外两台主机:scp  /etc/profile  root@slave1:/etc/

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_hadoop_05

4.给Hadoop用户赋权限:chown  -R  hadoop:hadoop  *  (*号为此路径下所有文件)(此操作在root用户下面的/usr/local/src/路径下进行)

5.发送:scp  -r  /usr/local/src/java  root@slave1(slave2):/usr/local/src/

6加载:source  /etc/profile

7.查看版本(安装是否成功):java  -version / hadooop  version

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_Hadoop_06

三.免密:

1.查看虚拟机内是否有.ssh文件:cd  .ssh(若进入.ssh路径下,就表示虚拟机里有这个文件,将此文件删除,rm-rf  .ssh,若没有就生成此文件)

2.生成.ssh文件:ssh  localhost   进入.ssh文件:cd  .ssh

3.生成公钥私钥:ssh-keygen  -t  rsa 三次回车

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_docker部署hadoop伪分布式_07

4.将创建好的钥匙发给三台虚拟机:ssh-copy-id  hadoop@主机名(此操作在Hadoop用户下)

5.查看免密是否做好:cat  authorized_keys,在主机上登陆另外两台:ssh slave1(不用密码直接登录,如要密码,就代表免密没做好,重新做)

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_Hadoop_08

四.修改Hadoop文件

1.创建tmp: cd  /usr/local/src/hadoop/      然后创建:mkdir  -p  tmp/dfs/data(和name,两步都要做)

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_hadoop_09

2.赋权限:chmod  -R  777  tmp

3.六个配置文件:cd  /usr/loca/src/hadoop/etc/hadoop

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_docker部署hadoop伪分布式_10

-----------------------------------------------------------------------------------------------------------------------------

下面是Hadoop的core-site.xml配置信息:(伪分布+集群模式)

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/src/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://master:9000</value>
        </property>
</configuration>
修改配置文件 hdfs-site.xml:(伪分布+集群模式)
<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
hadoop/tmp/dfs/data</value>
        </property>
</configuration>
---------------------------------------------------------------------------------------------------------------------------------
文件 mapred-site.xml
<configuration>
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
    <property>
       <name>mapreduce.jobhistory.address</name>
       <value>master:10020</value>
    </property>
  <property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>master:19888</value>
  </property>
</configuration>
文件 yarn-site.xml:(集群才需要配置)
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>
备注:hadoop-env.sh修改JAVA_HOME,否则报错JAVA_HOME is not set and could not be found.
export JAVA_HOME=${JAVA_HOME}改为:(两处)

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_docker部署hadoop伪分布式_11

export JAVA_HOME=/usr/local/src/java
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop

4.发送:scp  -r  /usr/local/src/hadoop  root@slave1(slave2):/usr/loca/src/

5.格式化:hdfs  namenode  -format

6.启动:start  -all.sh     jps查看,若出现六个进程,说明配置成功

docker部署hadoop伪分布式 hadoop伪分布式平台搭建_JAVA_12