1. 程式人生 > >Hadoop3 在eclipse中訪問hadoop並執行WordCount例項

Hadoop3 在eclipse中訪問hadoop並執行WordCount例項

前言:

      畢業兩年了,之前的工作一直沒有接觸過大資料的東西,對hadoop等比較陌生,所以最近開始學習了。對於我這樣第一次學的人,過程還是充滿了很多疑惑和不解的,不過我採取的策略是還是先讓環境跑起來,然後在能用的基礎上在多想想為什麼。

      通過這三個禮拜(基本上就是週六週日,其他時間都在加班啊T T)的探索,我目前主要完成的是:

      所以我下邊會分三次記錄下我的過程,為自己以後查閱方便,要是能幫助到其他人,自然是更好了!

===============================================================長長的分割線====================================================================

正文:

在之前的兩篇文章中,我主要是介紹了自己初次學習hadoop的過程中是如何將hadoop偽分散式模式部署到linux環境中的,以及如何自己編譯一個hadoop的eclipse外掛。如果大家有需要的話,可以點選我在前言中列出的前兩篇文章的連結。

      今天,我將在eclipse中,講解如何使用MapReduce。對於下面的問題,我們首先講解的是,如何在eclipse中配置DFS Location,然後講解的是,在配置好的Location上執行WordCount例項。

      第一步,配置DFS Location:

      1.開啟eclipse之後,切換到Map/Reduce模式,點選右下角的“new hadoop Location”圖示,彈出一個彈出框,如下圖所示,頁面中中有兩個頁籤需要配置,分別是General和Advanced Parameters。

       

      2.首先,我們先配置General中內容。General中主要需要我們進行Map/Reduce和HDFS的host的配置。

         (1).之前我們在Linux安裝hadoop時,曾經修改了兩個配置檔案,分別是mapred-site.xml和core-site.xml。當時我們再配置的時候,配置的主機就是localhost和埠號。這裡由於我們是在eclipse遠端訪問你Linux伺服器中的hadoop,所以我們需要將原來配

置檔案中的localhost修改成你伺服器的ip地址,埠號不變(當然你可以參考網上的文章,配置host檔案)。

         (2).然後將eclipse中我們剛才開啟的General頁籤中的Map/Reduce的host配置成你的mapred-site.xml配置的ip地址和埠號;再將HDFS的host配置成你的core-site.xml配置的ip地址和埠號。注意,如果你勾選了HDFS中的那個“Use M/R Master Host”選項,那麼HDFS的host將預設與Map/Reduce中配置的ip地址一致,埠號可另行配置。

      3.然後,我們要配置的是Advanced Parameters這個選項卡中的內容,這裡面的內容比較多,但是不要緊張哦,因為我們在第一次配置時,可以使用他的預設配置。

   (1)開啟這個選項卡,我們可以瀏覽一下這裡面的內容,著重看下其中選項值包含“/tmp/.....”這種目錄結構的選項,如果我們後邊自己配置的話,其實要修改的也就是這些項。預設的“dfs.data.dir”是在linux伺服器中的“/tmp”目錄下,有時會帶上你的root賬號,這個可以根據自己的需要。

        (2).如果你不想使用上邊的預設配置,則我們根據自己的需要,在我們安裝的hadoop中的hdfs-site.xml檔案中,增加對“dfs.data.dir”這個選項的配置,對應的目錄自己可以提前建立,我的配置如圖:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->
<configuration>
        <property>
                <name>dfs.data.dir</name>
                <value>/myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/dfs_data_dir</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>

        (3).以我的配置為例,如果我在hadoop的伺服器端做了這樣的配置,那麼我在Advanced Parameters選項卡中,需要修改下面的的幾個選項的value值,注意,其實有個小技巧,你在配置的時候,先找到“hadoop.tmp.dir”這個選項,將這個選項配置成你自定義的目錄位置,然後將Location這個彈出框關掉,再選中剛才的那個Location重新點選右下角的“Edit hadoop Location”選項(在“new hadoop Location”旁邊),然後再切換到Advanced Parameters選項卡,會發現與之相關的幾個選項的目錄字首都會發生改變,這時候你在瀏覽一下其他選項,確保目錄字首都進行了修改,就ok了。

dfs.data.dir  =>  /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/dfs/data

dfs.name.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/dfs/name

dfs.name.edits.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/dfs/name

fs.checkpoint.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/dfs/namesecondary

fs.checkpoint.edits.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/dfs/namesecondary

fs.s3.buffer.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/s3

hadoop.tmp.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir

mapred.local.dor => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/mapred/local

mapred.system.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/mapred/system

mapred.temp.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/mapred/temp

