hadoop开发运行环境配置及相关问题总结

                               

                                                           

                         Hadoop环境安装配置

一、软件准备

   1.软件:Unbuntu11.10 , jdk1.6以上, hadoop-0.20.203, eclipseHelilo3.6.2版,

   及修改过的hadoop-0.20.203-plugin.jar插件。

   2.硬件:3pc机,主节点尽量配置好点的。

          ip如下:192.168.1. 11 namenode  (域名用来识别机器,namenode为主节点)

                  192.168.1.4  datanode1 

                 192.168.1.6   datanode2  

二、安装过程简介

   1、先在各台机器上安装unbuntu系统。首先整理出一个磁盘,安装双系统,使用wubi安装,比较简单。安装时尽量断开网线,会加快安装速度。安装时各台机器尽量取一致的用户名比如都用 hadoop作为用户名。

   2. 安装完配置如下:首先对每台机机器host进行配置:

       1)命令行输入命令: sudo gedit  /etc/hosts    将上面的ip和对应的域名写入,这样就可以用host名来访问各个节点了。 

       2)将用户名hadoop加为特权用户:sudo gedit /etc/sudoers

                      在   root    ALL=(ALL:ALL) ALL 加入如下语句:

                         hadoop  ALL=(ALL:ALL) ALL

                                 

   3.安装ssh

        1)自动安装,各个节点机器都要安装: sudo apt-get install openssh-server 

          安装之前可以使用 which  ssh   which ssd  which ssh-keygen验证是否已经安装过ssh

        2)namenode节点上生成公钥:  ssh-keygen -t rsa 

         3)加入信任列表中:

             cat /home/hadoop/is_rsa.pub>>/home/hadoop/.ssh/authorized_keys

         4)查看:

             [hadoop@hadoop1 ~]$ ls .ssh/ 

                      authorized_keys  id_rsa  id_rsa.pub  known_hosts 

         5)重新载入:sudo /etc/init.d/ssh reload

         6)将id_rsa.pub拷贝到各个datanode节点上:

              进到各个数据节点使用命令将公钥从namenode节点拷过来:

              sudo scp hadoop@namenode /home/hadoop/.ssh/id_rsa.pub   /home/hadoop/.shh/

              加入到信任列表里:cat  /home/hadoop/is_rsa.pub>>/home/hadoop/.ssh/authorized_keys

          7)验证:ssh datanode1  ssh datanode2   ssh namenode  查看结果是否是通的。

              第一次连接会让确认,之后就不用了。验证成功后 exit退出。之后就可以 。

              像用用远程一样的使用各个datanode节点机器了

     4、安装配置jdk

              1)下载jdk直接解压到/home/hadoop目录下或者放到好记的目录下,修改目录名字为jdk1.6

              2)配置环境变量:sudo gedit /etc/profile

              

           

            3使环境变量生效 source /etc/profile 

            4)验证jdk是否安装配置成功:java -version

            5)通过ssh进到各个datanode节点,将jdk目录和配置文件分别拷到各个节点上。   sudo scp hadoop@namenode /home/hadoop/jdk1.6  /home/hadoop/

         sudo scp hadoop@namenode /etc/profile /etc/

             6)验证各个节点上的jdk环境是否正确。

   5、安装hadoop

       1)下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203

        2)按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中

           sudo gedit/etc/profile

        3)修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。

            a.进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME

              修改为:JAVA_HOME=/home/hadoop/jdk1.6

            b.修改core-site.xml文件配置如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://namenode:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name> <!-hadoop的临时文件位置->

<value>/home/hadoop/tmp</value>

</property>

</configuration>

         c、修改hdfs-site.xml文件如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.replication</name><!-节点个数配置,根据你自己的节点来设定->

<value>2</value>

</property>

</configuration>

         d、修改mapred-site.xml文件如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>namenode:9001</value>

</property>

</configuration>

  e、在mastersslave文件中分别配置主节点和各个数据节点:

      masters:中写入namenode

      slaves: 写入datanode1

                            datanode2

4)将hadoop-0.20.203目录拷贝到datanode1datanode2节点上。

   使用命令:ssh datanode1

             sudo scp hadoop@namenode /home/hadoop/hadoop-020.203 /home/hadoop/

             exit

             ssh datanode2

             sudo scp hadoop@namenode /home/hadoop/hadoop-020.203 /home/hadoop/

             exit

