[置顶] Hadoop全分布式环境搭建

视频演示:http://v.youku.com/v_show/id_XNTY4NDM3NDQ4.html

Hadoop的单击版和伪分布式版环境都好搭建(具体方法参见:hadoop单击版与伪分布式安装方法),这个全分布式还真是费了我不少时间。下面说说我的步骤:

(一)准备工作

1.准备3台装有linux的机器,具有相同的用户名(这个是必须的,我这里都是liujiacai)

三台机器的ip与主机名

192.168.6.38 master
192.168.6.21 node1
192.168.6.24 node2

2.确保所有机器在一个局域网内,并且能够相互ping同(如果不通把防火墙关闭试试)

3.配置ssh免密码登录

在master主机上输入

ssh-keygen -t rsa

之后一直按回车键即可。

然后,在集群内分配密钥

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
 
 

使用ssh-copy-id不仅可以将公钥添加到authorized_keys中去,而且也设置了正确的权限(文件夹.ssh为700,authorized_keys为600)

参考文章:http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

ssh免密码登录原理可参考:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

这样在master主机上ssh 192.168.6.21与ssh 192.168.6.24主机时应该就不用输入密码了

如果出现Agent admitted failure to sign using the key这个问题

解決方式 使用 ssh-add 指令将私钥 加进来 

ssh-add   ~/.ssh/id_rsa 

4.配置hosts文件

在master上配置好通过scp命令分发即可。

hosts文件配置内容如下:

127.0.0.1    localhost
192.168.6.38 master
192.168.6.21 node1
192.168.6.24 node2

(二)修改hadoop的配置文件

1.这里我们需要修改5个文件:

conf/core-site.xml

<configuration>
 <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
 </property>
<property> 
    <name>fs.trash.interval</name> 
    <value>1440</value> 
    <description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled. </description> 
</property>
 <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/liujiacai/hadoop/logs</value>
 </property>
</configuration>

conf/hdfs-site.xml(与伪分布式相同即可)

<configuration>
  <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

conf/mapred-site.xml


<configuration>
 <property>
         <name>mapred.job.tracker</name>
         <value>master:9001</value>
     </property>
</configuration>

masters

master

salves(如果有多台电脑ip地址累加即可)

node1
node2

这样,hadoop到全分布式就配置完成了,下面运行wordcount程序,运行方法与伪分布式相同,这里不再赘述。

为了解hadoop系统的运行状态,hadoop为我们提供了基于网页的查看方式,非常方便。

1.查看Map/Reduce的运行状态:http://localhost:50030

2.查看HDFS的运行状态:http://localhost:50070


PS:

在全分布式中,各个机器的hadoop配置必须一致,我们可以在master机器上填写好相关信息,然后通过ssh相关命令把hadoop文件夹分配到各个子结点上即可。

ssh传送文件到相关命令:

1、从服务器上下载文件
scp username@serverip:/path/filename
例如scp [email protected]:/var/www/test.txt  把192.168.0.101上的/var/www/test.txt 的文件下载到当前目录
2、上传本地文件到服务器
scp /path/filename username@serverip:/path   
例如scp /var/www/test.php  [email protected]:/var/www/  把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
3、从服务器下载整个目录
scp -r username@serverip:/var/www/local_dir/
例如:scp -r [email protected]:/var/www/test  /var/www/  
4、上传目录到服务器
scp  -r local_dir username@serverip:remote_dir
例如:scp -r test  [email protected]:/var/www/   把当前目录下的test目录上传到服务器的/var/www/ 目录con


你可能感兴趣的:(linux,hadoop,集群,分布式,hdfs)