RedHat安装Hadoop0.20.2小集群

在安装Hadoop以前先确保每台机器都装有jdk,版本什么路径什么的最好同样,而后配置好master对其余slavers的SSH无密码访问<能够参考:http://blog.csdn.net/hqshaozhu/article/details/11788025>html

确保上述条件知足以后就能够开始安装Hadoop了java

首先个人版本信息:node

     LinuxOS:RedHat Enterprise 6.0 两台(VMWare虚拟机),一台master,两台slave,master也是slavees6

    Hadoop:0.20.2<下载地址:http://archive.apache.org/dist/hadoop/core/>apache

   系统配置:master 主机名:rh01 ip:192.168.1.8浏览器

                       slave    主机名:rh02 ip:192.168.1.9dom

得确保机器之间可以互相访问oop


下面开始Hadoop安装测试

1.将下载hadoop文件解压,tar文件使用tar -zxvf file_name    能够在后面加上-C指定解压路径,最好放到一个固定地方,全部机器路径必须保证一直.net

2.解压以后在hadoop-0.20.2(安装根目录)下会看到一个conf文件夹,全部的hadoop配置都在这个文件夹下,也是最主要的

3.配置Hadoop环境变量:

export JAVA_HOME=/develop/java/jdk1.7.0_25
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME=/develop/hadoop/hadoop-0.20.2

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
4.配好环境变量以后能够选择重启机器让prfile文件生效,或者执行source /etc/profile也可

5.下面开始配置Hadoop配置文件,有hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves6个文件须要修改

(1)hadoop-env.sh:在hadoop-env.sh后面添加JAVA_HOME值,这个值被注释掉了,能够直接去掉注释而后将值改为你jdk安装路径便可

(2)core-site.xml:在configuration节点中添加,其中ip为master ip,9000为端口,注意必须是以hdfs开头,不是http

<property>
    <name>fs.default.name</name>
    <value>hdfs://192.168.1.8:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/develop/hadoop/tmp</value>
  </property>
(3)hdfs-site.xml:在configuration节点中添加,其中dfs.replication值须要注意,若是你的salves机器数<3,那就写1或者2,大于2就写3就能够了,
        我这里是两个slave,因此写2
<!-- dfs.replication,设置数据块的复制次数,默认是3,若是slave节点数少于3,则写成相应的1或者2 -->
<property>
	<name>dfs.replication</name>
	<value>2</value>
</property>
<property>    
        <!-- DFS中存储文件命名空间信息的目录 -->    
        <name>dfs.name.dir</name>    
        <value>/develop/hadoop/dfs/name</value>    
</property>   
<property>    
	<!-- DFS中存储文件数据的目录 -->    
	<name>dfs.data.dir</name>     
	<value>/develop/hadoop/dfs/data</value>    
</property>    
<property>    
	<!-- 是否对DFS中的文件进行权限控制(测试中通常用false)-->    
	<name>dfs.permissions</name>    
	<value>false</value>    
</property>
(4)mapred-site.xml:没有这个文件就新建一个便可,其中mapred.job.tracker 是配置jobtracker,ip为master ip,端口 9001,注意必须是以hdfs开头,不是http
<configuration>
<property>    
        <!-- JobTracker节点 -->    
        <name>mapred.job.tracker</name>    
        <value>hdfs://192.168.1.8:9001</value>    
</property>    
<property>    
        <!-- map/reduce的系统目录(使用的HDFS的路径) -->    
        <name>mapred.system.dir</name>    
        <value>/develop/hadoop/mapred/system</value>    
</property>    
<property>    
        <!-- map/reduce的临时目录(可以使用“,”隔开,设置多重路径来分摊磁盘IO) -->    
        <name>mapred.local.dir</name>    
        <value>/develop/hadoop/mapred/local</value>    
</property>    

</configuration>

(5)master:这个文件中写的是master ip(也有资料说是应该写SecondaryNameNode,新手咱们就无论吧,反正只要写master ip就能够了)

(1)hosts第一行127.0.0.1后面不要写主机名,也就是HOSTNAME值


(6)slaves:这个文件写的是slave ip,有几个写几个,分行写,master也能够做为slave节点,同master最好都写ip,不要写hostname

6.将hadoop安装目录整个copy到全部salve主机上,使用scp -r命令便可,同时也能够将/etc/profile文件也copy过去,反正profile和hadoop都得保证彻底一致,路径也是
7.到这里配置应该就完成了,再启动hadoop前咱们须要先格式化namenode:#hadoop namenode -format,这里若是若是提示没有hadoop命令,则先到profile中确认$HADOOP_HOME/bin加入到path中,其次能够进入到hadoop安装目录下使用:#bin/hadoop namenode -format试试,若是仍是不行就那检查你的上面配置的文件是否
有错.
8.格式化成功以后就能够启动hadoop了,能够直接启动start-all.sh(配置彻底正确状况下这个命令不管在什么目录下均可以执行),以后就能够看到hadoop启动了,你会发现显示将启动日志保存到一个路径下,这些日志在hadoop安装目录的logs文件夹下,是很重要的,可是当你出错时能够清空logs下全部文件,而后从新启动机器让他生成日志,在查看日志信息,由于日志比较多,看起来就不方便,嘿嘿。若是日志没问题那就OK。
9.在每台机器上使用:#jps 能够查看hadoop进程状况,启动成功slave应该显示:tasktracker jps datanode三个进程,master显示:jobtracker namenode sencondarynamenode jps要是master也是slave的话会多tasktracker datanode两个进程
10.一切OK以后可使用浏览器访问http://192.168.1.8:50030/ ip是master ip,查看hadoop运行状况,以后能够试着作hadoop自带的小测试,本身去网上找吧

我知道一次安装成功能够性很小,你是新手的话,因此会出现各类各样的问题,在这里说下可能会出现的问题吧,也是我遇到的问题
java.io.IOException: Call to /192.168.1.8:9000 failed on local exception: java.net.NoRouteToHostException: No route to host
(1)hadoop版本问题,劝新手不要一开始就是用2.0版本及以上的,首先2.0的资料较少,其余不是很稳定貌似,配置也比较繁琐,我反正弄了一周没搞好,而后果断换了0.20.2才搞定。
(2)若是启动失败,log中显示没法链接master什么的,那问题就出在/etc/hosts文件中,这里配置了主机信息,hosts文件配置有点怪,下面是个人master hosts和slave hosts
master:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
HOSTNAME=rh01
192.168.1.8 rh01
192.168.1.9 rh02

slave:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
HOSTNAME=rh02
192.168.1.9 rh02

192.168.1.8 rh01

注意之处在于

(1)hosts第一行127.0.0.1后面不要写主机名,也就是HOSTNAME值

(2)在HOSTNAME后面写ip与主机名映射的时候必定要先写本机ip (3)防火墙,这个坑爹的货在hadoop中始终是个麻烦,在启动hadoop以前须要将全部机器防火墙关闭,使用:#service iptables stop,也能够直接使用:#chkconfig iptables off命令设置防火墙不自启动,这样下次防火墙就不会自启动了 我就总结出这三点可能会影响hadoop启动的,错误都是没法链接主机,要是其余错误那就好好看看conf下的那些配置文件是否有错了 好了,安装吧,启动吧,开心吧,查看吧,失望吧,排错吧,绝望吧,总之坚持住你就能搞定 嘻嘻~~~ 申明有参考网上其余文章

相关文章
相关标签/搜索