主要步骤:
- 修改每个主机上的名字,并配置各个主机的ip
- 创建hadoop用户
- 配置hosts文件
- 安装jdk
- 配置ssh免密码连入
- 解压安装Hadoop文件
- 修改各种site文件
- 配置Hadoop-env.sh文件
- 配置masters和slaves文件
- 格式化namenode,并启动hadoop
- 关闭hadoop
sudo edit /etc/hostname 在这里修改主机的名字,修改完重启电脑即可
1.2 配置每台主机的IP地址,项目期间使用了三台主机,分别为:
master:192.168.0.2
slave1:192.168.0.3
slave2:192.168.0.4
2.创建统一的hadoop用户
2.1 创建hadoop用户组$sudo addgroup Hadoop
2.2 创建hadoop用户$sudo adduser –ingroup hadoop hadoop
2.3 给hadoop用户添加权限,打开/etc/sudoers文件; sudo gedit /etc/sudoers
2.4 给hadoop用户赋予root用户同样的权限
在root ALL=(ALL:ALL) ALL下添加内容:hadoop ALL=(ALL:ALL) ALL
3.1、打开/etc/hosts 添加
192.168.0.2 master
192.168.0.3 slave1
192.168.0.4 slave2
4.安装jdk
$ sudo gedit /etc/profile
在文件的末尾加上如下内容,保存并关闭文件
# for java
export JAVA_HOME=/usr/java/jdk1.7.0 //这个是自己解压的jdk的路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
使设置生效:到此部JDK的配置就都完成了 $ source /etc/profile
5.安装ssh无密钥登陆
安装ssh
$ ssh-keygen –t dsa -P "" //会产生id_dsa.pub//为公钥 id_dsa//为私钥
进入.ssh目录下
将公钥文件复制成authorized_keys文件
其他两个节点如法炮制即可
先单击回环测试看能否登陆成功,步骤如下:
让主结点(master)能通过SSH免密码登录两个子结点(slave)
为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样
当master就可以顺利安全地访问这两个slave结点了。操作过程如下:
如上过程显示了node1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接node1结点了。在master结点中操作如下:
由上图可以看出,node1结点首次连接时需要,“YES”确认连接,这意味着master结点连接node1结点时需要人工询问,无法自动连接,输入yes后成功接入,紧接着注销退出至master结点。要实现ssh免密码连接至其它结点,还差一步,只需要再执行一遍ssh node1,如果没有要求你输入”yes”,就算成功了,过程如下:
如上图所示,master已经可以通过ssh免密码登录至node1结点了。
对node2结点也可以用同样的方法进行
至此,SSH免密码登录已经配置成功。
6. 解压安装 hadoop 压缩包 在配置site文件之前需要作一些准备工作,下载java最新版的JDK软件,可以从oracle官网上下载,我使用的jdk软件版本为:jdk1.7.0_09,我将java的JDK解压安装在/opt/jdk1.7.0_09目录中,接着配置JAVA_HOME宏变量及hadoop路径,这是为了方便后面操作,这部分配置过程主要通过修改/etc/profile文件来完成,在profile文件中添加如下几行代码:
然后执行
让配置文件立刻生效。上面配置过程每个结点都要进行一遍。
到目前为止,准备工作已经完成,下面开始修改hadoop的配置文件了,即各种site文件,文件存放在/hadoop/conf下,主要配置core-site.xml、hdfs-site.xml、mapred-site.xml这三个文件。
7.修改各种site文件
Core-site.xml配置如下:
hdfs-site.xml配置如下:
接着是mapred-site.xml文件:
8.配置hadoop-env.sh文件
这个需要根据实际情况来配置。
9.配置masters和slaves文件
根据实际情况配置masters的主机名,在本实验中,masters主结点的主机名为master,
于是在masters文件中填入:
同理,在slaves文件中填入:
其他机器也如上配置(若已经用网线互相连上各个主机可以直接复制过去)
10.格式化主节点,并启动hadoop
hadoop namenode –format
启动hadoop
Start-all.sh
使用jps检查
11.关闭hadoop
stop-all.sh
参考文档:http://www.cnblogs.com/yhason/archive/2013/05/30/3108908.html
http://jingyan.baidu.com/article/e75057f2a62c8aebc91a89b3.html