win10+eclipse+hadoop2.7.2+maven+local模式直接通過Run as Java Application執行wordcount
一、準備工作
(1)Hadoop2.7.2 在linux部署完畢,成功啟動dfs和yarn,通過jps檢視,程序都存在
(2)安裝maven
二、最終效果
在windows系統中,直接通過Run as Java Application執行wordcount,而不需要先打包成jar包,然後在linux終端執行
三,操作步驟
1、啟動dfs和yarn
終端:${HADOOP_HOME}/sbin/start-dfs.sh
${HADOOP_HOME}/sbin/start-yarn.sh
通過在namenode節點上jps檢視顯示:
4852 NameNode
5364 ResourceManager
5141 SecondaryNameNode
10335 Jps
在datanode節點上使用jps檢視顯示:
10369 Jps
4852 NameNode
5364 ResourceManager
5141 SecondaryNameNode
2、Eclipse基礎配置
(1)將hadoop-eclipse-plugin-2.7.2.jar外掛下載,放在Eclipse的目錄下的plugins目錄下,啟動Eclipse,然後點選檢視Hadoop外掛是否生效,點選windows——>preferences,如下圖1
(2)將hadoop-2.7.2的解壓包新增到2所示的目錄,點選OK
3、Eclipse建立maven工程
(1)建立過程省略
(2)新增dependency,POM.xml中的依賴項如下:
hadoop-common
hadoop-hdfs
hadoop-mapreduce-client-core
hadoop-mapreduce-client-common
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.7.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-common --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>2.7.2</version> </dependency>
(3)此時可能會卡頓一段時間,Build workpath如果特別慢的話,請參考我前不久的一篇解決方法,等到maven中的依賴包下載install完畢即可
4、編寫mapreduce中的wordcount程式碼
程式碼此處不在累述,,簡單程式碼架構(紅色框的那個包)和內容如下:
WCMapper類:
package cn.edu.nupt.hadoop.mr.wordcount; import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; // 4個泛型中,前兩個是指定的mapper輸入資料的型別 //map 和 reduce 的資料輸入輸出是以key-value的形式封裝的 //預設情況下,框架傳遞給我們的mapper的輸入資料中,key是要處理的文字中一行的其實偏移量,這一行的內容作為value // JDK 中long string等使用jdk自帶的序列化機制,序列化之後會攜帶很多附加資訊,造成網路傳輸冗餘, // 所以Hadoop自己封裝了一些序列化機制 public class WCMapper extends Mapper<LongWritable, Text, Text, LongWritable>{ // mapreduce框架每讀一行就呼叫一次該方法 @Override protected void map(LongWritable key, Text value,Context context) throws IOException, InterruptedException { //具體的業務寫在這個方法中,而且我們業務要處理的資料已經被該框架傳遞進來 // key是這一行的其實偏移量,value是文字內容 String line = value.toString(); String[] words = StringUtils.split(line, " "); for(String word : words){ context.write(new Text(word), new LongWritable(1)); } } }View Code
WCReducer類:
package cn.edu.nupt.hadoop.mr.wordcount; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class WCReducer extends Reducer<Text, LongWritable, Text, LongWritable>{ // 框架在map處理完成之後,將所有的kv對快取起來,進行分組,然後傳遞一個組 // <key,{value1,value2...valuen}> //<hello,{1,1,1,1,1,1.....}> @Override protected void reduce(Text key, Iterable<LongWritable> values,Context context) throws IOException, InterruptedException { long count = 0; for(LongWritable value:values){ count += value.get(); } context.write(key, new LongWritable(count)); } }View Code
WCRunner類
package cn.edu.nupt.hadoop.mr.wordcount; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; /** * *<p> WCRunner.java * Description:<br/> * (1)用來描述一個作業<br/> * (2)比如,該作業使用哪個類作為邏輯處理中的map,哪個作為reduce * (3)還可以指定改作業要處理的資料所在的路徑 * (4)還可以指定作業輸出的路徑 *<p> * Company: cstor * * @author zhuxy * 2016年8月4日 下午9:58:02 */ public class WCRunner { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job wcjob = Job.getInstance(conf); // 找到Mapper和Reducer兩個類所在的路徑 //設定整個job所用的那些類在哪個jar下 wcjob.setJarByClass(WCRunner.class); //本job使用的mapper和reducer類 wcjob.setMapperClass(WCMapper.class); wcjob.setReducerClass(WCReducer.class); //指定reduce的輸出資料kv型別 wcjob.setOutputKeyClass(Text.class); wcjob.setOutputValueClass(LongWritable.class); // 指定map的輸出資料的kv型別 wcjob.setMapOutputKeyClass(Text.class); wcjob.setMapOutputValueClass(LongWritable.class); // // FileInputFormat.setInputPaths(wcjob, new Path("hdfs://master:9000/wc/input/testHdfs.txt")); // FileOutputFormat.setOutputPath(wcjob, new Path("hdfs://master:9000/wc/output7/")); FileInputFormat.setInputPaths(wcjob, new Path("file:///E:/input/testwc.txt")); FileOutputFormat.setOutputPath(wcjob, new Path("file:///E:/output3/")); wcjob.waitForCompletion(true); } }View Code
此時程式碼張貼完畢。
5、在CentOS的本地建立一個檔案,命名為testHdfs.txt(這個是我之前的測試檔案,內容不重要,名字不重要,一致即可),內容如下:
hello java
hello Hadoop
hello world
建立好後,將檔案上傳到hdfs檔案系統的/wc/input資料夾下面
hadoop fs -put ./testHdfs.txt /wc/input
6、在WCRunner類中,右擊Run as -->Java Application,出現如下錯誤:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:483)
at org.apache.hadoop.util.Shell.run(Shell.java:456)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:815)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:798)
……
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308)
at cn.edu.nupt.hadoop.mr.wordcount.WCRunner.main(WCRunner.java:55)
方法:在Hadoop的bin目錄下放winutils.exe,在環境變數中配置 HADOOP_HOME,把hadoop.dll拷貝到C:\Windows\System32下面即可
注:此處最好將HADOOP_HOME/bin目錄新增到path中,這樣可以執行本地模式,即是上述程式碼中註釋的部分
7、此時再次執行Run as -->Java Application,出現問題如下:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
資料夾建立成功,但是資料夾下面沒有success 和 執行結果part*檔案,即/wc/output3下面沒內容(輸出結果)。
解決辦法:點選windows-->perspective-->open perspective-->other-->MapReduce,Eclipse介面效果如下:
並且在底部出現MapReduce Locations,效果如下:
一、準備工作
(1)Hadoop2.7.2 在linux部署完畢,成功啟動dfs和yarn,通過jps檢視,程序都存在
(2)安裝maven
二、最終效果
在windows系統中,直接通過Run as Java Application執行wordcount,而不需要先打包成jar包,然後在lin amt res project star ast text package fin super 先安裝並啟動hadoop,怎麽弄見上文http://www.cnblogs.com/wuxun1997/p/6847950.html。這裏說下怎麽設置IDE來開發hadoop
環境搭建參照上一篇hadoop2.7.2 win7基礎環境搭建。
Eclipse hadoop外掛下載2.7.2:http://download.csdn.net/detail/fly_leopard/9503172
將下載的檔案解壓,將jar包放到Eclipse/plug mat app nbsp desc pro .org 節點 option 對象 Writing YARN Applications
Link:http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/
CentOS7安裝hadoop2.7.2 實現偽分散式 測試成功(親測教程)
CentOS7安裝hadoop2.7.2 實現偽分散式 測試成功(親測教程)
經過幾天的嘗試,終於在CentOS7下安裝hadoop,實現偽分散式,並且測試成功
現在簡要的回訴一篇,以方便記憶
1.環境準備
jdk需要1.7以上版本64位. 建立hadoop使用者. 在hadoop使用者目錄下解壓安裝包hadoop-2.7.2.tar.gz
2.配置免密碼登入
各節點分別執行
生成公鑰和私鑰:ssh-keygen -t rsa 四次enter.
將公鑰新增進公鑰庫:cat
1、本文目標是在linux單機環境下配置hadoop2.7.6的偽分佈模式。
2、在hadoop-2.7.6/etc/hadoop目錄下修改如下配置檔案內容(如果沒有配置檔案,自己建立一個即可):2.1、core-site.xml:
<configuration>
&
Hive 是一個數據倉庫工具,曾經ETL是資料倉庫必備工具,DB2、ORACLE、SqlServer等資料庫廠商提供各種資料倉庫工具,網際網路的到來使這些資料庫工具略顯老態。
1.Hadoop環境
伺服器
主機名
I
叢集配置
HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。
一、基礎環境
JDK :1.8.0_65 (要求1
64位windows安裝hadoop沒必要倒騰Cygwin,直接解壓官網下載hadoop安裝包到本地->最小化配置4個基本檔案->執行1條啟動命令->完事。一個前提是你的電腦上已經安裝了jdk,設定了java環境變數。下面把這幾步細化貼出來,以
1. 下載hadoop原始碼並編譯
$ sudo tar -zxvf hadoop-2.7.2-src.tar.gz
將解壓縮的原始碼包,複製到/usr/local目錄下:
$ sudo cp -r
本文件主要記錄了Hadoop+Hive+Spark叢集安裝過程,並且對NameNode與ResourceManager進行了HA高可用配置,以及對NameNode的橫向擴充套件(Federation聯邦)
1VM網路配置
將子網IP設定為192.168.1.0:
將閘道器設定
下載安裝Hadoop
1、下載地址
http://hadoop.apache.org/releases.html
我下載的是2.7.2,官網在2.5之後預設提供的就是64位的,這裡直接下載下來用即可
2、安裝Hadoop
tar -
1.首先宣告,我沒有在windows上的eclipse上安裝MapReduce外掛,需要的話自己可以查詢。我只是介紹如何程式設計。
2.在linux上安裝完hadoop偽分散式或者全分散式之後,將主節點上的hadoop資料夾放置到磁碟上,如:d:/hadoop272。
下
hadoop環境搭建相對麻煩,需要安裝虛擬機器過著cygwin什麼的,所以通過查資料和摸索,在window上搭建了一個,不需要虛擬機器和cygwin依賴,相對簡便很多。
下面執行步驟除了配置檔案有部分
Hadoop2.7.2高可用(HA)環境下Hbase高可用(HA)環境的搭建
轉載請註明出處:http://blog.csdn.net/qq_23181841/article/details/75095370
(在Ubuntu14.04下以root使用者進行配置)
下載
1.環境配置:
a.將map reduce所需架包全部載入到eclipse下,
b.將
鍵:HADOOP_USER_NAME
值:hadoop
配置到系統環境中,需要重新啟動。
c.將架包hadoop-eclipse-plugin-2.7.1.jar
叢集規劃
主機名
ip
安裝的軟體
程序
hadoop01
192.168.1.101
jdk、hadoop
NN、DFSZKFailoverController
hadoop02
192.1
此做法無實際意義,只是用來學習搭建過程和了解hadoop相關配置。
版本:Ubuntu16.04 hadoop2.7.2(一臺電腦開三臺虛擬機器完全分散式)
主結點:192.168.150.112 Caxiongyu1
從結點:192.168.150.113 Caix
一.準備環境
1.1. 安裝包
1)準備4臺PC
2)安裝配置Linux系統:CentOS-7.0-1406-x86_64-DVD.iso
3)安裝配置Java環境:jdk-8u91-linux-x64.gz
4)安裝配置Hadoop:hadoop-2.7.2-x64.ta 相關推薦
win10+eclipse+hadoop2.7.2+maven+local模式直接通過Run as Java Application執行wordcount
eclipse配置hadoop2.7.2開發環境
hadoop2.7.2 win7 eclipse環境搭建測試
對Hadoop2.7.2文檔的學習-Yarn部分(4)Yarn Application
CentOS7安裝hadoop2.7.2 實現偽分散式 測試成功(親測教程)
Hadoop2.7.2安裝與叢集搭建
hadoop2.7.6偽分佈模式配置
Linux Hadoop2.7.2 Hive2.3.2 安裝
Hadoop2.7.2 HBase2.0.0環境搭建
windows下安裝並啟動hadoop2.7.2
IntelliJ IDEA2018配置Hadoop2.7.2閱讀環境並執行偽分散式
CentOS7+Hadoop2.7.2(HA高可用+Federation聯邦)+Hive1.2.1+Spark2.1.0 完全分散式叢集安裝
Hadoop2.7.2之叢集搭建(單機)
通過Windows7對linux上的hadoop2.7.2進行程式設計開發
hadoop2.7.2 window win7 基礎環境搭建
Hadoop2.7.2高可用(HA)環境下Hbase高可用(HA)環境的搭建(在Ubuntu14.04下以root使用者進行配置)
eclipse+hadoop2.7.5的map-reduce的API的配置
Hadoop2.7.2之叢集搭建(高可用)
ubuntu 16.04搭建hadoop2.7.2(Vmware 12.0搭建完全分散式三臺虛擬機器)
Hadoop2.7.2+Hbase1.2.1分散式環境搭建整理