首先介绍一下安装流程:

1下载hadoop

2安装3个虚拟机并实现ssh免密码登录

安装3个机器

检查机器名称

修改/etc/hosts文件

给3个机器生成秘钥文件

在hserver1上创建authorized_keys文件

将authorized_keys文件复制到其他机器

测试使用ssh进行无密码登录

在hserver1上进行测试

在hserver2上进行测试

在hserver3上进行测试

3安装jdk和hadoop

安装JDK

安装hadoop

上载文件并解压缩

新建几个目录

修改etc/hadoop中的一系列配置文件

修改core-site.xml

修改hadoop-env.sh

修改hdfs-site.xml

新建并且修改mapred-site.xml

修改slaves文件

修改yarn-site.xml文件

4启动hadoop

在namenode上执行初始化

在namenode上执行启动命令

5测试hadoop

接下来是具体的步骤:


1、首先下载两个安装包:

具体的下载地址如下所示:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz

2、接下来查看三台主机的IP地址:

我是这样设置的:

192.168.16.129   master

192.168.16.132   slave1

192.168.16.133   slave2

192.168.16.136   slave3

我们将命令全部修改完之后,得到相应的名字,如果不是这样的名字。可以利用hostname这个命令进行修改。

 

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_hadoop

2.3我们修改/etc/hosts文件

在其中添加上面的IP内容

修改好之后分别放入三个不同的主机之中

执行

ping -c 3 slave2

ping -c 3 slave3

这个命令指的是发送三个packages到slave看是否可以。

实验结果如图所示:

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_java_02


这样我们就可以进行下一步:

2.4 给三个机器生成秘钥

命令:ssh-keygen -t rsa -p ‘’

这个是生成相应的秘钥文件,如果是root用户的话存放在文件夹/root/.ssh/

重复以上步骤,保证所有的机器里面都有秘钥文件。

2.5创建authorized_keys

下面这个命令是生成一个文件,叫做authorized_keys

touch  /root/.ssh/authorized_keys

其次将slave2上的/root/.ssh/id_rsa.pub文件内容,slave3上的/root/.ssh/id_rsa.pub文件内容,master上的/root/.ssh/id_rsa.pub文件内容复制到这个authorized_keys文件中。

方法有很多种,我最喜欢的就是使用Xshell加上Xftp5对虚拟机进行可视化管理。

2.6将authorized_keys文件复制到其他机器

这样我们就可以对他们进行SSH无密码登陆了。

2.7测试使用ssh进行无密码登录

接下来我么内进行测试

如图所示:

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_虚拟机上安装dockerdesktop_03


表明是可以互相连接的。

3、安装Java和Hadoop两个软件

将下载好的安装包.tar.gz格式的文件上载到虚拟机中。

位置放在/opt/java,/opt/hadoop/

进入到该目录,执行命令:

cd   /opt/hadoop

执行解压命令:

tar  -xvf   hadoop-2.8.0.tar.gz

就可以得到如下的文件夹。

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_hadoop_04

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_虚拟机上安装dockerdesktop_05

接下来我们修改配置文件,输入如下的命令:

vim /etc/profile

 

在其中加入如下的配置:

export JAVA_HOME=/opt/java/jdk1.8.0_121

export  CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/

export  PATH=$PATH:$JAVA_HOME/bin

 

对配置环境进行一下更新,输入如下的命令:

source /etc/profile

输入测试命令:

java -version

输出结果如图所示:

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_虚拟机上安装dockerdesktop_06

说明java是安装成功的。

对所有的三台虚拟机执行同样的操作,保证三套虚拟机都安装了java

3.2接下来安装Hadoop

上载文件并进行解压

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_hadoop_07

执行命令:

cd /opt/hadoop

Tar -xvzf hadoop-2.7.4.tar.gz

接下来就是修改几个重要的配置文件:

它们都包含在如下的文件夹里面:

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_xml_08

我们对它们进行修改.

3.2.3 修改etc/hadoop中的一系列配置文件

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop目录内的一系列文件。

3.2.3.1 修改core-site.xml

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop/core-site.xml文件

在<configuration>节点内加入配置:

<property>

        <name>hadoop.tmp.dir</name>

        <value>/root/hadoop/tmp</value>

        <description>Abase for other temporary directories.</description>

   </property>

   <property>

        <name>fs.default.name</name>

        <value>hdfs://master:9000</value>

   </property>

</configuration>



