设为首页 收藏本站
查看: 1243|回复: 0

[经验分享] hadoop-1.1.0 rpm + centos 6.3 64 + JDK7 搭建全分布式集群的方法

[复制链接]

尚未签到

发表于 2016-5-14 06:31:32 | 显示全部楼层 |阅读模式
  引自 http://blog.csdn.net/irelandken/article/details/8122474
  第一步 ,环境准备. 
服务器3台,可以用3个虚拟机代替.

操作系统.
CentOS 6.3 64

hadoop版本
hadoop 1.1.0 rpm

开始安装
以下所有的操作,都是用 root 身份执行

以下安装,需要在每台机器上面安装. 

下载好 jdk-7u9-linux-x64.rpm 和 hadoop-1.1.0-1.x86_64.rpm 



1. 首先安装操作系统,并关闭防火墙,









第二步,更改主机名
修改主机名 namenode1,datanode1,datanode2



 
vim /etc/sysconfig/network


(分别修改为)


HOSTNAME=namenode1



HOSTNAME=datanode1


HOSTNAME=datanode2





 
 


:wq保存并退出




第三步,修改文件“/etc/hosts





    每台主机中的/etc/hosts文件有以下配置


 
vim /etc/hosts


(添加以下内容)


192.168.10.137   namenode1
192.168.10.138   datanode1
192.168.10.139   datanode2




     测试
 
ping namenode1
ping datanode1
ping datanode2

 
 


第四步.安装jdk,rpm版的会自动配置好环境变量   


 
rpm -ivh jdk-7u9-linux-x64.rpm     
       
      java -version 马上有反应,方便!


第五步.安装hadoop,rpm版的会自动配置部分文件
 
rpm -ivh  hadoop-1.1.0-1.x86_64.rpm
 
 








(CentOS 6.3默认已经安装了openssh和rsync)


 
2.2 配置Master无密码登录所有Salve

  1)SSH无密码原理
  Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在          Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slave的authorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master的公钥,然后用这个公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
 
以下操作,在  namenode1上面执行



1. 创建 ssh 密钥,就是不用密码登陆 目标主机 ,以下命令直接敲默认回车,不用输入任何信息.


 
ssh-keygen -t rsa


cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
 
 
2. 密钥生成完成以后,追加namenode的公钥到其他2台 datanode 上面,使得 namenode能访问其它 datanode 


 
cat ~/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat >>~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat >>~/.ssh/authorized_keys"

 
 

3.修改SSH配置文件,启用RSA认证


vim /etc/ssh/sshd_config




       DSC0000.jpg


     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件


     设置完之后记得重启SSH服务,才能使刚才设置有效。
 
service sshd restart






3. 验证ssh 不要密码登陆是否成功


ssh  namenode1


ssh  datanode1 


ssh  datanode2 

 
 
 如果SSH访问出现问题的话,可以试试下面的

    1)修改文件"authorized_keys"
 
chmod 644 ~/.ssh/authorized_keys
 




 
2.3 配置所有Slave无密码登录Master
    和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)
 
用root登录datanode1
 
1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.


 
ssh-keygen -t rsa 

cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
 
 
2. 密钥生成完成以后,追加本机的公钥到其他2台机器上面




cat ~/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat >>~/.ssh/authorized_keys"


cat ~/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat >>~/.ssh/authorized_keys"
 
 





3.修改SSH配置文件,启用RSA认证


vim /etc/ssh/sshd_config




      


     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件


     设置完之后记得重启SSH服务,才能使刚才设置有效。
 
service sshd restart






3. 验证ssh 不要密码登陆是否成功




ssh  namenode1 

ssh  datanode2
 
 



如果SSH访问出现问题的话,可以试试下面的


    1)修改文件"authorized_keys"
 
chmod 644 ~/.ssh/authorized_keys
 



 
2.4 配置所有Slave无密码登录Master
    和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)
 
用root登录datanode2
 
1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.
 
 
ssh-keygen -t rsa


cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
 
 
 
 
2. 密钥生成完成以后,追加本机的公钥到其他2台机器的authorized_keys


 
cat ~/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat >>~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat >>~/.ssh/authorized_keys"
 
 



