使用docker搭建hadoop集群

轉(zhuǎn)載自:
https://blog.csdn.net/czfblog/article/details/89901448?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param

項(xiàng)目地址:https://github.com/czfshine/docker-hadoop

docker-hadoop

A dockerfile for setting up a full Hadoop cluster server

一套在ubuntu 下生成和部署Hadoop的Docker鏡像的配置文件集與示例驯嘱。

-1. 基礎(chǔ)概念

  • Hadoop 一個(gè)大數(shù)據(jù)的分布式計(jì)算框架
  • Docker 一個(gè)輕量級(jí)的容器服務(wù)

Hadoop 是一個(gè)分布式的計(jì)算機(jī)框架,顯然要有多臺(tái)機(jī)器(當(dāng)然可以搭偽分布式的).這時(shí)候就需要有多臺(tái)機(jī)器.可以用虛擬機(jī)模擬,但是虛擬機(jī)太重,性能損耗大.

Docker 是一個(gè)輕量級(jí)的容器服務(wù),相當(dāng)于一個(gè)虛擬機(jī),不過損耗的資源較小

  • Docker 鏡像 包括運(yùn)行一個(gè)程序所需的所有文件
  • Volumes 卷 一個(gè)Docker的圖層,作用于某個(gè)正在運(yùn)行的容器的鏡像上面

Docker鏡像一旦生成即不可變的,但是我們的程序要生成或獲取一些動(dòng)態(tài)的文件.Volume就是來解決這個(gè)問題的,它將Host的一個(gè)路徑與容器的一個(gè)路徑關(guān)聯(lián)起來,容器讀寫該路徑下的文件會(huì)被代理到Host關(guān)聯(lián)的路徑下.

  • 端口映射 將容器的端口和主機(jī)的端口關(guān)聯(lián)起來

我們的Hadoop 的datanode和namenode什么的都會(huì)監(jiān)聽同樣的端口,我們將這些端口映射到主機(jī)的不同端口上,可以從主機(jī)訪問各個(gè)容器的狀態(tài).

  • docker-compose 用來啟動(dòng)和配置多個(gè)鏡像

我們啟動(dòng)一個(gè)hadoop的docker集群,必然有多個(gè)容器要先后啟動(dòng),他們的端口和文件映射都需要獨(dú)立的進(jìn)行配置,docker-compose是一個(gè)用來的幫助我們完成這些功能的小工具

0.安裝依賴

在宿主機(jī)上需要用到的程序大概有(不完全):

  • docker-ce 社區(qū)版就行

  • maven java 的庫和項(xiàng)目管理程序

  • idea java的IDE

1.生成鏡像

這一步可以跳過,直接在docker hub下載我上傳的鏡像
然后在某一步出錯(cuò)或卡住,去看持續(xù)集成是怎么做的(travis-ci的腳本)

1.0 前言

其實(shí)很多人(包括我)都搭建過hadoop的鏡像,然后上傳到Docker Hub的,區(qū)別(可能)只是里面的配置文件不一樣,所以不想自己搭建的可以用搭好的,然后再改改.不過不保證可用性,下面是一些看起來比較有用的鏡像:

1.1 參考資料

1.2 鏡像繼承結(jié)構(gòu)

  • ubuntu:xenial 基礎(chǔ)的ubuntu系統(tǒng)鏡像
    • hadoop-base 包括jdk,hadoop等需要用到的安裝包
      • hadoop-master 主機(jī)
      • hadopp-slave 計(jì)算節(jié)點(diǎn)

1.3 基礎(chǔ)鏡像搭建

我們要將運(yùn)行hadoop所需的文件,程序安裝到該鏡像

這里分成多個(gè)不同層次的鏡像構(gòu)建,還沒研究docker構(gòu)建的緩存細(xì)節(jié),所以這樣當(dāng)做手動(dòng)使用緩存,不需要每次都從零開始構(gòu)建

  • 先搭個(gè)jdk8的環(huán)境

