首先介绍一下安装流程:
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这个命令进行修改。
2.3我们修改/etc/hosts文件
在其中添加上面的IP内容
修改好之后分别放入三个不同的主机之中
执行
ping -c 3 slave2
ping -c 3 slave3
这个命令指的是发送三个packages到slave看是否可以。
实验结果如图所示:
这样我们就可以进行下一步:
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进行无密码登录
接下来我么内进行测试
如图所示:
表明是可以互相连接的。
3、安装Java和Hadoop两个软件
将下载好的安装包.tar.gz格式的文件上载到虚拟机中。
位置放在/opt/java,/opt/hadoop/
进入到该目录,执行命令:
cd /opt/hadoop
执行解压命令:
tar -xvf hadoop-2.8.0.tar.gz
就可以得到如下的文件夹。
接下来我们修改配置文件,输入如下的命令:
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
输出结果如图所示:
说明java是安装成功的。
对所有的三台虚拟机执行同样的操作,保证三套虚拟机都安装了java
3.2接下来安装Hadoop
上载文件并进行解压
执行命令:
cd /opt/hadoop
Tar -xvzf hadoop-2.7.4.tar.gz
接下来就是修改几个重要的配置文件:
它们都包含在如下的文件夹里面:
我们对它们进行修改.
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目录,而且该目录内有一系列文件。
接下来,我们在master和slave1,2上用JSP测试,master上有4个,slave上有两个。
接下来,我们关闭防火墙,测试一下hadoop是否正常。
执行命令,关闭防火墙,CentOS7下,命令是:
systemctl stop firewalld.service
在本地浏览器输入:http://192.168.16.129:50070/dfshealth.html#tab-overview
在本地浏览器输入如下的网址:http://192.168.16.129:18088/cluster