多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > hadoop-2.2.0配置eclipse插件(windows和linux平臺)

hadoop-2.2.0配置eclipse插件(windows和linux平臺)

來源:程序員人生   發布時間:2014-10-03 08:00:00 閱讀次數:2056次

目前配置eclipse插件主要有兩個版本,一個是在windows下重新編譯配置,另一個是在linux在重新配置編譯。

下面逐步講解在linux下編譯-配置eclipse插件的過程。

  1. 環境:

    Ubuntu 12.04 64bit 3.2.0-29-generic eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz Apache Ant(TM) version 1.8.2 JDK Version 1.7.0_67
  2. 安裝前準備:

    Ant、jdk、eclipse、Apache hadoop 2.2.0安裝包都準備好
    eclipse插件源代碼準備好(https://github.com/winghc/hadoop2x-eclipse-plugin)
    在集群上把Apache hadoop 2.2.0部署好

  3. 進行插件編譯:

    • 將Apache hadoop 2.2.0的安裝包和eclipse拷至任意目錄,如/home/hadoop/Downloads/hadoop-2.2.0和/home/hadoop/Downloads/eclipse. 切記:整個路徑中不能出現任何空格,否則ant編譯過程會報錯!

    • 進入插件目錄進行編譯,如插件放在/home/hadoop/Downloads/hadoop2x-eclipse-plugin

      $ cd /home/hadoop/Downloads/hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin $ ant jar -Dversion=2.2.0 -Declipse.home=/home/hadoop/Downloads/eclipse -Dhadoop.home=/home/hadoop/Downloads/hadoop-2.2.0

      注意:其中-Declipse.home和-Dhadoop.home需要指定eclipse的安裝目錄和hadoop安裝文件的存放目錄,切記:這兩個目錄的全路徑中都不能存在空格

      接下來就是漫長的等待了,主要慢的是target:ivy-download,ivy-resolve-common這兩步。
      最后生成的插件在:
      hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.2.0.jar

  4. 接下來進行插件的安裝與配置

    • 將hadoop-eclipse-plugin-2.2.0.jar拷貝到eclipse的plugins目錄下,啟動eclipse

    • 進入Window-->Preference配置根目錄:

    • 進入Window-->Open Perspective-->other-->Map/Reduce打開Map/Reduce窗口

    • 打開Map/Reduce View,右鍵,選擇New hadoop location

      配置location

      注意:MR Master和DFS Master配置必須和mapred-site.xml和core-site.xml等配置文件一致

    • 打開Project Explorer,查看HDFS文件系統:

    • 新建Mapreduce項目

    • 創建MapReduce程序

  5. 編寫WordCount程序測試插件使用:

    • 在MapReduce工程下新建WordCount.java程序,代碼如下:

      import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; import org.apache.hadoop.util.*; public class WordCount { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, one); } } } public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { JobConf conf = new JobConf(WordCount.class); conf.setJobName("wordcount"); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(Map.class); conf.setReducerClass(Reduce.class); conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); } }
    • 配置運行時參數:右鍵-->Run as-->Run Confiugrations

    • 將程序放在hadoop集群上運行:右鍵-->Runas -->Run on Hadoop,最終的輸出結果會在HDFS相應的文件夾下顯示。至此,Linux下hadoop-2.2.0 eclipse插件配置完成。

  6. 配置過程中出先的問題:

    • 在eclipse中無法向文件HDFS文件系統寫入的問題,這將直接導致eclipse下編寫的程序不能在hadoop上運行。

      網上的解決方案有三個:
      a. 取消hadoop hdfs的用戶權限檢查。打開conf/hdfs-site.xml,找到dfs.permissions屬性,將其修改為false(默認為true).[我當初的配置文件中寫成了dfs.permission,雖然這個值修改成了false,但依舊無效,從而導致這個環境配置不成功,淚奔了]

      b. 修改hadoop location參數,在advanced parameter選項卡中,找到hadoop.job.ugi選項,將此選項改為啟動hadoop的用戶名即可(注意,第一次設置的時候可能沒有hadoop.job.ugi參數,在報錯后去看就有了)[其實我怎么也沒找到這個選項]

      c. 因為eclipse使用hadoop插件提交作業是,會默認以DrWho身份去將作業寫入hdfs文件系統中,對應的也是HDFS上的/usr/hadoop,由于DrWho用戶對hadoop目錄并沒有寫入權限,所以導致異常發生。解決方法為:放開hadoop目錄的權限,命令如下:$hadoop fs -chmod 777 [當初配置的時候,只放開了幾個目錄的權限,從而到導致作業無法提交寫入到HDFS中,哭死了...]

    • 另外,eclipse插件的使用可能跟eclipse版本有關系,我使用的是eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz版本的eclipse,在ubuntu 12.04 64bit下是可以使用的