3.修改SSH配置文件,启用RSA认证


vim /etc/ssh/sshd_config




      


     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件


     设置完之后记得重启SSH服务,才能使刚才设置有效。
 
service sshd restart




3. 验证ssh 不要密码登陆是否成功


ssh  namenode1 
ssh  datanode1
 



如果SSH访问出现问题的话,可以试试下面的


    1)修改文件"authorized_keys"
 
chmod 644 ~/.ssh/authorized_keys
 


 
 
---------------------------------------------------------------------------------------------------------------------------------------------
 
 
 
2.5 配置Hadoop
每个节点都要进行以下的配置
 
 
4. 创建必要的目录.首先创建 namenode 保存namenode 元信息的目录. 设置为 /usr/hadoop/tmp  目录下


mkdir -p /usr/hadoop/tmp 
 
5. 配置hadoop 运行环境.进入 /etc/hadoop 目录下面,修改hadoop的默认配置.
首先修改 master 文件. master 文件很容易理解错误,master 文件是指 hadoop 机器里面的secondarynamenode.不是指本机(测试用所以配置上,实际上namenode和secondarynamenode放在同一个机子上不能增加可靠性,没什么意义!)




vim /etc/hadoop/master
(改为如下)
192.168.10.137
 

接着修改slaves 文件,salve 文件表示此集群的 datanode 节点.所以在本集群中,datanode 如下




vim /etc/hadoop/slave
(改为如下)
192.168.10.138
192.168.10.139 
 
    这里的IP实际上可以用主机名来代替,但当网格的DNS出问题的,就不能访问了,直接用IP就不用依赖DNS,提高集群可靠性!
 
        6. 设置 core-site.xml 文件内容如下
 
 
 
<configuration>
        
        <!-- global properties -->
<property>
    <name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
  
<!-- file system properties -->
  <property>
<name>fs.default.name</name>
<value>hdfs://namenode1:9000</value>
</property>


</configuration>
 
 
      3)配置hdfs-site.xml文件
  修改Hadoop中HDFS的配置,配置的备份方式默认为3,这里只有2个datanode,所以数据最大复制2份!
 
 
<configuration>

<property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>


</configuration>
 
   

 
7. 设置 mapred-site.xml 件内容如下
  修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。





 
 
 
<configuration>

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


</configuration>
 
 

 
 
 
   


 
 


8. 修改 java 的运行环境变量,修改 hadoop-env.sh 如下行的内容如下


vim  /etc/hadoop/hadoop-env.sh
 

修改如下行内容为


export JAVA_HOME=/usr/java/jdk1.7.0_09
 



11. 设置每个节点上面的 服务为自动启动


chkconfig --add hadoop-namenode
chkconfig --add hadoop-jobtracker
chkconfig hadoop-namenode on
chkconfig hadoop-jobtracker on
 
 
4.3 启动及验证
  1)格式化HDFS文件系统
  在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化)
 
hadoop namenode -format


 
  2)启动hadoop
  在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
 
service iptables stop
 
     不知道为什么root用户访问start-all.sh会提示无权限,所以直接修改了其所在文件夹的访问权限!(谁知道原来回复一下我,谢谢)
 
chmod -R 777 /usr/sbin/ 
 
 
 
    启动 namenode
 
 
start-all.sh
 
     
 
  可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。
       再启动jobtracker,然后启动tasktracker1,tasktracker2,…。
 
  启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。
 
 
 
     停止 namenode


stop-all.sh
     







 (2)验证方式二:用"hadoop dfsadmin -report"
  用这个命令可以查看Hadoop集群的状态。
 
 
4.4 网页查看集群
  1)访问jobtracker"http:192.168.1.2:50030"
 
       
 
  2)访问DFS : "http:192.168.10.137:50070"
       
 
    到此,Hadoop配置完毕,最大的感悟是rpm方式安装软件真是太方便了!

参考自:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html 和 http://www.unxmail.com/read.php?221



  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-216664-1-1.html 上篇帖子: 国内速度最快的centos5.4 yum(更新源) 下篇帖子: 基于Windows7 +【VMWare9.0 + CentOS-6.2-x86_64-minimal】环境,单网卡,all-in-one模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表