hadoop开发方式总结及操作指导

http://www.aboutyun.com/thread-6950-1-1.html

1、2方法中Eclipse是运行在linux中,3方法中Eclipse是运行在widows中
===================================================================
1、使用hadoop-Eclipse插件(使用插件时可以直接在Eclipse中查看并操作hadoop集群的dfs文件系统)
      a、下载hadoop-Eclipse-plugin插件,把该插件添加到Eclipse安装目录下的plugin目录,重启Eclipse。
      b、新建hadoop项目
            new-->other-->Map/Reduce project,新建hadoop项目Map/Reduce project
      c、 配置hadoop项目环境使之可以连接到hadoop集群Windouàshow view àotherà map/reduce loactions,
       新建一个map/rudece location ,配置 Map/Reduce Master的Host 和port还有 DFS Master的Port ,这里需要和
                hadoop集群的配置相吻合。其中Map/Reduce Master 的Host对应hadoop集群namenode机器的主机名或者ip,port
               对应mapred-site.xml中mapred.jobhistory.address属性的值的端口。
                DFS Master 的Port 对应core-site.xml中fs.defaultFS属性的值的端口。
        d、运行项目(新建一个类如MyWordCount,把hadoop自带的wordcount demo 代码复制到到MyWordCount类中),运行方
               式有两种,把项目打成jar包,放到hadoop集群中去运行,如在hadoop集群中运行wordcount demo
               一样。另外一种是直接在Eclipse中运行。
               在Eclipse中运行方式:右击MyWordCount-->run as -->run configrations-->arguments
               在argument中配置hadoop文件系统dfs中的文件地址已经统计结果的输出地址:
               hdfs://4Master:9000/user/hadoop/inputData/text 
               hdfs://4Master:9000/user/hadoop/outputData4
         e、在Eclipse中运行完后可以直接在Eclipse中查看dfs文件系统的输出文件,也可以在hadoop集群中查看输出文件信息
               如下:
               [hadoop@4Master bin]$ hdfs dfs -ls
           Found 2 items
           drwxr-xr-x   - hadoop supergroup          0 2014-09-01 17:32 inputData
           drwxr-xr-x   - hadoop supergroup          0 2014-09-02 09:42 outputData4
           [hadoop@4Master bin]$ hdfs dfs -ls outputData4
           Found 2 items
           -rw-r--r--   3 hadoop supergroup          0 2014-09-02 09:42 outputData4/_SUCCESS
           -rw-r--r--   3 hadoop supergroup         28 2014-09-02 09:42 outputData4/part-r-00000
           [hadoop@4Master bin]$ hdfs dfs -cat outputData4/*
           demo     1
           hadoop     1
           is     2
           this     2
       ps:其中输入文件是inputData/text
           [hadoop@4Master bin]$ hdfs dfs -cat inputData/text
           this is hadoop
           this is demo
           [hadoop@4Master bin]

2、不使用插件时开发(此例子中,hadoop集群部署在linux中,Eclipse运行在hadoop集群的namenode机器中,Eclipse运行在windows中时此方法
      会出错,因为windows系统需要安装cygwin模拟linux的环境,否则当Eclipse运行在windows中进行开发时,只能使用插件或者打成jar包放到
     hadoop集群中去运行)
     关于不使用hadoop-Eclipse插件时,只要导入外部jar包就可以,这里jar包都在哪里呢?
     a、新建一个普通的java project项目。
     b、导入hadoop集群的外部jar包。右击项目-->build path-->configure build path-->libraries-->add external jars
          以CDH4.7为例子,在${HADOOP_HOME}/hadoop下的各个子目录下包含了hadoop所需要的全部jar包(一般导入common和mapreduce1
          两个目录下的jar包和这两个目录下的lib目录下的jar包基本满足需要,common和mapreduce1下的lib包下的jar包有很多是相同的),直接
          导入这些jar包就可以了。
     c、运行项目(新建一个类如MyWordCount,把hadoop自带的wordcount demo 代码复制到到MyWordCount类中),运行方
             式有两种,把项目打成jar包,放到hadoop集群中去运行,如在hadoop集群中运行wordcount demo
             一样。另外一种是直接在Eclipse中运行。
             在Eclipse中运行方式:右击MyWordCount-->run as -->run configrations-->arguments
             在argument中配置hadoop文件系统dfs中的文件地址已经统计结果的输出地址:
              hdfs://192.168.27.151:9000/user/hadoop/inputData/text
              hdfs://192.168.27.151:9000/user/hadoop/outputData4
       d、在Eclipse中运行完毕时可以在hadoop集群中查看dfs文件系统上的输出文件(如1使用插件开发时的e步骤一致,除不能在Eclipse中查看和
             操作hadoop集群的dfs文件)

3、Eclipse真正的离群开发(Eclipse运行在windows系统中,当使用和不使用插件时开发步骤和1、2类似)
      参考网址:http://blog.csdn.net/aaa1117a8w5s6d/article/details/20918221
     需要在Eclipse中安装cygwin,模拟linux环境,否则直接在windows中Eclipse连接到linux系统的hadoop集群,会报以下错误:
     Cannot run program "cygpath": CreateProcess error=2
       hadoop集群在linux,eclipse调试环境是在windows,需要安装一个linux模拟器“cygwin”来支持程序的运行。
     在windows开发服务器上安装好cygwin,然后在环境变量中添加cygwin的bin目录,比如“D:\Program\cygwin\bin”,成功后重启
     myeclipse运行代码,问题得以解决。
     注意是在系统环境变量的Path上加入“D:\Program\cygwin\bin”这样我们就行像在linux上运行命令一样在windows的dos窗口下执行ls,cd等命令。




猜你喜欢

转载自appleses.iteye.com/blog/2112122