todo :這里為了省事直接apt get的,比較大,下一次改成解壓二進(jìn)制包試試大小

cd ./docker/jdk8
docker build -t czfshine/openjdk8 .

測試一下:

docker run -t -i czfshine/openjdk8:latest
java -version

  • 然后是ssh
cd ./docker/ssh
docker build -t czfshine/ssh .

同樣的測試一下

docker run -t -i czfshine/ssh
ssh localhost

下面正式構(gòu)建hadoop鏡像了

  • 首先cd到docker/hadoop-base文件夾下

  • 執(zhí)行./download.sh 它將從清華大學(xué)鏡像站下載2.7.7版本的Hadoop

    這一步當(dāng)然可以寫在Dockerfile里面,可是考慮到每一次構(gòu)建鏡像都要下載一次太慢了,就算了:)

  • 執(zhí)行clean.sh 刪掉hadoop里面的文檔,這些我們不需要打包到鏡像的

 docker build -t czfshine/hadoop-base:2.7.7 .

2.測試鏡像和啟動(dòng)

啟動(dòng)

tools下有兩個(gè)腳本

  • start-all-containers.sh 啟動(dòng)一個(gè)hadoop集群,并attach到master
  • stop-all-containers.sh 關(guān)掉并清理上一個(gè)腳本啟動(dòng)的容器

啟動(dòng)集群后,連接master,在用戶目錄下有個(gè)start-hadoop.sh腳本,執(zhí)行后會(huì)在各個(gè)節(jié)點(diǎn)啟動(dòng)對(duì)應(yīng)的hadoop服務(wù).

執(zhí)行命令和代碼

啟動(dòng)集群和服務(wù)后,在master下可以直接執(zhí)行下列類似的命令:

hadopp dfs -ls /
hadoop jar xxxx.jar xxx yyy zzz

同時(shí),掛載了宿主機(jī)的~/hadoop 到容器的/data.需要執(zhí)行的jar包和數(shù)據(jù)可以直接放到該目錄下.

3. docker-compose 配置和啟動(dòng)

todo

4.IDEA的配置

todo :基本上開箱即用,不過可以裝幾個(gè)QOL的插件

5. 示例項(xiàng)目

在example文件夾下,具體看里面的README.MD

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市溪胶,隨后出現(xiàn)的幾起案子呛伴,更是在濱河造成了極大的恐慌挣饥,老刑警劉巖锚赤,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件题翻,死亡現(xiàn)場離奇詭異,居然都是意外死亡平夜,警方通過查閱死者的電腦和手機(jī)狠毯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褥芒,“玉大人,你說我怎么就攤上這事∶谭觯” “怎么了献酗?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坷牛。 經(jīng)常有香客問我罕偎,道長,這世上最難降的妖魔是什么京闰? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任颜及,我火速辦了婚禮,結(jié)果婚禮上蹂楣,老公的妹妹穿的比我還像新娘俏站。我一直安慰自己,他們只是感情好痊土,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布肄扎。 她就那樣靜靜地躺著,像睡著了一般赁酝。 火紅的嫁衣襯著肌膚如雪犯祠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天酌呆,我揣著相機(jī)與錄音衡载,去河邊找鬼。 笑死隙袁,一個(gè)胖子當(dāng)著我的面吹牛痰娱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藤乙,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猜揪,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了坛梁?” 一聲冷哼從身側(cè)響起而姐,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎划咐,沒想到半個(gè)月后拴念,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡褐缠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年政鼠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片队魏。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡公般,死狀恐怖万搔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情官帘,我是刑警寧澤瞬雹,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站刽虹,受9級(jí)特大地震影響酗捌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涌哲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一胖缤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阀圾,春花似錦哪廓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至账月,卻和暖如春综膀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背局齿。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工剧劝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抓歼。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓讥此,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谣妻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萄喳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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