5)格式化hdfs系统 在主节点下执行hadoop fs namenode -format

                                start-all.sh 启动hadoop服务,关闭的话用stop-all.sh

                                在主节点下输入jps验证:

                         10492 Jps

                         2132 JobTracker

                         1817 NameNode

                          2980 

                          2059 SecondaryNameNode      

                                 在数据节点datanode1datanode2中输入jps验证进程是否启动。

                           

 

出现上述结果则表明hadoop环境配置成功了。

6.在hadoop集群环境中运行wordcount程序。

   1hadoop中附带了小事例可以验证集群环境。

   hadoop-0.20.203/hadoop-examples-0.20.203.0.jarwordcount事例程序。

   2)新建一个test.txt文件,在里面拷入文字。放到/home/hadoop/下,保证你的hadoop下的bin目录已经加到PATH环境变量中,否则无法直接执行hadoop命令

3)通过命令hadoop fs -put /home/hadoop/test.txt /  test.txt传到hdfs文件系统中

4)执行命令

hadoop-0.20.203/hadoop-examples-0.20.203.0.jar wordcount /test.txt /out 将会在集群中运行词频统计程序

 5)查看输出结果

   hadoop fs -cat /out/part-r-00000 既可以看到词频统计的结果,也可以通过

  hadoop fs -get /out/part-r-00000 /home/hadoop/out.txt将运行结果下载到本地文件系统中查看。

6)当运行下个程序时需要将输出结果文件夹里的内容清空,否则会出现错误。 

   hadoop fs -rmr /out

             至此hadoop集群运行环境基本配置完成!!!!

              在eclipse下通过插件开发运行mapreduce程序。

1.安装eclipse3.6.2

2.下载修改过的hadoop-0.20.203-plugins.jar插件,

hadoop-0.20.203\contrib\eclipse-plugin\也有一个对应的开发插件,但笔者经过验证此插件基本不能用,需要自己手动修改。修改的连接教程:

http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada   或者是到csdn上下载

http://download.csdn.net/download/zhb_mccoy/3949146

3.将上述插件放到eclipseplugins目录中,重启eclipse则会出现蓝色的小象图标,然后再eclipse中的首选项配置中,将所使用的hadoop路径加进来,版本要与集群中的版本一致,

否则运行多个版本的hadoop时会导致错误。

4.切换到map/reduce透视图

5.通过show views将新建一个hadoop location地址,在输入界面中

6.

 配置如下:输入的参数要与你的集群中配置文件core-site.xml hdfs.xml map-red.xml文件中的一致。

 7.查看是否连接到集群中

8.新建一个map/reduce项目,将源码文件中自带的wordcount.java程序加入,然后在运行参数配置中给出hdfs的路径

  比如:   hdfs://namenode:9000/test.txt hdfs://namenode:9000/oddd  运行即可,然后刷新左边的dfs location即可看到相应的运行结果。

9.windows下和ubuntu下的eclipse连接基本相同不过要注意一点就是hadoop-0.20.203版本中进行了优化,所以如果windows系统的用户名如果与hadoop集群的用户名不一致可能会出现文件访问权限的问题,所以要修改windows系统的用户名与集群保持一致。

10.关于mahout的运行基本与wordcount运行的过程基本一致,下载mahout的源代码或者直接调用对应jar包,在集群中运行就行了。

               至此通过eclipse插件连接集群运行map/reduce程序基本完成。                          

               hadoop集群配置的相关问题和资料集锦

1. 当出现无法向hdfs中上传文件时,可能是由于运行了多个版本的hadoop程序所导致的namespaceID不一致,所以要删除对应的目录中的文件

     /home/hadoop/tmp/hdfs/data将对应的namenode节点,datanode节点中的文件清空,然后重新格式化hdfs文件系统,重新启动服务即可。

2. windows下通过eclipse插件向hadoop-020.203版本的集群中提交代码时要把windows系统的用户名修改为集群环境的用户名才能提交。

3. windows下无法进行job分配时要再程序中加入如下手动指定mapred地址,要与配置中的保持一致:

       Configuration conf = new Configuration();

       conf.set("mapred.job.tracker""namenode:9001");

 4.其它资料:

      -------------------------------------------2012.12.6------------------------------------------------------- 

--------------------------------------hadoop环境搭建资料-------------------------------------------

http://www.360doc.com/content/11/0506/00/18042_114694337.shtml

