Hadoop集群搭建

 

 全文见 
 http://cffile.sinaapp.com/?p=193

 

 

 

 

////////////////////////////////////////////////////////////////////////////////
一、部署策略
1.一个master节点,同时运行NameNode、SecondaryNameNode和JobTracker ,也可以三个节点分别运行
2.两个slave节点,每个slave同时运行DataNode/TaskTracker  也可以多个
////////////////////////////////////////////////////////////////////////////////
二、准备工作
Linux内核
内核需求:
master节点:没有特别的版本要求,一般使用2.6内核即可
slave节点:最好支持大块文件系统

创建用户
用户名可以用hdcf等(在hdfs基础上稍微改一下,hd说明用途,cf是自己的标识) 最好不要用hdfs、mapred,因为一般已经被用

过了
登录master节点,执行:
% useradd mapcf
% useradd hdcf
登录slave节点(TaskTracker/DataNode),执行:
% useradd mapcf
% useradd hdcf
////////////////////////////////////////////////////////////////////////////////
三、建立SSH信任关系
master节点可以无密码登录到从节点,这就要求master节点的public key在slave节点的authroized_keys列表中
在master节点上以mapcf用户执行:
% ssh-keygen -t rsa
% cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
% chmod g-w ~/.ssh/authorized_keys
以上命令生成id_rsa.pub公钥文件,并追加到本机mapcf用户的authroized_keys列表中。执行以下命令验证操作是否成功:
% ssh localhost
如果不需要输入密码,则说明操作成功。将id_rsa.pub文件分发到所有slave节点上,并追加到slave节点mapred用户的

~/.ssh/authorized_keys文件中。//要先查一下 hdcf mapcf用户原来有没有密码之类的,因为原来可能装过,如果设了密码,就

不方便了
如果文件不存在,则手动创建该文件,但一定要注意authorized_keys文件权限设置正确。
操作完成后,从master登录到任意一台从节点测试操作是否成功。
hdcf用户类似。
///////////////////////////////////////////////////////////////////////////////
四、Hadoop-v2配置与安装
$./build4deploy.sh
build 之后在deploy目录下有
hadoop-namenode  hdfs的master
hadoop-datanode   hdfs的slave

hadoop-jobtracker   MapReduce的master
hadoop-tasktracker   MapReduce的slave

hadoop-client  客户端
////////////////////////////////////////////////////////////////////////////////
五、基本配置修改
Hadoop的配置文件保存在hadoop-v2/hadoop/conf目录中,按以下步骤修改配置:
/*****************************************/
master节点配置保存在hadoop/conf目录中
1 修改hadoop-user-info.properties分配用户名和密码,一般可改为
root=root,root
slave=slave,slave
2 修改conf/hadoop-site.xml,修改hadoop.tmp.dir
<name>hadoop.tmp.dir</name>
  <value>/home/disk3/chadoop/hadoop-data</value>
3 修改fs.default.name到NameNode所在节点地址并分配端口,可以先用
#lsof -Pnl +M -i4 查一下那些端口已被占用
4 修改mapred.job.tracker到JobTracker所在节点地址并分配端口
JobTracker 和 NameNode 可以采用一个机器
5 修改hadoop.job.ugi,设为root,root的密码,注意root的密码必须和hadoop-user-info.properties中的一样,一般设为root (

这个不是机器的密码)
6 修改slaves文件,该文件为所有的slave节点主机名列表,示例
szwg-hadoop-t0047.szwg01.baidu.com
szwg-hadoop-t0049.szwg01.baidu.com
7 修改master文件,该文件为SecondaryNameNode的主机名,可以为本机
/*****************************************/
slave节点配置保存在hadoop/conf目录中
1 先照master节点配置 2 3 4 设置
2 修改hadoop.job.ugi,设为slave,slave的密码,slave的密码在master节点的conf/hadoop-user-info.properties中设置
一般就是slave
3 修改dfs.data.dir(在hadoop-datanode目录包里)和mapred.local.dir(在hadoop-tasktracker目录包里)

注意一下: hadoop-default.xml 里面的  50010 50020端口也改一下,(不用在hadoop-default.xml 改,在hadoop-site.xml里

覆盖就可以) 一般也被占用了
dfs.http.address</name>   <value>0.0.0.0:8070</value>这个端口改成 800-8000之间的数
////////////////////////////////////////////////////////////////////////////////
六、安装包分发
典型地,将hadoop-namenode分发到NameNode/SecondaryNameNode的hdcf目录下,并更名为hadoop-v2,同时保证目录属主为hdcf:
% mv hadoop-namenode hadoop-v2
% chown -R h.....................................

 

 

 

 

 

 


 

posted @ 2012-02-16 16:17  cffile  阅读(421)  评论(0编辑  收藏  举报
google