下面來講解一些在Windows下編譯配置eclipse插件

  1. 環境:

    Windows 7 64bit 專業版 eclipse-standard-luna-R-win32-x86_64 Apache Ant(TM) version 1.9.4 JDK Version 1.7.0_67
  2. 安裝前準備:

    Ant、jdk、eclipse、Apache hadoop 2.2.0安裝包都準備好
    eclipse插件源代碼準備好(https://github.com/winghc/hadoop2x-eclipse-plugin)
    在集群上把Apache hadoop 2.2.0部署好

  3. 進行插件編譯:

    • 將Apache hadoop 2.2.0的安裝包和eclipse拷至任意目錄,如E:hadoop-2.2.0和E:eclipse. 切記:整個路徑中不能出現任何空格,否則ant編譯過程會報錯!

    • 進入插件目錄進行編譯,如插件放在E:hadoop2x-eclipse-plugin

      $ cd hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin $ ant jar -Dversion=2.2.0 -Declipse.home=E:eclipse -Dhadoop.home=E:hadoop-2.2.0

      注意:其中-Declipse.home和-Dhadoop.home需要指定eclipse的安裝目錄和hadoop安裝文件的存放目錄,切記:這兩個目錄的全路徑中都不能存在空格

      接下來就是漫長的等待了,主要慢的是target:ivy-download,ivy-resolve-common這兩步。
      最后生成的插件在:
      hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.2.0.jar

  4. 配置window 7中hadoop環境變量:

    • 在Window7中設置%HADOOP_HOME%,并把%HADOOP_HOME%in加入PATH環境變量[這一步如果不做的話,hadoop程序運行的過程中會出現空指針異常,從而到時程序運行失敗]

    • 另外還需要下載一個插件https://github.com/srccodes/hadoop-common-2.2.0-bin,解壓后把下載的bin目錄覆蓋%HADOOP_HOME%in目錄下的文件

      注意,這兩步是必須的,否則將導致各種奇葩錯誤

      接下來的步驟與Linux版本配置方案中的4、5步驟相同

  5. 配置過程中出現的問題:

    • 在使用ant編譯eclipse插件的時候,會出現一堆警告,如

      [javac] E:hadoop-2.2.0sharehadoophdfshadoop-hdfs-2.2.0.jar(org/apache/h adoop/hdfs/DistributedFileSystem.class): 警告: 無法找到類型 'LimitedPrivate' 的 注釋方法 'value()' [javac] E:hadoop-2.2.0sharehadoopcommonhadoop-common-2.2.0.jar(org/apac he/hadoop/fs/FileSystem.class): 警告: 無法找到類型 'LimitedPrivate' 的注釋方法 ' value()' [javac] E:hadoop-2.2.0sharehadoopcommonhadoop-common-2.2.0.jar(org/apac he/hadoop/fs/FileSystem.class): 警告: 無法找到類型 'LimitedPrivate' 的注釋方法 ' value()' [javac] E:hadoop-2.2.0sharehadoopcommonhadoop-common-2.2.0.jar(org/apac he/hadoop/fs/FileSystem.class): 警告: 無法找到類型 'LimitedPrivate' 的注釋方法 ' value()' [javac] E:hadoop-2.2.0sharehadoopcommonhadoop-common-2.2.0.jar(org/apac he/hadoop/fs/FSDataInputStream.class): 警告: 無法找到類型 'LimitedPrivate' 的注 釋方法 'value()' [javac] E:hadoop-2.2.0sharehadoopcommonhadoop-common-2.2.0.jar(org/apac he/hadoop/fs/FSDataOutputStream.class): 警告: 無法找到類型 'LimitedPrivate' 的注 釋方法 'value()' [javac] 注: 某些輸入文件使用或覆蓋了已過時的 API。 [javac] 注: 有關詳細信息, 請使用 -Xlint:deprecation 重新編譯。 [javac] 注: 某些輸入文件使用了未經檢查或不安全的操作。 [javac] 注: 有關詳細信息, 請使用 -Xlint:unchecked 重新編譯。 [javac] 7 個警告

      但最終還是會編譯成功的,這些警告不用去管

    • 插件的安裝成功與否與eclipse版本有關系,我以前使用的是windows下64bit j2ee版本的eclipse,將其與插件一個通過ant編譯后發現eclipse無法識別插件。

    • 另外在下載eclipse插件的源代碼中有一個已經編譯好的eclipse插件,該插件是不能使用的,放在eclipse中使用的話會報classNotDefException

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美性受一区二区三区 | 一区二区三区鲁丝不卡麻豆 | 92精品国产自产在线观看48页 | 嫩草影院在线观看未满十八 | 一二三四视频免费观看在线看 | 国产福利视频一区 | 日韩免费一区二区三区在线 | 一级做a爰性色毛片免费 | 精品自在线 | a天堂视频| 午夜影院免费看 | 97影院午夜在线观看琪琪 | 最近手机中文字幕高清1 | h 在线播放| 婷婷综合缴情亚洲五月伊 | 亚洲成a人片 | 亚洲欧美四级在线播放 | 中文字幕视频在线免费观看 | 午夜亚洲视频 | 国产高清免费不卡观看 | 老司机成人 | 亚洲国产欧美在线人网站 | 国产欧美亚洲专区第一页 | 456在线观看 | 亚洲国产精品一区二区久久 | 亚洲视频第一页 | 亚洲图片在线欧美专区图片 | 性欧美69式xxxxx | 免费一级毛片在线视频观看 | 国产精品一区二区三 | 亚洲 自拍 另类 欧美 综合 | 爱爱视频免费网址 | 国产成人精品免费久久久久 | 国产成人免费视频精品一区二区 | 国产一区二区日韩欧美在线 | 男女激情视频网站 | 日韩人成 | nnnwww在线观看视频 | 国产高清精品久久久久久久 | 欧美日本一区二区三区生 | 久久手机看片 |