mapreduce.jobtracker.staging.root.dir => /myself_setted/hadoop/hadoop-1.0.1/myself_data_dir/hadoop_tmp_dir/mapred/staging

      4.經過上邊的幾步,我們自己的Location已經配置完了,這時候如果沒有什麼問題的話,會在我們的eclipse的左上角“DFS Location”的下面,顯示出我們剛剛配置好的Location,右鍵點選這個Location的選擇“Refresh”或者“ReConnect”,如果之前的配置沒有問題的話,會顯示我們再第一篇文章中上傳的a.txt檔案,以及我們之前在linux伺服器端執行hadoop成功的output資料夾,如下圖。如果沒有上傳檔案,那麼只會顯示“dfs.data.dir”這個目錄。

      

  第二步,執行Word Count例項:

      1.Location配置好之後,我們可以在eclipse中建立一個MapReduce專案的工程。

      (1).利用反編譯軟體,從hadoop-1.0.1的安裝包中反編譯hadoop-examples-1.0.1.jar這個jar包,將其中的Word Count類取出來,放到你剛才建立的工程中。注意,如果你之前參考的在編譯eclipse的hadoop外掛時,參考的是我的第二篇文章的方法,這裡需要加一步,右鍵點選專案選擇buidld Path,對於以“hadoop-”開頭的jar包,除了“hadoop-core-1.0.1.jar”和“hadoop-tools-1.0.1.jar”這兩個jar包,其餘的以“hadoop-”開頭的jar包都要刪除掉。主要是因為如果不刪除,會導致WordCount這個類方法中的有些累引入的不正確。

      2.專案建立好之後,我們在WordCount類中,右鍵選擇“Run Configurations”彈出一個彈出框,如下圖,然後選中“Arguments”選項卡,在其中的“Program arguments”中配置你的hdfs的input檔案的目錄和output目錄,然後點選“run”,執行即可,如果在console中沒有丟擲異常,證明執行成功,可選擇左上角的Location,選擇“Refresh”,會顯示你的output資料夾以及執行的結果檔案。

      

      第三步,錯誤排除:

      1.如果之前的output資料夾存在,你直接在eclipse中執行WordCount方法的話,可能console會報“output資料夾已經存在”這個錯誤,那麼你只需要現將Location中的output資料夾刪除,這個錯誤就不會報了。

      2.如果你執行的過程中報了“org.apache.hadoop.security.AccessControlException: Permission denied:。。。。”這個錯誤,是由於本地使用者想要遠端操作hadoop沒有許可權引起的,這時,我們需要在hdfs-site.xml中配置dfs.permissions屬性修改為false(預設為true),可以參考本文上邊關於“hdfs-site.xml”的配置。

      3.如果你執行的過程中報了“Failed to set permissions of path:。。。。”這個錯誤,解決方法是修改/hadoop-1.0.1/src/core/org/apache/hadoop/fs/FileUtil.java裡面的checkReturnValue,註釋掉即可(有些粗暴,在Window下,可以不用檢查)。注意,此處修改時,網上的一般方法是,重新編譯hadoop-core的原始碼,然後重新打包。其實如果想省事兒一點的話,我們可以在專案中建立一個org.apache.hadoop.fs這個包,將FileUtil.java這個類複製到這個包裡面,按照下邊圖片中的修改方法,修改FileUtil.java就行了。之所以這種方法也行,是因為java執行時,會優先預設在本專案的原始碼中掃描相同路徑的包,然後才是引入的jar檔案中的。

      

      經過上邊的步驟,我想多數情況下,你已經成功的在eclipse中遠端訪問了你的hadoop了,也許在你實踐的過程中還會碰到其他問題,只要你耐心的在網上搜索資料,相信一定可以解決的,切記不要太著急。

相關推薦

Hadoop3eclipse訪問hadoop執行WordCount例項

