MapReduce的初次嘗試

来源:http://www.cnblogs.com/quchunhui/archive/2016/04/22/5421727.html
-Advertisement-
Play Games

前提: 搭建好集群環境(zookeeper、hadoop、hbase)。 搭建方法這裡就不進行介紹了,網上有很多博客在介紹這些。 簡單需求: WordCount單詞計數,號稱Hadoop的HelloWorld。所以,我打算通過這個來初體驗一下Hadoop。需求如下: ①、計算文件中出現每個單詞的頻數 ...


====前提:

搭建好集群環境(zookeeper、hadoop、hbase)。

搭建方法這裡就不進行介紹了,網上有很多博客在介紹這些。

  

====簡單需求:

WordCount單詞計數,號稱Hadoop的HelloWorld。所以,我打算通過這個來初體驗一下Hadoop。需求如下:

①、計算文件中出現每個單詞的頻數

②、輸入結果按照字母順序進行排序

 

====Map過程:

首先將文件進行切分成單詞。將所有單詞的項目都聚到一起。生成key-value的中間結果。

 

====Reduce過程

拿到之前Map的中間結果,進行合併(歸約)。

 

====源代碼

源代碼來自慕課網,由於我自己學習需要,放到了我的Github空間上了。

https://github.com/quchunhui/WordCount

 

====上傳Jar包

首先需要確認Linux集群運轉是否正常。使用jps命令查看。確保hadoop相關進程的存在。

需要註意一點,不同版本的Hadoop的jps結果可能不一樣。我在看慕課網的視頻的時候,

發現人家裡面還有TaskTracker和JobTracker呢,但是新版本的Hadoop就已經沒有。

並不是集群環境的問題。具體什麼是正確的,可以去查看官網的幫助文檔。

 

①、在Master端的jps結果

 

②、在Slave端的jps結果

 

然後,將寫完的代碼達成jar包。由於我使用的是Mave環境,所以在Maven環境下使用mvn package進行打包即可。

 

====上傳文件至hdfs文件目錄

①、將上述步驟中生成的jar包上傳到Linux伺服器上。

我在HDOOP_HOME的根目錄下創建了一個專門用於存放jar包的文件夾package。將生成的jar包上傳到這裡

/home/qch/software/hadoop-2.7.1/package

②、使用hadoop fs -put命令將數據源文件到hdfs文件目錄

註意,這裡是hdfs文件目錄,並非是Linux系統上的某個文件夾。如果目錄不存在,需要通過hadoop fs -mkdir命令自己手動去逐層創建。

我這裡將上述3個文件上傳到了hdfs文件目錄[/user/root/wc_input]上了。

 

====程式運行

①、通過【hadoop jar <jar> [mainClass] args…】命令來運行程式。

命令:hadoop jar ../package/WordCount-1.0-SNAPSHOT.jar test.WordCount wc_input/file wc_output

 

②、運行成功之後,可以通過命令來查看hdfs上的生成結果是否正確。

 

====總結:

我犯的最小白的錯誤就是,不知道需要將文件上傳到hdfs文件目錄下麵。希望以後加深對hdfs的瞭解。

這也就是我今天(2016/4/22。)的第一個mapreduce成果。

下一步需要真正去進行我的MapReduce工作了,需要考慮按照什麼規則進行Map和Reduce。這才是重中之重。 

 

--END--

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、場景 1.1 最新三次的提交 分別是:定義了一個變數k = 10 、 定義了一個變數 j = 6 、 定義了一個變數 i = 5 ; 本地倉庫 和 遠程倉庫保持一致 1.2 我添加了一行代碼 如何回退版本到最近的一次,也就是 定義一個變數 k = 10 這個版本 ? 回退的結果 已經回到我們想要 ...
  • 我們在Service(Ⅰ)中瞭解了Service最基本的知識點,今天我們繼續學習Service這個組件(神器)。 先來說一下Service的生命周期:跟Activity相比,Service的生命周期就太簡單了:onCreate()->onStart()->onDestroy() 【主題】:Activ ...
  • 在程式開始以#開頭的命令,他們是預編譯命令。有三類預編譯命令:巨集定義命令、文件包含命令、條件編譯命令;今天聊聊巨集定義: 巨集定義命令將一個標識符定義為一個字元串,源程式中的該標識符均以指定的字元串來代替。因此預處理命令後通常不加分號。這並不是說所有的預處理命令後都不能有分號出現。由於巨集定義只是用巨集名對 ...
  • HTTP原理 1. 什麼是URL 在介紹HTTP之前,我們對URL有一定的瞭解的,因為只有通過URL我們才能拿到網路上的資源。那麼究竟什麼是URL? URL(Uniform Resource Locator 統一資源定位符):URL其實就是資源在互聯網上的地址、位置,互聯網上的每一個資源都有一個唯一 ...
  • <TextView android:id="@+id/desc" android:layout_width="match_parent" android:layout_height="130px" android:lineSpacingExtra="2px" android:textColor="@ ...
  • 1、表的修改: 1.1 刪除列:ALTER TABLE 表名 DROP COLUMN 列名 1.2 添加列:ALTER TABLE 表名 ADD(列名 數據類型) 1.3 修改列名:ALTER TABLE 表名 RENAME COLUMN 舊列名 TO 新列名 1.4 修改列的數據類型:ALTER ...
  • oracle_11g有32位和64位兩個版本,64位的電腦可以裝32位的版本,但是32位的電腦不可以裝64位,如果你是64位的,建議你裝64位的版本。 安裝包下載 32位 http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2 ...
  • 1.慢SQL消耗了70%~90%的資料庫CPU資源; 2.SQL語句獨立於程式設計邏輯,相對於對程式源代碼的優化,對SQL語句的優化在時間成本和風險上的代價都很低; 3.SQL語句可以有不同的寫法; 下麵是我總結的一些SQL常見的優化方法,每個案例都簡單易懂,在開發過程中可以作為參考: 不使用子查詢 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...