Hadoop环境搭建——单节点篇

Hadoop环境搭建——单节点篇
     研究Hadoop也有一段时间了,好不容易才搭建成了hadoop单节点环境,现在把搭建步骤记录下来,希望看到的人不用走弯路。

      闲话不多说了,进正题。
                                   准备:
          openSuSE
          hadoop 1.0
          jdk1.6.0_26 for linux
装机阶段:

1、安装openSuSE
  相信大家都会,这里就不多说了。
2、创建一个名为hadoop的用户和用户组
  1、创建一个名为hadoop的用户组
    groupadd hadoop
   2、创建一个名为hadoop的用户,归到hadoop用户组下

Useradd hadoop –g hadoop –m
3、切换到root用户
Su root
  4、修改sudoers权限
Chmod 754 /etc/sudoers
  5、用vi打开etc下的sudoers文件
vi /etc/sudoers
   6、在 root   ALL=(ALL)  ALL 下面添加如下一行,然后保存关闭
    hadoop  ALL=(ALL)  ALL
7、恢复 sudoers权限
Chmod 440 /etc/sudoers
3、安装jdk1.6.0_26
1、切换到hadoop用户
Su hadoop
  2、在usr下面新建一个文件夹Java,然后将jdk复制过来(也可直接mv过来)
     mkdir /usr/Java
    cp jdk的路径 /usr/Java
  3、进入到Java目录下,改变文件权限为可执行
    cd /usr/Java 
    sudo chmod u+x jdk1.6.0_26.bin

  4、执行安装
    ./jdk1.6.0_23.bin 
4、安装hadoop1.0.0
  1、将hadoop1.0.0.tar.gz复制到usr下面的local文件夹内(也可mv)
    cp hadoop的路径 /usr/local

  2、进入到local目录下,解压hadoop1.01.0.tar.gz
    cd /usr/local
    tar -xzf hadoop1.0.0.tar.gz
  3、为了方便管理,将解压后的文件夹名改为hadoop
    mv hadoop0.21.0 hadoop
  配置阶段:
1、配置环境变量
   1、用vi打开etc下的profile文件
    vi /etc/profile
   2、在文件最后加入如下几行
      export CLASSPATH=.:/usr/Java/jdk1.6.0_26/lib:/usr/Java/jdk1.6.0_26/jre/lib:$CLASSPATH
      export PATH=.:/usr/Java/jdk1.6.0_26/bin:/usr/Java/jdk1.6.0_26/jre/bin:/usr/local/hadoop/bin:$PATH
(注1:以上所有jre项都不是必需的,可以不要
注2:在win中环境变量的值是以“;”号隔开的,而这里是“:”
  注3:等号后面有个“.”别丢了,它表示当前目录)
    3、保存后关闭vi,并重启机器
      reboot
    4、重启后用hadoop用户登录,验证配置是否成功
      java -version  
2、创建ssh-key
  1、确保网络通畅,然后装载ssh服务
  2、创建ssh-key,为rsa (网上文档中也有dsa的)
   ssh-keygen -t rsa --P
   (注1:此语句网上文档为 ssh-keygen -t rsa -P "" ,效果一样
    注2:此语句执行后会要你填写key的保存位置,直接照着系统给出的那个默认位置填,也就是括号里的那个路径,如果全都照此文档操作的话那么括号中路径应该为"/home/hadoop/.ssh/id_rsa")
  3、将此ssh-key添加到信任列表中,并启用此ssh-key
    cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
    /etc/init.d/sshd reload

3、配置hadoop
  1、进入到hadoop目录下,配置conf目录下的hadoop-env.sh中的JAVA_HOME
    cd /usr/local/hadoop
    vi conf/hadoop-env.sh
    (打开后在文档的上部某行有“#export JAVA_HOME=...”字样的地方,去掉“#”,
     然后在等号后面填写你的jdk路径,完全按此文档来的话应改为 "export JAVA_HOME=/usr/Java/jdk1.6.0_26" )
   2、配置conf目录下的core-site.xml
    Vi conf/core-site.xml
    (打开后标签<configuration> </configuration>中是空的,所以在空的地方加入如下配置)
Xml代码    
1. <property> 
2.        <name>fs.default.name</name> 
3.        <value>hdfs://localhost:9008</value>   
4. </property> 
5.  
6. <property> 
7.        <name>dfs.replication</name> 
8.        <value>1</value>   
9. </property> 
10.  
11. <property>   
12.        <name>hadoop.tmp.dir</name> 
13.        <value>/home/hadoop/tmp</value>   
14. </property> 
 

3、配置conf目录下的mapred-site.xml
  Vi conf/mapred-site.xml
  (打开后标签<configuration> </configuration>中也是空的,添加如下配置)
Xml代码    
1. <property>   
2.       <name>mapred.job.tracker</name>   
3.       <value>localhost:9009</value> 
4. </property>  
运行测试阶段:
1、格式化namenode (首次运行必需滴)
  1、保证此时在hadoop目录下,如不在请先进入hadoop目录
    cd /usr/local/hadoop
   2、格式化namenode
    hadoop namenode -format
2、启动hadoop
  1、修改hadoop文件夹的权限,保证hadoop用户能正常访问其中的文件
    chown -hR hadoop /usr/local/hadoop
  2、启动hadoop
    bin/start-all.sh
  3、验证hadoop是否正常启动
    jps
    (此语句执行后会列出已启动的东西NameNode,JobTracker,SecondaryNameNode...如果NameNode没有成功启动的话就要先执行"bin/stop-all.sh"停掉所有东西,然后重新格式化namenode,再启动)
3、跑wordcount
  1、准备需要进行wordcount的文件
   Vi /tmp/test.txt
(打开后随便输入一些内容,如"mu ha ha ni da ye da ye da",然后保存退出)
  2、将准备的测试文件上传到dfs文件系统中的firstTest目录下
   hadoop dfs -copyFromLocal /tmp/test.txt firstTest
  (注:如dfs中不包含firstTest目录的话就会自动创建一个,关于查看dfs文件系统中已有目录的指令为"hadoop dfs -ls")
  3、执行wordcount
    hadoop jar hadoop- example1.0.0.jar wordcount firstTest result
   (注:此语句意为“对firstTest下的所有文件执行wordcount,将统计结果输出到result文件夹中”,若result文件夹不存在则会自动创建一个)
  4、查看结果
   hadoop dfs -cat result/part-r-00000
   (注:结果文件默认是输出到一个名为“part-r-*****”的文件中的,可用指令“hadoop dfs -ls result”查看result目录下包含哪些文件)
       至此单节点环境搭建完成!

猜你喜欢

转载自xiatianyu-11.iteye.com/blog/1397666