前言:       畢業兩年了,之前的工作一直沒有接觸過大資料的東西,對hadoop等比較陌生,所以最近開始學習了。對於我這樣第一次學的人,過程還是充滿了很多疑惑和不解的,不過我採取的策略是還是先讓環境跑起來,然後在能用的基礎上在多想想為什麼。       通過這三個禮拜(基本上就是週六週日,其他時間都在

spark學習1——配置hadoop 單機模式執行WordCount例項(ubuntu14.04 & hadoop 2.6.0)

1. 安裝SSH  hadoop是採用SSH進行通訊的 ,此時要設定密碼為空,即不需要密碼登陸,免去每次登陸時都要輸入密碼,當叢集較大時該步驟顯得尤為重要。     $ sudo apt-get install ssh 安裝完成後啟動服務:     $ /etc/init.

eclipse編寫HadoopWordCount程式,eclipse執行

基於Windows7 + jdk1.8.0_162 + eclipse4.7.2 + Hadoop2.7.7 一、安裝eclipse(自行百度) 二、安裝jdk(自行百度) 三、下載maven倉庫並在eclipse中配置maven環境(後面的文章講) 四、在eclipse中新建一個maven

Hadoop基礎學習(一)分析、編寫執行WordCount詞頻統計程序

contains trace net tails super val 詞頻統計 上傳 str 版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.ne

eclipse配置Tomcat將項目部署到Tomcat上

spa img code rec eclipse director move 運行 文件夾 參考:http://blog.csdn.net/yerenyuan_pku/article/details/51830104 首先在點擊window窗口然後prefere

Hadoop環境 IDE配置(在eclipse安裝hadoop-eclipse-plugin-2.7.3.jar插件)

map bubuko other 9.png 查看 3.2 div 集群 點擊 一、hadoop-eclipse-plugin-2.7.3.jar插件下載點擊下載 二、把插件放到eclipse的安裝目錄dropins下 三、eclipse上的配置 3.1 打開Wind

Eclipse以Debug模式執行Resin web應用

右鍵應用 Debug As -->Debug Configurations. 右鍵new ,填入Name、Project、Main class (必須和圖中main class保持一致) 配置Arguments Program argument: -

下載jdk配置環境變數,安裝Eclipse,編寫HelloWord程式執行

下載jdk並配置環境變數 1.下載jdk安裝包,官網網址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.點選Accept License Agreement

macOS配置eclipse+maven+tomcat,執行maven專案

最近跟著學習j2ee框架,配置環境當然少不了。 jdk使用的是7u71,因為梅老師說很多客戶配置沒有那麼高。 所以eclipse使用的版本就很低,我是用的4.5.1。 首先配置maven,我們這邊使用的是maven-3.3.9,把資料夾放到自己的路徑就行,tomcat也是如此。 to

在windows10下搭建Storm執行WordCount詳解(單機版)!

釋出時間:2018-04-10 來源:網路 上傳者:使用者 關鍵字: 單機版 搭建 詳解 WordCount windows10 執行 Storm 發表文章 摘要:作為主流的大資料處理平臺,不同於批處理的Hadoop,Storm的實時計算以及拓撲結構有其獨有的優勢(當然,只是

Eclipse已Debug模式執行Resin web應用

右鍵應用 Debug As -->Debug Configurations. 右鍵new ,填入Name、Project、Main class (必須和圖中main class保持一致)

Ubuntu 12.04上安裝Hadoop執行

Ubuntu 12.04上安裝Hadoop並執行 作者:凱魯嘎吉 - 部落格園 http://www.cnblogs.com/kailugaji/ 在官網上下載好四個檔案 在Ubuntu的/home/wrr/下建立一個資料夾java,將這四個檔案拷到Ubuntu的/home/wrr/jav

Java使用SSH遠端訪問Windows執行命令

轉載至:http://blog.csdn.net/carolzhang8406/article/details/6760430 windows由於沒有預設的ssh server,因此在允許ssh之前需要先安裝ssh server。 下載freeSSHd http://ww

關於EclipseUI程式的執行緒的討論

雖然各個作業系統之間的執行緒機制是不一樣的,但是大致是相同的。當用戶使用GUI程式時,如果點滑鼠或按下鍵盤上的鍵等時,作業系統會產 生對應的GUI事件,它來決定哪個視窗或程式來接受每一個事件並且放到程式的事件佇列中.       任何GUI程式的底層結構就是一個事件迴圈.程式

eclipse連線資料庫進行資料庫操作時出現空指標異常類java.lang.NullPointerException

java.lang.NullPointerException載入驅動成功!連線資料庫成功!at com.dao.BookDAO.create(BookDAO.java:24)at servlets.Insert_Book_Servlet.doPost(Insert_Book_

[學習筆記] 在Eclipse使用Hibernate,建立第一個工程,資料庫為Oracle XE

前文參考:Oracle 11g xe 在windows安裝 在Eclipse中使用Hibernate 安裝 Hibernate Tools 外掛 https://tools.jboss.org/downloads/ Add the following URL to your Eclipse 4.13 (2

[學習筆記] 在Eclipse使用Hibernate,建立第一個Demo工程,資料庫為Oracle XE

前文參考:Oracle 11g xe 在windows安裝 在Eclipse中使用Hibernate 安裝 Hibernate Tools 外掛 https://tools.jboss.org/downloads/ Add the following URL to your Eclipse 4.13 (2

下載多個平臺執行一個例項

1)解決No CPU/ABI system image available for this target問題 開啟eclipse後,如下,點選下面紅色標記的按鈕,彈出Android Virtual

Hadoop學習----------在Eclipse執行wordCount到若干問題

執行hadoop程式時,有時候會報以下錯誤: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode 這個錯誤應該還滿常

Windows Eclipse進行WordCount報錯org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/Strin

報錯:Exception inthread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 解決: C:\Windo