16.用Hadoop命令向CDH集群提交MR作業(yè)

16.1 實驗環(huán)境介紹

  • 內(nèi)容概述
    • 環(huán)境準備
    • Kerberos環(huán)境和非Kerberos集群
  • 測試環(huán)境
    • Kerberos集群CDH5.11.2,OS為Redhat7.2
    • 非Kerberos集群CDH5.13觅够,OS為CentOS6.5
  • 前置條件
    • CDH集群運行正常
    • 本地開發(fā)環(huán)境與集群網(wǎng)絡(luò)互通且端口放通

16.2 示例

這里使用的代碼是沒有加載CDH集群的xml配置的陶因,因為使用hadoop命令提交時會加載集群的配置信息(如hdfs-site.xml/yarn-site.xlm/core-sitem.xml等)骡苞。

package com.cloudera.mr;

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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * package: com.cloudera.mr
 * describe: 打包jar到集群使用hadoop命令提交作業(yè)示例
 * creat_user: Fayson
 * email: htechinfo@163.com
 * creat_date: 2017/12/6
 * creat_time: 下午11:30
 * 公眾號:Hadoop實操
 */
public class WordCount {

    private static Logger logger = LoggerFactory.getLogger(WordCount.class);

    public static void main(String[] args) {

        logger.info(args[0] + "-----" + args[1]);
        try {
            Configuration conf = new Configuration();
            Job wcjob = Job.getInstance(conf);
            wcjob.setJobName("MyWordCount");
            wcjob.setJarByClass(WordCount.class);

            wcjob.setJarByClass(InitMapReduceJob.class);

            wcjob.setMapperClass(WordCountMapper.class);
            wcjob.setReducerClass(WordCountReducer.class);
            wcjob.setMapOutputKeyClass(Text.class);
            wcjob.setMapOutputValueClass(LongWritable.class);
            wcjob.setOutputKeyClass(Text.class);
            wcjob.setOutputValueClass(LongWritable.class);
            FileInputFormat.setInputPaths(wcjob, args[0]);

            FileOutputFormat.setOutputPath(wcjob, new Path(args[1]));
            //調(diào)用job對象的waitForCompletion()方法,提交作業(yè)楷扬。
            boolean res = wcjob.waitForCompletion(true);
            System.exit(res ? 0 : 1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

16.3 編譯打包MapReduce作業(yè)

  • 使用Maven命令進行編譯打包解幽,該命令運行需要在工程所在目錄下運行
cd /Volumes/Transcend/work/cdhproject
mvn clean package
  • 編譯成功后,在工程的target目錄下可以看到mr-demo-1.0-SNAPSHOT.jar包


  • 將mr-demo-1.0-SNAPSHOT.jar包上傳到CDH集群的任意節(jié)點
    • 注意:這里是將jar包上傳至CDH集群的任意節(jié)點且hadoop命令可以正常運行烘苹。

16.4 非Kerberos集群提交作業(yè)

  • 在命令行執(zhí)行如下命令提交MR作業(yè)
hadoop jar mr-demo-1.0-SNAPSHOT.jar com.cloudera.mr.WordCount /fayson/test_table /wordcount/
  • Yarn界面查看躲株,作業(yè)收費執(zhí)行成功
  • 查看HDFS輸出目錄

16.5 Kerberos集群提交作業(yè)

  • 在Kerberos集群init Kerberos賬號
[ec2-user@ip-172-31-22-86 ~]$ kdestroy
[ec2-user@ip-172-31-22-86 ~]$ kinit -kt fayson.keytab fayson
[ec2-user@ip-172-31-22-86 ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: fayson@CLOUDERA.COM

Valid starting       Expires              Service principal
12/06/2017 11:02:53  12/07/2017 11:02:53  krbtgt/CLOUDERA.COM@CLOUDERA.COM
        renew until 12/13/2017 11:02:53
[ec2-user@ip-172-31-22-86 ~]$
  • 在命令行使用hadoop提交作業(yè)
[ec2-user@ip-172-31-22-86 ~]$ hadoop jar mr-demo-1.0-SNAPSHOT.jar com.cloudera.mr.WordCount /fayson /wordcount/out
  • Yarn界面查看作業(yè)是否執(zhí)行成功
  • 查看HDFS目錄輸出的結(jié)果

16.6 總結(jié)

  • 在本地環(huán)境開發(fā)MapReduce作業(yè)的時候,需要加載集群的xml配置镣衡,將打包好的MR jar包提交到集群使用hadoop命令運行時霜定,代碼里面的Configuration在初始化的時候不需要加載xml的配置即可。

大數(shù)據(jù)視頻推薦:
騰訊課堂
CSDN
大數(shù)據(jù)語音推薦:
企業(yè)級大數(shù)據(jù)技術(shù)應(yīng)用
大數(shù)據(jù)機器學(xué)習(xí)案例之推薦系統(tǒng)
自然語言處理
大數(shù)據(jù)基礎(chǔ)
人工智能:深度學(xué)習(xí)入門到精通

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廊鸥,一起剝皮案震驚了整個濱河市望浩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌黍图,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奴烙,死亡現(xiàn)場離奇詭異助被,居然都是意外死亡剖张,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門揩环,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搔弄,“玉大人,你說我怎么就攤上這事丰滑」擞蹋” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵褒墨,是天一觀的道長炫刷。 經(jīng)常有香客問我,道長郁妈,這世上最難降的妖魔是什么浑玛? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮噩咪,結(jié)果婚禮上顾彰,老公的妹妹穿的比我還像新娘。我一直安慰自己胃碾,他們只是感情好涨享,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仆百,像睡著了一般厕隧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上儒旬,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天栏账,我揣著相機與錄音,去河邊找鬼栈源。 笑死挡爵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甚垦。 我是一名探鬼主播茶鹃,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼艰亮!你這毒婦竟也來了闭翩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤迄埃,失蹤者是張志新(化名)和其女友劉穎疗韵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侄非,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蕉汪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年流译,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片者疤。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡福澡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驹马,到底是詐尸還是另有隱情革砸,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布糯累,位于F島的核電站算利,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏寇蚊。R本人自食惡果不足惜笔时,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仗岸。 院中可真熱鬧允耿,春花似錦、人聲如沸扒怖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盗痒。三九已至蚂蕴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俯邓,已是汗流浹背骡楼。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稽鞭,地道東北人鸟整。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像朦蕴,于是被迫代替她去往敵國和親篮条。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容