在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 importorg.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
MAC下Android的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