3.2.3.2 修改hadoop-env.sh

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh文件

将export   JAVA_HOME=${JAVA_HOME}

修改为:

export   JAVA_HOME=/opt/java/jdk1.8.0_144

说明:修改为自己的JDK路径)

3.2.3.3 修改hdfs-site.xml

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop/hdfs-site.xml文件

在<configuration>节点内加入配置:

<property>

   <name>dfs.name.dir</name>

   <value>/root/hadoop/dfs/name</value>

   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>

</property>

<property>

   <name>dfs.data.dir</name>

   <value>/root/hadoop/dfs/data</value>

   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>

</property>

<property>

   <name>dfs.replication</name>

   <value>2</value>

</property>

<property>

      <name>dfs.permissions</name>

      <value>false</value>

      <description>need not permissions</description>

</property>



说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。

3.2.3.4 新建并且修改mapred-site.xml

在该版本中,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:

[plain] view plain copy 

cp   /opt/hadoop/hadoop-2.7.4/etc/hadoop/mapred-site.xml.template     /opt/hadoop/hadoop-2.7.4/etc/hadoop/mapred-site.xml

修改这个新建的mapred-site.xml文件,在<configuration>节点内加入配置:

<property>

   <name>mapred.job.tracker</name>

   <value>hserver1:49001</value>

</property>

<property>

      <name>mapred.local.dir</name>

       <value>/root/hadoop/var</value>

</property>

<property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

</property>



3.2.3.5 修改slaves文件

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:

slave2

salve3



3.2.3.6 修改yarn-site.xml文件

修改/opt/hadoop/hadoop-2.7.4/etc/hadoop/yarn-site.xml文件,

在<configuration>节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>hserver1</value>

   </property>

   <property>

        <description>The address of the applications manager interface in the RM.</description>

        <name>yarn.resourcemanager.address</name>

        <value>${yarn.resourcemanager.hostname}:8032</value>

   </property>

   <property>

        <description>The address of the scheduler interface.</description>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>${yarn.resourcemanager.hostname}:8030</value>

   </property>

   <property>

        <description>The http address of the RM web application.</description>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>${yarn.resourcemanager.hostname}:8088</value>

   </property>

   <property>

        <description>The https adddress of the RM web application.</description>

        <name>yarn.resourcemanager.webapp.https.address</name>

        <value>${yarn.resourcemanager.hostname}:8090</value>

   </property>

   <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>${yarn.resourcemanager.hostname}:8031</value>

   </property>

   <property>

        <description>The address of the RM admin interface.</description>

        <name>yarn.resourcemanager.admin.address</name>

        <value>${yarn.resourcemanager.hostname}:8033</value>

   </property>

   <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

   </property>

   <property>

        <name>yarn.scheduler.maximum-allocation-mb</name>

        <value>2048</value>

        <discription>每个节点可用内存,单位MB,默认8182MB</discription>

   </property>

   <property>

        <name>yarn.nodemanager.vmem-pmem-ratio</name>

        <value>2.1</value>

   </property>

   <property>

        <name>yarn.nodemanager.resource.memory-mb</name>

        <value>2048</value>

</property>

   <property>

        <name>yarn.nodemanager.vmem-check-enabled</name>

        <value>false</value>

</property>


3.5将这些文件更改完之后就可以进行Hadoop的初始化了。

进入到master这台机器的/opt/hadoop/hadoop-2.7.4/bin目录,也就是执行命令:

cd   /opt/hadoop/hadoop-2.7.4/bin

   执行初始化脚本,也就是执行命令:

 ./hadoop  namenode  -format

格式化成功后,可以看到在/opt/hdfs/name/current/目录多了一个current目录,而且该目录内有一系列文件。

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_java_09

接下来,我们在master和slave1,2上用JSP测试,master上有4个,slave上有两个。

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_hadoop_10

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_虚拟机上安装dockerdesktop_11

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_hadoop_12

接下来,我们关闭防火墙,测试一下hadoop是否正常。

执行命令,关闭防火墙,CentOS7下,命令是:

     systemctl   stop   firewalld.service

在本地浏览器输入:http://192.168.16.129:50070/dfshealth.html#tab-overview

虚拟机上安装dockerdesktop 虚拟机上安装hadoop_xml_13

在本地浏览器输入如下的网址:http://192.168.16.129:18088/cluster


虚拟机上安装dockerdesktop 虚拟机上安装hadoop_java_14