posts - 200, comments - 8, trackbacks - 0, articles - 0

CentOS 5.5 安装hadoop-0.21.0(转)

Posted on 2012-12-25 20:54 鑫龙 阅读(287) 评论(0)  编辑 收藏 引用 所属分类: Hadoop

倒腾了一天,终于在CentOS上装上了hadoop-0.21.0,特此记录,以备后用。

操作系统:CentOS 5.5

Hadoop:hadoop-0.21.0
JDK:1.6.0_17
namenode主机名:master,namenode的IP:192.168.90.91
datanode主机名:slave,datanode的IP:192.168.90.94

第一步:安装并启动ssh服务

CentOS 5.5安装完毕之后以及默认启动了sshd服务,可以在“系统”->“管理”->“服务”中查看sshd服务是否启动。当然了,如果机器上没有安装ssh服务,则执行命令sudo yum install ssh来安装。安装rsync,它是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,执行命令sudo yum install rsync。修改每个节点的/etc/hosts文件,将 namenode和datanode的IP信息加入到该文件的尾部:

192.168.90.91 master
192.168.90.94 slave

第二步,配置SSH服务

(1),(2)是针对每一台机器

(1)创建hadoop用户名与用户组

     运行命令su - root,注意,不是命令su root,后者不能携带root用户的参数信息,是不能执行创建用户组和用户命令的。执行命令:groupadd hadoop和命令useradd -g hadoop hadoop。注意不能在/home目录下创建hadoop目录,否则创建hadoop用户会失败。创建好用户以后最好是重新启动计算机,以hadoop用户登录系统。这样在之后的操作中就不需要su到hadoop用户下,而且也不会纠缠于文件的owner问题。

(2)生成ssh密钥

     如果是其他用户登录的则切换到hadoop用户下,执行命令su - hadoop,在/home/hadoop目录下执行命令:ssh-keygen -t rsa(一路回车,选择默认的保存路径),密钥生成成功之后,进入.ssh目录,执行cd .ssh,执行命令:cp id_rsa.pub authorized_keys。这个时候运行ssh localhost,让系统记住用户,之后ssh localhost就不需要再输入密码了。

(3)交换公钥

     将namenode上的公钥拷贝到datanode,在hadoop用户的用户目录下(/home/hadoop)下执行命令ssh-copy-id -i $HOME/.ssh/id_rsa.pub hadoop@slave。同理,也可以将datanode上的公钥拷贝到namenode,但这不是必须的。这样两台机器在hadoop用户下互相ssh就不需要密码了。

 

第三步,安装JDK1.6或以上(每台机器)

(1)执行命令yum install jdk

(2)如果第一步没有找到源码包,那么就需要到官网上下载了,https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u22-oth-JPR@CDS-CDS_Developer。

(3)新建目录/usr/java,将源码包jdk-6u22-linux-i586.bin复制到该目录下,执行命令chmod a+x jdk-6u22-linux-i586.bin
      使当前用户拥有对jdk-6u22-linux-i586.bin的执行权限。执行命令sudo ./jdk-6u22-linux-i586.bin进行安装

(4)修改/etc/profile来添加环境变量,/etc/profile中设置的环境变量就像Windows下环境变量中的系统变量一样,所有用户都可以使用。
      用文本编辑器打开/etc/profile
      # vi /etc/profile
      在最后加入以下几行:
      export JAVA_HOME=/usr/java/jdk1.6.0_22
      export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export PATH=$PATH:$JAVA_HOME/bin
      这样我们就设置好了JDK,在centos下 source /etc/profile 就可以生效了.

运行命令java -version可以判断是否安装成功

 

第四步,安装hadoop

原来现在才开始安装hadoop,准备工作也作得太多了,废话少说。

(1)新建目录/usr/local/hadoop,将hadoop-0.21.0.tar.gz解压缩到该目录下,执行命令sudo tar -xvzf hadoop-0.21.0.tar.gz,修改/etc/profile文件,将hadoop的安装目录append到文件最后:

export HADOOP_HOME=/usr/local/hadoop/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH
(2)配置/conf/hadoop-env.sh文件,修改java_home环境变量
export JAVA_HOME=/usr/java/jdk1.6.0_22/
export HADOOP_CLASSPATH=.
(3)配置 core-site.xml 文件
<configuration>
      <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/local/hadoop/hadoop-0.21.0/tmp</value>
           (注意,请先在 hadoopinstall 目录下建立 tmp 文件夹)
            <description>A base for other temporary directories.</description>
      </property>
<!-- file system properties -->
      <property>
            <name>fs.default.name</name>
      <value>hdfs://master:54310</value>
      </property>
</configuration>
(4)配置 hdfs-site.xml 文件
<configuration>
      <property>
            <name>dfs.replication</name>
            <value>1</value>(这里共两台机器,如果将主节点也配置为datanode,则这里可以写2)
      </property>
<configuration>
(5)配置 mapred-site.xml 文件
<configuration>
      <property>
            <name>mapred.job.tracker</name>
            <value>master:54311</value>
      </property>
</configuration>
(6)配置 conf/masters 文件,加入 namenode 的 ip 地址
master
(7)配置 slaves 文件, 加入所有 datanode 的 ip 地址

slave

 

(如果之前的hdfs-site.xml文件中的拷贝数设置为2,则需要将master也加入到slaves文件中)

(8)将 namenode 上 配 置 好 的 hadoop 所 在 文 件 夹 hadoop-0.21.0 复 制 到
datanode 的/usr/lcoal/hadoop/目录下(实际上 masters,slavers 文件时不必要的, 复制了也
没问题)。
(9)配置datanode的/etc/profile 文件,在文件尾append下列内容:
export HADOOP_HOME=/usr/local/hadoop/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH

第五步,启动hadoop
首先记得关闭系统的防火墙,root用户下执行命令/etc/init.d/iptables stop,运行命令/etc/init.d/iptables status检查防火墙状态。hadoop用户下,在namenode的/usr/local/hadoop/hadoop-0.21.0/bin目录下打开终端,执行命令hadoop namenode -format,格式化目录节点。注意,/usr/local/hadoop/hadoop-0.21.0/tmp目录是可以写的,否则在格式化时会出现异常。执行命令start-all.sh启动hadoop集群,执行命令jps查看进程,执行命令hadoop dfsadmin -report查看状态。在浏览器中输入http://master:50070以web方式查看集群状态。查看jobtraker的运行状态:http://www.ibm.com/developerworks/cn/linux/l-hadoop-2/index.html
PS:格式化namenode的时候最好将节点的tmp目录清空、删除logs目录中的文件。

到这里,基于CentOS5.5的hadoop集群搭建完毕!

 

参考资料:http://www.ibm.com/developerworks/cn/linux/l-hadoop-2/index.html


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理