如何进行hadoop-0.20.2安装及简单使用

这篇文章将为大家详细讲解有关如何进行hadoop-0.20.2安装及简单使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册网站空间、营销软件、网站建设、化州网站维护、网站推广。

安装步骤如下:

1.1 机器说明

总共有4台机器:sc706-26、sc706-27、sc706-28、sc706-29

IP地址分别为:192.168.153.89、192.168.153.90、192.168.153.91、192.168.153.92

操作系统为:Linux的fedora12

jdk版本为:jdk-6u19-linux-i586

hadoop版本为:hadoop-0.20.2

sc706-26作为NameNode、JobTracker,其他三台作为DataNode、TaskTracker

1.2 用机器名Ping通机器

用root登录,修改NameNode和DataNode上的/etc/hosts文件,加入四台机器的IP地址和机器名,如下:

192.168.153.89  sc706-26

192.168.153.90  sc706-27

192.168.153.91  sc706-28

192.168.153.92  sc706-29

设置好后验证下各机器间是否ping通,用机器名或是IP地址都可以,例如ping sc706-27或ping 192.168.153.90

1.3 新建hadoop用户

Hadoop要求所有机器上hadoop的部署目录结构要相同并且有一个相同的用户名的帐户,我的默认路径为/home/hadoop

1.4 ssh设置及关闭防火墙(需要用到root,su - )

1)fedora装好后默认启动sshd服务,如果不确定的话可以查一下 [root@sc706-26 hadoop]# service sshd status

如没有启动的话,先启动 [root@sc706-26 hadoop]# service sshd start

建立ssh无密码登录,在NameNode上 [hadoop@sc706-26 ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

会在~/.ssh/生成两个文件:id_dsa和id_dsa.pub,这两是成对出现的,把id_dsa.pub文件追加到DataNode上的authorized_keys

[hadoop@sc706-26 ~]$ scp id_dsa.pub sc706-27:/home/hadoop/ (注意其中目标机器后面的:与要传到的文件路径之间没有空格,即sc706:与/home/hadoop/之间没有空格)

                                      scp id_dsa.pub sc706-28:/home/hadoop/

                                      scp id_dsa.pub sc706-29:/home/hadoop/

登录到DataNode上,[hadoop@sc706-27 ~]$ cat id_dsa.pub >> ~/.ssh/authorized_keys ,其余两台一样,NameNode上也要追加。注意:追加完后必须修改NameNode和DataNode上的.ssh和authorized_keys的权限,chmod命令,参数755,完成后测试下,例如ssh sc706-27时不需要密码就可以登录,就可以知道ssh设置成功。

2)关闭防火墙(NameNode和DataNode都必须关闭)

[root@sc706-26 ~]# service iptables stop

注意:每次重新开机启动hadoop前都必须关闭

1.5 安装jdk1.6(几台机子都一样)
在官网http://java.sun.com下载jdk-6u19-linux-i586.bin,之后直接安装[root@sc706-26 java]#chmod +x jdk-6u19-linux-i586.bin [root@sc706-26 java]# ./jdk-6u19-linux-i586.bin,我的安装路径为:/usr/java/jdk1.6.0_19,安装后添加如下语句到/etc/profile中:

export JAVA_HOME=/usr/java/jdk1.6.0_19

export JRE_HOME=/usr/java/jdk1.6.0_19/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

1.6 安装hadoop

在官网http://apache.etoak.com//hadoop/core/下载hadoop-0.20.2.tar.gz

[hadoop@sc706-26 ~]$ tar xzvf hadoop-0.20.2.tar.gz

将hadoop的安装路径添加到/etc/profile中:

export HADOOP_HOME=/home/hadoop/hadoop-0.20.2

export PATH=$HADOOP_HOME/bin:$PATH

为了让/etc/profile生效,source一下 [hadoop@sc706-26 ~]$ source /etc/profile

1.7 配置hadoop

其配置文件在/conf目录下

1)配置JAVA环境

[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.6.0_19

2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml文件

[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/core-site.xml

      hadoop.tmp.dir     

/home/hadoop/tmp

  

      fs.default.name     

hdfs://sc706-26:9000

  

[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/mapred-site.xml

     mapred.job.tracker  

      hdfs://sc706-26:9001 注意:sc706-26前能不能加hdfs://不太清楚,本人配了两个集群,一个加了一个不加都能用

  

[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/hdfs-site.xml

  

      dfs.name.dir  

      /home/hadoop/name

    

     

      dfs.data.dir 

      /home/hadoop/data

  

      dfs.replication 

      3注意:如果设为1,数据只有一个副本,假如其中一个datanode出问题,将会导致整个job失败

    

3)将NameNode上完整的hadoop拷贝到DataNode上,可先将其进行压缩后直接scp过去或是用盘拷贝过去

4) 配置NameNode上的conf/masters和conf/slaves

masters:192.168.153.89

slaves:192.168.153.90

           192.168.153.91

           192.168.153.92

1.8 运行hadoop

1)格式化文件系统

[hadoop@sc706-26 hadoop-0.20.2]$ hadoop namenode -format

注意:格式化时要防止NameNode的namespace ID与DataNode的namespace ID的不一致,因为每格式化一次会产生Name、Data、tmp等临时文件记录信息,多次格式化会产生很多,会导致ID的不同,造成hadoop不能运行

2)启动hadoop

[hadoop@sc706-26 hadoop-0.20.2]$ bin/start-all.sh

3)用jps命令查看进程,NameNode上的结果如下:

   25325          NameNode

   25550          JobTracker

   28210          Jps

   25478         SecondaryNameNode

4)查看集群状态

[hadoop@sc706-26 hadoop-0.20.2]$ hadoop dfsadmin -report

确保运行的DataNode个数是正确的,我的是3个,这样可以查看哪个DataNode没有运行

5)用hadoop的web方式查看

       [hadoop@sc706-26 hadoop-0.20.2]$ links  http://192.168.153.89(即为master):50070

1.9 运行Wordcount.java程序

1)先在本地磁盘上建立两个文件f1和f2

[hadoop@sc706-26 ~]$ echo ”hello Hadoop goodbye hadoop” > f1

[hadoop@sc706-26 ~]$ echo ”hello bye hadoop hadoop” > f2

2)在hdfs上建立一个input目录

[hadoop@sc706-26 ~]$ hadoop dfs -mkdir input

3)将f1和f2拷贝到hdfs的input目录下

[hadoop@sc706-26 ~]$ hadoop dfs -copyFromLocal /home/hadoop/f* input

4)查看hdfs上有没有input目录

[hadoop@sc706-26 ~]$ hadoop dfs -ls

5)查看input目录下有没有复制成功f1和f2

[hadoop@sc706-26 ~]$ hadoop dfs -ls input

6)执行wordcount(确保hdfs上没有output目录)

[hadoop@sc706-26 hadoop-0.20.2]$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output

7)运行完成,查看结果

[hadoop@sc706-26 hadoop-0.20.2]$ hadoop dfs -cat output/part-r-00000

关于如何进行hadoop-0.20.2安装及简单使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


名称栏目:如何进行hadoop-0.20.2安装及简单使用
文章路径:http://pwwzsj.com/article/jjghii.html