378 发表于 2016-12-6 07:35:30

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集群中查看输出文件信息
               如下:
               $ 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
         $ 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
         $ hdfs dfs -cat outputData4/*
         demo   1
         hadoop   1
         is   2
         this   2
       ps:其中输入文件是inputData/text
         $ hdfs dfs -cat inputData/text
         this is hadoop
         this is demo
         

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等命令。



页: [1]
查看完整版本: hadoop开发方式总结及操作指导