1. 程式人生 > >CDH5.0.0使用hue中的oozie編輯器建立一個wordcount的mapreduce job

CDH5.0.0使用hue中的oozie編輯器建立一個wordcount的mapreduce job

<workflow-app name="test4" xmlns="uri:oozie:workflow:0.4">
    <start to="test4"/>
    <action name="test4">
        <map-reduce>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <prepare>
                  <delete path="${nameNode}${outputDir}"/>
            </prepare>
              <job-xml>/shareScripts/xxmapred-site.xml</job-xml>
            <configuration>
                <property>
                    <name>mapreduce.job.map.class</name>
                    <value>com.besttone.hbase.demo.WordCount$TokenizerMapper</value>
                </property>
                <property>
                    <name>mapreduce.job.reduce.class</name>
                    <value>com.besttone.hbase.demo.WordCount$IntSumReducer</value>
                </property>
                <property>
                    <name>mapreduce.job.combine.class</name>
                    <value>com.besttone.hbase.demo.WordCount$IntSumReducer</value>
                </property>
                <property>
                    <name>mapreduce.job.output.key.class</name>
                    <value>org.apache.hadoop.io.Text</value>
                </property>
                <property>
                    <name>mapreduce.job.output.value.class</name>
                    <value>org.apache.hadoop.io.IntWritable</value>
                </property>
                <property>
                    <name>mapreduce.input.fileinputformat.inputdir</name>
                    <value>${inputDir}</value>
                </property>
                <property>
                    <name>mapreduce.output.fileoutputformat.outputdir</name>
                    <value>${outputDir}</value>
                </property>
                <property>
                    <name>mapred.mapper.new-api</name>
                    <value>true</value>
                </property>
                <property>
                    <name>mapred.reducer.new-api</name>
                    <value>true</value>
                </property>
                <property>
                    <name>mapreduce.job.reduces</name>
                    <value>1</value>
                </property>
            </configuration>
        </map-reduce>
        <ok to="end"/>
        <error to="kill"/>
    </action>
    <kill name="kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

配置檔案要注意的地方:

mapred.mapper.new-api和mapred.reducer.new-api這兩個屬性設定成true,表示使用新的api介面。老的API介面的配置屬性和新的配置屬性是不一樣的,mapreduce打頭的屬性都是新介面屬性,老介面屬性是mapred打頭的。

下面用圖形化的方式來描述如何建立一個workflow

1 新建一個workflow:

這裡我們新建了一個workflow叫test5,然後點選儲存。

2 檢視一下這個workflow的工作目錄在哪:


可以看到如圖所示的工作目錄,現在工作目錄下面是空的,等提交了workflow後,在工作目錄下面就會生成workflow.xml還有lib目錄,裡面存放相應的依賴包.

3 編輯這個workflow,拖一個mapreduce action到start和end之間:

轉到mapreduce action的編輯介面,

Jar名稱選擇你自己編寫的wordcount類打成的jar包,這個JAR包必須上傳到HDFS上,我這裡存放在HDFS的/sharelib目錄下面。

準備階段新增一個“新增刪除”動作,填寫刪除的目錄,因為mapreduce輸出目錄如果存在的話,提交JOB的時候會報錯無法提交,所以在提交JOB之前需要刪除輸出目錄,這裡輸出目錄的寫法是${outputDir},為EL表示式語言,即對輸出目錄進行了引數化,當你在提交workflow的時候,會彈出一個對話方塊讓你填寫這些引數。

job屬性配置:


作業XML設定:

JOB屬性配置會覆蓋作業XML檔案中的配置。作業XML一般都是配置一些通用的不長改變的屬性,存成一個檔案放到HDFS上去,經常變的就放到job屬性配置中一個一個的配置。

3 配置好後,提交workflow,填寫輸入目錄和輸出目錄兩個引數,就job就開始運行了。

說明:oozie提交mapreduce job和傳統的通過hadoop jar方式執行job不同,hadoop jar方式把該配置的屬性都寫在main方法裡面了,而oozie 提交mapreduce不能這樣做,所以必須把傳統的main方法裡設定的屬性,都作為job屬性設定一項一項的設定上。至於具體的屬性名,可以通過檢視原始碼來找到,比如job.setMapperClass(TokenizerMapper.class);可以點進這個方法裡面去看到底設定的是哪個屬性名,常用的屬性名都定義在MRJobConfig這個類中,比如public static final String MAP_CLASS_ATTR = "mapreduce.job.map.class";定義的是將要使用的map類。

workflow提交後,我們再次去檢視工作區,可以看到如下圖:

工作區下面多了workflow.xml和lib目錄,lib目錄裡存放的是我們剛才設定的jar檔案:

workflow.xml內容就是本文開頭描述的XML程式碼片段。

相關推薦

CDH5.0.0使用hueoozie編輯建立一個wordcount的mapreduce job

<workflow-app name="test4" xmlns="uri:oozie:workflow:0.4"> <start to="test4"/> <action name="test4"> &l

Cocos2d-x3.0遊戲例項之《別救我》第五篇——使用Cocostudio UI編輯建立操作介面

這一篇內容其實很簡單,已經對Cocostudio比較熟悉的朋友就可以隨便掃一下了~(小若:熟悉Cocostudio的人誰還有空看你的基礎教程呢)下載Cocostudio我這篇教程使用的版本是V1.3.0.1,它同一個版本還有3個分支,大家隨便選擇一個分支吧:Cocos2d-x

thinkphp5.0引入百度編輯

.config ext 引入 strong scrip php5 text 需要 pla 1.首先在百度下載百度編輯器2.下載後一次把ueditor.config.js,ueditor.all.js,zh-cn.js這個三個js引入。 <script type=

