Ubuntu 14.04 Server 环境下Hadoop 2.7.2 的安装部署 实验环境:
3台机器
Ubuntu 14.04 Server 主机名:ubuntu7 作master
Ubuntu 14.04 Server 主机名:ubuntu130 作slave1
Ubuntu 14.04 Server 主机名:ubuntu131 作slave2
配置/etc/hosts文件:ubuntu7即master 机器上的/etc/hosts文件如下:
把master上hosts文件内容复制并覆盖掉slave1和salve2中的hosts文件,仅仅修改主机名即可,即在slave1的/etc/hosts文件中,把ubuntu7改为ubuntu130.
注意!!!!Ubuntu 环境下,hosts文件中,主机名千万不能与127.0.0.1 或127.0.1.1配对,一定要与对应的局域网IP配对。如上图,主机名ubuntu7 一定要与局域网IP 172.16.0.7配对。重要教训请参考 以及Hadoop 官方wiki友情提醒: 配置ssh无密码连接:
由于hadoop 是集群资源管理系统,涉及到集群中各台机器相互之间数据传输等通信过程,因此需要处理好机器之间的数据通信安全问题。在linux环境下,最常用的通信处理手段就是ssh服务。
下面以ssh的连接过程为例,简单说一下ssh的原理:
客户端连接服务端每次都要输入密码的原因在于:服务器没有长时间保留客户端的公钥。因此如果服务器把客户端的公钥保留在一个固定的文件中,下次客户端连接时,服务器直接从这个固定文件中查取,就不需要客户端再重新发送一次了,因此就可实现无密码连接。
那么有没有这个固定文件呢?没错,ssh软件默认是.ssh目录下的authorized_keys文件
因此ssh无密码连接的关键在于,把客户端的公钥永久保存至服务器上的一个文件。
下面配置从slave1 ssh无密码连接master
slave1端
ssh-keygen //生成客户端的公私钥,一般保存在~/.ssh文件下
把slave1端的公钥上传到master端
scp ~/.ssh/id_rsa.pub lilelr@master:~
master端
在 master的~目录下,将客户端的公钥追加到authorized_keys文件下
ssh 服务重启,使新配置生效:
sudo /etc/init.d/ssh restartok, 此时,slave1 登录到master 就无需密码。注意!!!此时无密码连接只是单向关系,即slave1到master无需密码登录,但master 到slave1 端连接依然需要密码。怎么办?把master和slave1 的位置互换一下,重新执行上述步骤,即可实现master到slave1端的无密码登录。
配置相关环境变量:在master节点上:
去apache官网下载 hadoop-2.7.2.tar.gz以及下载JDK 1.8.
注意!!!开源的openJdk 是执行不了jps命令的,因此若经常使用jps命令,最好下载JDK.
在~用户目录下新建文件夹hadoop。在hadoop目录中新建hdfs和script文件夹,并把hadoop 2.7.2.tar.gz解压到hadoop目录中。
将jDK 1.8 解压到/usr/lib/jvm 目录下。
~/hadoop 目录情况:
在.bashrc文件末尾添加环境变量。 vim ~/.bashrc
加上:
其中 lilelr 为我的linux用户名。
立刻使环境变量生效:
上述操作在salve1和slave2节点上重复,或复制master相关文件覆盖slave下的相关文件。
配置hadoop相关参数:进入到配置目录
cd ~/hadoop/hadoop-2.7.2/etc/hadoop修改 hadooop-env.sh 文件,更改JAVA_HOME路径。
修改 core-site.xml
修改 hdfs-site.xml
修改 mapred-site.xml
修改 yarn-site.xml
修改 slaves,添加slave1和slave2名。
上述配置修改完之后,进入到~/hadoop/hdfs目录,新建data、name、和tmp目录
mkdir data name tmp最后把master上配置好的hadoop复制到slave1和slave2节点上。
scp -r ~/hadoop slave1:~ scp -r ~/hadoop slave2:~终于成功完成安装配置了。
hdfs文件系统格式化