http://www.360doc.com/content/11/0506/00/18042_114694222.shtml

http://dngood.blog.51cto.com/446195/775368

http://blog.csdn.net/sony315/article/details/6865416

http://www.cnblogs.com/hiddenfox/archive/2011/11/26/2264461.html  eclipse 开发环境

http://phz50.iteye.com/blog/932373 开发环境

--------------------------------------------------------------------------------------------------------------

http://blog.csdn.net/cybercode/article/details/7081552           win7下安装hadoop

http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html             Hadoop-eclipse-plugin插件安装

http://weixiaolu.iteye.com/blog/1402919 Hadoop                   作业提交多种方案具体流程详解

http://blog.csdn.net/shirdrn/article/details/6562292          Hadoop格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain

http://blog.sina.com.cn/s/blog_575b0ca501016z6i.html             Hadoop-eclipse-plugin的运行历险

http://cloudtech.iteye.com/blog/1614791                   Win7 eclipse Hadoop Failed to set permissions of path 

http://blog.csdn.net/bhq2010/article/details/7364041       Win7 eclipse Hadoop Failed to set permissions of path

http://blog.chinaunix.net/uid-21335514-id-1989431.html                  hadoop的配置问题(windowseclipse

http://blog.csdn.net/cp01ter/article/details/7198611      配置hadoop遇到的错误(包括windows下用eclipse配置hadoop)

http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada    关于Hadoop-0.20.203.0通过Eclipse连接编程的问题

http://blog.csdn.net/hunkyguy/article/details/8089148     解决wineclipselinuxhadoop集群连不上的问题

http://blog.csdn.net/aidayei/article/details/6555255      hadoop集群搭建

http://www.cnblogs.com/riverphoenix/archive/2012/05/21/2511382.html    hadoop错误

http://blog.csdn.net/arbel/article/details/7674750             编译HadoopEclipse插件(Windows) 

http://blog.sina.com.cn/s/blog_72827fb10101a3dx.html           hbaseerror总结

http://www.cnblogs.com/siwei1988/archive/2012/07/10/2585002.html          Hadoop 常见问题集锦

http://www.cnblogs.com/hiddenfox/archive/2011/11/26/2264461.html           eclipse中配置hadoop插件

http://download.csdn.net/download/zhb_mccoy/3949146  0.20.203              修改后的插件下载

----------------------------------------------2012.12.7--------------------------------------------------------

1.hadoop异常“could only be replicated to 0 nodes, instead of 1” 解决

  http://blog.csdn.net/zuiaituantuan/article/details/6533867

  http://blog.csdn.net/foamflower/article/details/5980406

  http://hi.baidu.com/xiaomi/item/49d16a90720d16f629164727

2.Hadoop集群配置(最全面总结)

  http://blog.csdn.net/hguisu/article/details/7237395

3.关于Hadoop-0.20.203.0通过Eclipse连接编程的问题 修改eclipse插件

  http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada

4.编译HadoopEclipse插件(Windows)    http://blog.csdn.net/arbel/article/details/7674750 

5.Hadoop-eclipse-plugin插件安装       http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html 

6.双系统  http://wenku.baidu.com/view/a9263b160b4e767f5acfce6e.html

7.http://blog.csdn.net/larrylgq/article/details/7580488  hadoop dfs    权限问题

---------------------------------------------------2012.12.8-----------------------------------------------

1.直接打包上传后运行

hadoop jar ~/hadoop-0.20.203/hadoop-examples-0.20.203.0.jar wordcount  /test.txt /output

2.参数

hdfs://namenode:9000/test.txt  hdfs://namenode:9000/out

3.Plug-in org.eclipse.jdt.ui was unable to load

Eclipse:Could not create the view: Plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.

使用Eclipse时,遇到了如下的异常,工作空间(workspace)打不开:Could not create the view: Plug-inorg.eclipse.jdt.ui was unable to load class  org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.***

解决方案就是:删除workspace下的.metadata文件夹,重新打开EclipseOK了。或者换一个工作空间! 

4.无法在模块路径中找到主题引

ubuntu11.10安装后qtcreator编译运行,发现出现这个错误

Gtk-WARNING **: 无法在模块路径中找到主题引擎:“pixmap”“

通过网上搜索之后,发现可能是gtk引擎除了问题,

在终端下输入sudo apt-get install gtk2-engines-pixbuf即可解决

                  

         

              

             

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值