1. 程式人生 > >在Eclipse開發環境下搭建Hadoop2.6.0

在Eclipse開發環境下搭建Hadoop2.6.0

Eclipse版本Luna 4.4.1

安裝外掛hadoop-eclipse-plugin-2.6.0.jar,下載後放到eclipse/plugins目錄即可。

2. 配置外掛

2.1 配置hadoop主目錄

解壓縮hadoop-2.6.0.tar.gz到C:\Downloads\hadoop-2.6.0,在eclipse的Windows->Preferences的Hadoop Map/Reduce中設定安裝目錄。

2.2 配置外掛

開啟Windows->Open Perspective中的Map/Reduce,在此perspective下進行hadoop程式開發。

    

開啟Windows->Show View中的Map/Reduce Locations,如下圖右鍵選擇New Hadoop location…新建hadoop連線。

確認完成以後如下,eclipse會連線hadoop叢集。

如果連線成功,在project explorer的DFS Locations下會展現hdfs叢集中的檔案。

3. 開發hadoop程式

3.1 程式開發

開發一個Sort示例,對輸入整數進行排序。輸入檔案格式是每行一個整數。

 1 package com.ccb;
 2 
 3 /**
 4  * Created by hp on 2015-7-20.
5 */ 6 7 import java.io.IOException; 8 9 import org.apache.hadoop.conf.Configuration; 10 import org.apache.hadoop.fs.FileSystem; 11 import org.apache.hadoop.fs.Path; 12 import org.apache.hadoop.io.IntWritable; 13 import org.apache.hadoop.io.Text; 14 import org.apache.hadoop.mapreduce.Job; 15 import
org.apache.hadoop.mapreduce.Mapper; 16 import org.apache.hadoop.mapreduce.Reducer; 17 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 18 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 19 20 public class Sort { 21 22 // 每行記錄是一個整數。將Text文字轉換為IntWritable型別,作為map的key 23 public static class Map extends Mapper<Object, Text, IntWritable, IntWritable> { 24 private static IntWritable data = new IntWritable(); 25 26 // 實現map函式 27 public void map(Object key, Text value, Context context) throws IOException, InterruptedException { 28 String line = value.toString(); 29 data.set(Integer.parseInt(line)); 30 context.write(data, new IntWritable(1)); 31 } 32 } 33 34 // reduce之前hadoop框架會進行shuffle和排序,因此直接輸出key即可。 35 public static class Reduce extends Reducer<IntWritable, IntWritable, IntWritable, Text> { 36 37 //實現reduce函式 38 public void reduce(IntWritable key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { 39 for (IntWritable v : values) { 40 context.write(key, new Text("")); 41 } 42 } 43 } 44 45 public static void main(String[] args) throws Exception { 46 Configuration conf = new Configuration(); 47 48 // 指定JobTracker地址 49 conf.set("mapred.job.tracker", "192.168.62.129:9001"); 50 if (args.length != 2) { 51 System.err.println("Usage: Data Sort <in> <out>"); 52 System.exit(2); 53 } 54 System.out.println(args[0]); 55 System.out.println(args[1]); 56 57 Job job = Job.getInstance(conf, "Data Sort"); 58 job.setJarByClass(Sort.class); 59 60 //設定Map和Reduce處理類 61 job.setMapperClass(Map.class); 62 job.setReducerClass(Reduce.class); 63 64 //設定輸出型別 65 job.setOutputKeyClass(IntWritable.class); 66 job.setOutputValueClass(IntWritable.class); 67 68 //設定輸入和輸出目錄 69 FileInputFormat.addInputPath(job, new Path(args[0])); 70 FileOutputFormat.setOutputPath(job, new Path(args[1])); 71 System.exit(job.waitForCompletion(true) ? 0 : 1); 72 } 73 }

3.2 配置檔案

把log4j.properties和hadoop叢集中的core-site.xml加入到classpath中。我的示例工程是maven組織,因此放到src/main/resources目錄。

程式執行時會從core-site.xml中獲取hdfs地址。

3.3 程式執行

右鍵選擇Run As -> Run Configurations…,在引數中填好輸入輸出目錄,執行Run即可。

 執行日誌:

  1 hdfs://192.168.62.129:9000/user/vm/sort_in
  2 hdfs://192.168.62.129:9000/user/vm/sort_out
  3 15/07/27 16:21:36 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
  4 15/07/27 16:21:36 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
  5 15/07/27 16:21:36 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
  6 15/07/27 16:21:36 WARN mapreduce.JobSubmitter: No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
  7 15/07/27 16:21:36 INFO input.FileInputFormat: Total input paths to process : 3
  8 15/07/27 16:21:36 INFO mapreduce.JobSubmitter: number of splits:3
  9 15/07/27 16:21:36 INFO Configuration.deprecation: mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address
 10 15/07/27 16:21:37 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local1592166400_0001
 11 15/07/27 16:21:37 INFO mapreduce.Job: The url to track the job: http://localhost:8080/
 12 15/07/27 16:21:37 INFO mapreduce.Job: Running job: job_local1592166400_0001
 13 15/07/27 16:21:37 INFO mapred.LocalJobRunner: OutputCommitter set in config null
 14 15/07/27 16:21:37 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
 15 15/07/27 16:21:37 INFO mapred.LocalJobRunner: Waiting for map tasks
 16 15/07/27 16:21:37 INFO mapred.LocalJobRunner: Starting task: attempt_local1592166400_0001_m_000000_0
 17 15/07/27 16:21:37 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
 18 15/07/27 16:21:37 INFO mapred.Task:  Using ResourceCalculatorProcessTree : [email protected]
 19 15/07/27 16:21:37 INFO mapred.MapTask: Processing split: hdfs://192.168.62.129:9000/user/vm/sort_in/file1:0+25
 20 15/07/27 16:21:37 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
 21 15/07/27 16:21:37 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
 22 15/07/27 16:21:37 INFO mapred.MapTask: soft limit at 83886080
 23 15/07/27 16:21:37 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
 24 15/07/27 16:21:37 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
 25 15/07/27 16:21:37 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 26 15/07/27 16:21:38 INFO mapred.LocalJobRunner: 
 27 15/07/27 16:21:38 INFO mapred.MapTask: Starting flush of map output
 28 15/07/27 16:21:38 INFO mapred.MapTask: Spilling map output
 29 15/07/27 16:21:38 INFO mapred.MapTask: bufstart = 0; bufend = 56; bufvoid = 104857600
 30 15/07/27 16:21:38 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214372(104857488); length = 25/6553600
 31 15/07/27 16:21:38 INFO mapred.MapTask: Finished spill 0
 32 15/07/27 16:21:38 INFO mapred.Task: Task:attempt_local1592166400_0001_m_000000_0 is done. And is in the process of committing
 33 15/07/27 16:21:38 INFO mapred.LocalJobRunner: map
 34 15/07/27 16:21:38 INFO mapred.Task: Task 'attempt_local1592166400_0001_m_000000_0' done.
 35 15/07/27 16:21:38 INFO mapred.LocalJobRunner: Finishing task: attempt_local1592166400_0001_m_000000_0
 36 15/07/27 16:21:38 INFO mapred.LocalJobRunner: Starting task: attempt_local1592166400_0001_m_000001_0
 37 15/07/27 16:21:38 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
 38 15/07/27 16:21:38 INFO mapred.Task:  Using ResourceCalculatorProcessTree : [email protected]
 39 15/07/27 16:21:38 INFO mapred.MapTask: Processing split: hdfs://192.168.62.129:9000/user/vm/sort_in/file2:0+15
 40 15/07/27 16:21:38 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
 41 15/07/27 16:21:38 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
 42 15/07/27 16:21:38 INFO mapred.MapTask: soft limit at 83886080
 43 15/07/27 16:21:38 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
 44 15/07/27 16:21:38 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
 45 15/07/27 16:21:38 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 46 15/07/27 16:21:38 INFO mapred.LocalJobRunner: 
 47 15/07/27 16:21:38 INFO mapred.MapTask: Starting flush of map output
 48 15/07/27 16:21:38 INFO mapred.MapTask: Spilling map output
 49 15/07/27 16:21:38 INFO mapred.MapTask: bufstart = 0; bufend = 32; bufvoid = 104857600
 50 15/07/27 16:21:38 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214384(104857536); length = 13/6553600
 51 15/07/27 16:21:38 INFO mapred.MapTask: Finished spill 0
 52 15/07/27 16:21:38 INFO mapred.Task: Task:attempt_local1592166400_0001_m_000001_0 is done. And is in the process of committing
 53 15/07/27 16:21:38 INFO mapred.LocalJobRunner: map
 54 15/07/27 16:21:38 INFO mapred.Task: Task 'attempt_local1592166400_0001_m_000001_0' done.
 55 15/07/27 16:21:38 INFO mapred.LocalJobRunner: Finishing task: attempt_local1592166400_0001_m_000001_0
 56 15/07/27 16:21:38 INFO mapred.LocalJobRunner: Starting task: attempt_local1592166400_0001_m_000002_0
 57 15/07/27 16:21:38 INFO mapreduce.Job: Job job_local1592166400_0001 running in uber mode : false
 58 15/07/27 16:21:38 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
 59 15/07/27 16:21:38 INFO mapreduce.Job:  map 100% reduce 0%
 60 15/07/27 16:21:38 INFO mapred.Task:  Using ResourceCalculatorProcessTree : [email protected]
 61 15/07/27 16:21:38 INFO mapred.MapTask: Processing split: hdfs://192.168.62.129:9000/user/vm/sort_in/file3:0+8
 62 15/07/27 16:21:39 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
 63 15/07/27 16:21:39 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
 64 15/07/27 16:21:39 INFO mapred.MapTask: soft limit at 83886080
 65 15/07/27 16:21:39 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
 66 15/07/27 16:21:39 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
 67 15/07/27 16:21:39 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 68 15/07/27 16:21:39 INFO mapred.LocalJobRunner: 
 69 15/07/27 16:21:39 INFO mapred.MapTask: Starting flush of map output
 70 15/07/27 16:21:39 INFO mapred.MapTask: Spilling map output
 71 15/07/27 16:21:39 INFO mapred.MapTask: bufstart = 0; bufend = 24; bufvoid = 104857600
 72 15/07/27 16:21:39 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214388(104857552); length = 9/6553600
 73 15/07/27 16:21:39 INFO mapred.MapTask: Finished spill 0
 74 15/07/27 16:21:39 INFO mapred.Task: Task:attempt_local1592166400_0001_m_000002_0 is done. And is in the process of committing
 75 15/07/27 16:21:39 INFO mapred.LocalJobRunner: map
 76 15/07/27 16:21:39 INFO mapred.Task: Task 'attempt_local1592166400_0001_m_000002_0' done.
 77 15/07/27 16:21:39 INFO mapred.LocalJobRunner: Finishing task: attempt_local1592166400_0001_m_000002_0
 78 15/07/27 16:21:39 INFO mapred.LocalJobRunner: map task executor complete.
 79 15/07/27 16:21:39 INFO mapred.LocalJobRunner: Waiting for reduce tasks
 80 15/07/27 16:21:39 INFO mapred.LocalJobRunner: Starting task: attempt_local1592166400_0001_r_000000_0
 81 15/07/27 16:21:39 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
 82 15/07/27 16:21:39 INFO mapred.Task:  Using ResourceCalculatorProcessTree : [email protected]49250068
 83 15/07/27 16:21:39 INFO mapred.ReduceTask: Using ShuffleConsumerPlugin: [email protected]
 84 15/07/27 16:21:39 INFO reduce.MergeManagerImpl: MergerManager: memoryLimit=652528832, maxSingleShuffleLimit=163132208, mergeThreshold=430669056, ioSortFactor=10, memToMemMergeOutputsThreshold=10
 85 15/07/27 16:21:39 INFO reduce.EventFetcher: attempt_local1592166400_0001_r_000000_0 Thread started: EventFetcher for fetching Map Completion Events
 86 15/07/27 16:21:40 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local1592166400_0001_m_000002_0 decomp: 32 len: 36 to MEMORY
 87 15/07/27 16:21:40 INFO reduce.InMemoryMapOutput: Read 32 bytes from map-output for attempt_local1592166400_0001_m_000002_0
 88 15/07/27 16:21:40 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 32, inMemoryMapOutputs.size() -> 1, commitMemory -> 0, usedMemory ->32
 89 15/07/27 16:21:40 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local1592166400_0001_m_000000_0 decomp: 72 len: 76 to MEMORY
 90 15/07/27 16:21:40 INFO reduce.InMemoryMapOutput: Read 72 bytes from map-output for attempt_local1592166400_0001_m_000000_0
 91 15/07/27 16:21:40 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 72, inMemoryMapOutputs.size() -> 2, commitMemory -> 32, usedMemory ->104
 92 15/07/27 16:21:40 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local1592166400_0001_m_000001_0 decomp: 42 len: 46 to MEMORY
 93 15/07/27 16:21:40 INFO reduce.InMemoryMapOutput: Read 42 bytes from map-output for attempt_local1592166400_0001_m_000001_0
 94 15/07/27 16:21:40 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 42, inMemoryMapOutputs.size() -> 3, commitMemory -> 104, usedMemory ->146
 95 15/07/27 16:21:40 INFO reduce.EventFetcher: EventFetcher is interrupted.. Returning
 96 15/07/27 16:21:40 INFO mapred.LocalJobRunner: 3 / 3 copied.
 97 15/07/27 16:21:40 INFO reduce.MergeManagerImpl: finalMerge called with 3 in-memory map-outputs and 0 on-disk map-outputs

            
           

相關推薦

Eclipse開發環境搭建Hadoop2.6.0

Eclipse版本Luna 4.4.1 安裝外掛hadoop-eclipse-plugin-2.6.0.jar,下載後放到eclipse/plugins目錄即可。 2. 配置外掛 2.1 配置hadoop主目錄 解壓縮hadoop-2.6.0.tar.g

Eclipse開發環境搭建Maven

-1 mage cal 配置文件 pub 添加 apache local 打開 (一)開發環境   Eclipse Mars2(4.5.2) + Maven 3.5.0 (二)配置步驟   1.首先,需要將Maven環境配置好,maven下載地址:http://maven

MACAndroid的Eclipse開發環境搭建

一.Eclipse的下載 1.  找到“Eclipse IDE for java Developers”此處右上角會根據你當前使用的系統自動選擇,Mac下就會自動選擇位“Mac OS X(Cocoa)” 2.  然後點選右邊的“Mac OS X 64bit”(這裡我的Pr

Centos使用Hadoop2.6.0-eclipse-plugin外掛

我的開發環境: 作業系統centos5.5 一個namenode 兩個datanode Hadoop版本:hadoop-0.20.203.0 Eclipse版本:eclipse-java-helios-SR2-linux-gtk.tar.gz(使用3.7的版本總是崩潰,讓人鬱悶) 第一步:先啟動hadoop

windows10 環境搭建 ELK 6.2.4

ELK資料整理   1. 描述 ELK 是 ElasticSearch + LogStash + Kibana   LogStash :收集log日誌,傳送到ES ElasticSearch :一個基於Lucene的分散式全文搜尋框架,可以對logs進行

自學基於eclipse 的java程式設計——Eclipse開發環境Java視覺化程式設計(第五課)

大家都知道在做Android開發設計GUI時,要新增Android元件可以把元件拖到手機螢幕上,這樣會自動生成程式碼,而不需要自己一個個地把要新增的元件用程式碼生成。其實,Java開發也是可以這樣的。這裡就說一下Eclipse開發環境下Java視覺化程式設計。首先開啟eclip

Eclipse開發環境web專案如何部署到tomcat及注意事項

一、摘要 本文探討eclipse開發環境下,web專案如何部署到tomcat下,部署後module顯示名稱與web專案名稱不一致,tomcat啟動時報class not found錯誤等常見問題解答。 二、如何部署到tomcat下 1、配置tomc

centos搭建hadoop2.6.5

一 、centos叢集環境配置1.建立一個namenode節點,5個datanode節點 主機名 IP namenodezsw 192.168.129.158 datanode1zsw 192.168.129.159 datanode2zsw 192.168.129.16

ESP32的SDK開發之window系統eclipse開發環境搭建

在window系統下可以依託eclipse的環境開發ESP32 eclipse下載地址:下載Eclipse IDE for C/C++ Developers版本的 64位:點這裡 32位:點這裡 環境JDK下載地址 64位:點這裡 32位:點這裡 安裝好eclipse開啟報錯的話,就需要配置

在windows搭建hadoop+eclipse開發環境

        1.去官網下載hadoop-eclipse-plugin-2.7.3.jar(與你Hadoop版本一致)   2.把jar包匯入在eclipse安裝路徑的plugins中  

整理不易,且整且珍惜 2.開發環境搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼 7.spring與mybatis整合中Junit的測試 8.maven專案的啟動 9.Restful

整理不易,且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼

python3.6 + Django2.0.1 +MySQL 5.7 環境搭建環境的流程

最近在學習Django,看的教程中使用的是老版本的python2+Django1.10,已經略顯落後。遂自己查資料改用py3+Django2.0,期間遇到很多問題,寫成這篇流程記錄。 1.建立你的專案 django-admin startproject 專案名

Windows環境搭建Hadoop(2.6.0)+Hive(2.2.0)環境並連線Kettle(6.0)

前提:配置JDK1.8環境,並配置相應的環境變數,JAVA_HOME 一.Hadoop的安裝   1.1 下載Hadoop (2.6.0) http://hadoop.apache.org/releases.html     1.1.1 下載對應版本的winutils(https://gith

eclipse+drools 6.5開發環境搭建,以及建立一個簡單的drools專案

eclipse+drools 6.5開發環境搭建,以及建立一個簡單的drools專案。 Drools 是用 Java 語言編寫的開放原始碼規則引擎,使用Rete演算法對所編寫的規則求值。Drools 允許使用宣告方式表達業務邏輯。可以使用非 XML 的本地語言編寫規則,從而便於學習

Windows環境搭建基於Eclipse的STM32 GCC 開發環境(二)工程設定篇

工具安裝完成後,接下來就可以基於GCC進行STM32的開發了。 開啟Eclipse軟體,設定好工作區後,File -> New -> C Project 新建一個工程,如下圖 GNU ARM外掛提供了多個工程模板,如果不想用模板,可以選擇Empty Proje

Eclipse搭建Maven Servlet3.0環境

需求背景: Servlet3.0的好處: - 1. 非同步處理支援:有了該特性,Servlet 執行緒不再需要一直阻塞,直到業務處理完畢才能再輸出響應 - 2. 新增的註解支援(可以省略web.xml):該版本新增了若干註解,用於簡化 Serv

spark最新原始碼下載並匯入到開發環境助推高質量程式碼(Scala IDEA for Eclipse和IntelliJ IDEA皆適用)(以spark2.2.0原始碼包為例)(圖文詳解)

  不多說,直接上乾貨! 前言     其實啊,無論你是初學者還是具備了有一定spark程式設計經驗,都需要對spark原始碼足夠重視起來。   本人,肺腑之己見,想要成為大資料的大牛和頂尖專家,多結合原始碼和操練程式設計。   好一段時間之前,寫過這篇部落格

Linux系統搭建go語言eclipse開發環境

最近想研究一下go語言,於是就嘗試著搭建一下環境。 準備工作: 一臺五年前流行的膝上型電腦:xp,win7都跑不動了,從我同學那裡淘來的。 linux作業系統:CentOs,別問我為什麼不是ubuntu,鳥哥的私房菜裡只教了CentOs的安裝。 一根網線:我很菜,沒找到Ce

Hadoop2.6.0偽分佈環境搭建

Hadoop2.6.0偽分佈環境搭建 用到的軟體: 一、安裝jdk: 1、要安裝的jdk,我把它拷在了共享資料夾裡面。 (用優盤拷也可以) 2、我把jdk拷在了使用者資料夾下面。 (其他地方也可以,不過路徑要相應改變) 3、執行復制安裝解壓命令:  解壓完畢:

windows搭建hadoop+eclipse開發環境

我的環境:windows8+hadoop1.1.2+eclipse4.3(linux為centerOS6.4) 實現步驟 下載eclipse、hadoop,提取hadoop中的hadoop-ecli