修改hostname=master
2.可以通过 hostname 命令是否成功 (如果修改过不成功,可能需要重启 reboot)
3.这台机器上面 vim /etc/hosts 添加以下内容
192.168.1.167 master
192.168.1.125 node
另外一台服务器同样的操作以上三个步骤,只是hostname内容不同修改为 hostname=node
4.可以通过ping命令 ping master 和 ping node 判断是否成功
5.每一台机器上面新建一个用户hadoopb
groupadd hadoopb
useradd hadoopb -g hadoopb
6.SSH 原理
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
7.下面这部操作要在root下面,在master的机器上面操作就可以
vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
service sshd restart
8.下面切换为hadoopb,在master的机器上面操作就可以
执行命令ssh-keygen -t dsa生成密钥对,其中的命令只要按回车就可以
cd /home/hadoopb/.ssh (如果没有这个目录请创建它,在我系统有该目录的)
cat id_dsa.pub >> authorized_keys
chmod 600 authorized_keys
9.下面操作之后 ssh master应该不需要用户输入密码啦
10.下面需要的是将master公钥传递给node
scp /home/hadoopb/.ssh/id_rsa.pub hadoopb@node:/home/hadoopb/.ssh/authorized_keys
11.完成以上操作 ssh 无密码登入应该搞定
![](https://i-blog.csdnimg.cn/blog_migrate/062d681ed46af19b3b71ec1f6ae2f2d6.jpeg)
以上7-11部都只需要在master机器上面完成就可以
12接下来开始才是我们hadoop的安装
hadoop的安装可以参考我前面 hadoop2.4.0的安装步骤,稍有不同
13. 以下操作两台机器都需要操作
参考 http://my.oschina.net/skyim/blog/228486 的第七,八条
依次修改core-site.xml、yarn-site.xml、mapred-site.xml和hdfs-site.xml配置文件
----------------core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:8020</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoopb/cloud/tmp/hadoop2.0</value>
</property>
------------------------- yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
------------------------ mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/hadoop/mapred/system/</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/opt/cloud/hadoop_space/mapred/local</value>
<final>true</final>
</property>
----------- hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoopb/mydata/hdfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoopb/mydata/hdfs/datanode</value>
<description>Determines where on the local
filesystem an DFS data node should store its blocks.
If this is a comma-delimited list of directories,
then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.
</description>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
14.在master一台上面操作, vim /usr/hadoop/hadoop/etc/hadoop/slaves
node
15.格式化文件系统并启动 两台机器上面都操作
1.格式化新的分布式文件系统(hdfs namenode -format)
2.下面操作只需要在master上面操作,
启动HDFS文件系统并使用jps检查守护进程是否启动
可以看到master已经启动NameNode和SecondaryNameNode进程,node已启动DataNode
启动新mapreduce架构(YARN)
可以看到master已经启动ResourceManger进程,node已经启动NodeManager进程说明正常
以上操作参考如下链接
http://www.iteblog.com/archives/817
http://going.blog.51cto.com/7876557/1365883
http://www.cnblogs.com/mophee/archive/2013/04/21/3033859.html
http://leezk.com/hadoop-ssh-217.html
http://www.linuxproblem.org/art_9.html