首先介绍一下安装流程:
1下载hadoop
2安装3个虚拟机并实现ssh免密码登录
2.1安装3个机器
2.2检查机器名称
2.3修改/etc/hosts文件
2.4 给3个机器生成秘钥文件
2.5 在hserver1上创建authorized_keys文件
2.6将authorized_keys文件复制到其他机器
2.7 测试使用ssh进行无密码登录
2.7.1在hserver1上进行测试
2.7.2在hserver2上进行测试
2.7.3在hserver3上进行测试
3安装jdk和hadoop
3.1安装JDK
3.2安装hadoop
3.2.1上载文件并解压缩
3.2.2新建几个目录
3.2.3修改etc/hadoop中的一系列配置文件
3.2.3.1修改core-site.xml
3.2.3.2修改hadoop-env.sh
3.2.3.3修改hdfs-site.xml
3.2.3.4新建并且修改mapred-site.xml
3.2.3.5修改slaves文件
3.2.3.6修改yarn-site.xml文件
4启动hadoop
4.1在namenode上执行初始化
4.2在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文件
在
hadoop.tmp.dir
/root/hadoop/tmp
Abase for other temporary directories.
fs.default.name
hdfs://master:9000
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文件
在
dfs.name.dir
/root/hadoop/dfs/name
Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
dfs.data.dir
/root/hadoop/dfs/data
Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.
dfs.replication
2
dfs.permissions
false
need not permissions
说明: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文件,在
mapred.job.tracker
hserver1:49001
mapred.local.dir
/root/hadoop/var
mapreduce.framework.name
yarn
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文件,
在
yarn.resourcemanager.hostname
hserver1
The address of the applications manager interface in the RM.
yarn.resourcemanager.address
${yarn.resourcemanager.hostname}:8032
The address of the scheduler interface.
yarn.resourcemanager.scheduler.address
${yarn.resourcemanager.hostname}:8030
The http address of the RM web application.
yarn.resourcemanager.webapp.address
${yarn.resourcemanager.hostname}:8088
The https adddress of the RM web application.
yarn.resourcemanager.webapp.https.address
${yarn.resourcemanager.hostname}:8090
yarn.resourcemanager.resource-tracker.address
${yarn.resourcemanager.hostname}:8031
The address of the RM admin interface.
yarn.resourcemanager.admin.address
${yarn.resourcemanager.hostname}:8033
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.scheduler.maximum-allocation-mb
2048
每个节点可用内存,单位MB,默认8182MB
yarn.nodemanager.vmem-pmem-ratio
2.1
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.vmem-check-enabled
false
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