linux操作系統vim編輯的使用

linux操作系統linux操作系統中vim編輯器的使用

LinuxVIM編輯的使用方法歸納

set linux tmp目錄 所在 vim 字母 單詞 後退 末行模式 VIM是linux系統最為普遍的文本編輯軟件,幾乎任意一種linux發行版默認都會安裝這款軟件。雖然現在已經出現了很多適合linux的文本編輯軟件,但是VIM的強大是無法替代的。 VIM有三種模式:指

vue2.0 實現富文字編輯功能

前端富文字編譯器使用總結: UEditor:百度前端的開源專案,功能強大,基於 jQuery,但已經沒有再維護,而且限定了後端程式碼,修改起來比較費勁 bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery... kindEditor:功能強大,程

Qt文字編輯實現語法高亮功能(Qscitinlla)

Qt中文字編輯器實現語法高亮功能(Qscitinlla) Scintilla是一個免費、跨平臺、支援語法高亮的編輯控制元件。它完整支援原始碼的編輯和除錯,包括語法高亮、錯誤指示、程式碼完成(code completion)和呼叫提示(call tips)。能包含標記(marker)的頁邊(mar

VC++6.0 MFC獲取編輯框內容

1、方法一:設定編輯框變數 在MFC的基本對話方塊中,建立一個編輯框控制元件,為控制元件新增一個型別為CEdit的變數 m_Edit 。 CString str; m_Edit.GetWindowText(str); 2、方法二:通過ID獲取 CString

Linuxvim編輯常用命令

移動游標 Ctrl+f:螢幕向下移動一頁,相當於【Page Down】按鍵Ctrl+b:螢幕向上移動一頁,相當與【PageUp】按鍵 0或功能鍵【Home】:數字‘0’:移動到這一行的最前面的字元處$或則按鍵【End】:移動到這一行的最後面的字元處 G:移動到這個檔案的最後一行gg:移動到這個檔案的第一

LinuxVi編輯之簡單常用命令

Vi是Linux中最基本的文字編輯器。vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:    1) 命令列模式command mode)   控制螢

Go語言環境安裝,驗證go語言環境、使用文字編輯編寫一個go hello world,Go lang IDE安裝,在golang新建一個go程式

1 Golang語言環境安裝包下載 https://www.golangtc.com/ 下載: go1.9.2.windows-amd64.msi 和 go1.9.2.windows-amd64.zip 2 golang語言環境安裝 本筆記使用go1.10.2.window

Linux終端編輯

上一篇中提到設定ssh連線的別名時雖然是在本地的機器設定,但是當遠端連線的機器上有檔案更改時該怎麼做呢? Vim vi/vim 都是Linux中的文字編輯器,Vim是vi的加強版,支援文字高亮提示之類的功能,在終端中如果編輯檔案是無法開啟圖形化介面的編輯器的

vi—終端編輯

vi —— 終端中的編輯器 目標 vi 簡介 開啟和新建檔案 三種工作模式 常用命令 分屏命令 常用命令速查圖 01. vi 簡介 1.1 學習 vi 的目的 在工作中,要對 伺服器 上的檔案進行 簡單 的修改,可以使用 ssh 遠端

大資料學習筆記(五) -- linuxvi編輯的快捷鍵

Table of Contents 末行模式  文字操作技巧 開啟檔案關閉檔案 [[email protected] ~]# vi +22 profile

在vue修改編輯html內容的圖片樣式(ueditor)

公司的需求是實現類似淘寶商品詳情(通過圖片拼接,大家都很清楚,淘寶詳情一般都是採用多張圖進行拼接) 文字的描述大家可能會覺得很枯燥無味,覺得程式碼才是最好的老師 作者將會詳細地去講解程式碼,在程式碼中找到自己的靈感!使用js實現也差不多是如此的套路。 <!-- 此頁面是單頁面 --&g

在spring 如果使用new建立一個物件時 這個物件將不在受spring管理管理

文章如標題具體如下 比如現在有一個service 層 package com.zyc.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Servi

Jupyter Notebook markdown編輯的字型顏色設定

換行: 方法1: 連續兩個以上空格+回車方法2:使用html語言換行標籤:<br> 首行縮排兩個字元:(每個表示一個空格,連續使用兩個即可) &ensp; 半形的空格&emsp; 全形的空格 字型、字號與顏色:   Jupyter Note

在用unity開發程式碼編輯的選擇

       正所謂工欲善其事必先利其器,在學習u3d的同時,我們難免會選擇一個編譯器用來寫程式碼。大部分人都會選用 MOno 或者 VS 。   一:MonoDevelop的優點是可以直接打斷點測試,但是vs就不行,還有就是不能直接用中文註釋,如果想要用中文註釋有這幾個辦法。          其一就是

如何解決IE8eWebEditor編輯按鈕不能正常使用

由於IE升級,造成網站後臺編輯器(eWebEditor)的按鈕不能使用,如:插入圖片等功能。有些第三方瀏覽器也不行,因為它們使用了IE核心,如遨遊。那麼如何解決呢,搜尋了網上資料,想必肯定不可能只有我一個人這麼倒黴吧。果然,很多朋友都碰到,解決方法也很多,大都差不多。自己結合自己的解決過程,說明下,一步到位

利用vi編輯建立編輯檔案

1、       vim是vi的升級版本。 2、       vi所UNIX和Linux系統內嵌的標準文編輯器,可執行,修改,複製,移動,貼上和刪除正文等命令,也可以進行移動游標,搜尋字元和退出vi的操作等。 3、  &nbs