制作一個(gè)用來調(diào)試hive的docker鏡像

為了調(diào)試hive洲愤,我們使用docker來制作一個(gè)鏡像摇幻『嵴欤可以在鏡像中啟動(dòng)hive的相關(guān)服務(wù),在本地ide(intellij)中進(jìn)行遠(yuǎn)程調(diào)試绰姻。
先放出最后制作好的鏡像: docker pull limengjiao029/hive:v0.1

使用方法:

  1. 啟動(dòng)鏡像:
    docker run --privileged -tid -p 8000:8000 -p 8088:8088 -p 8042:8042 -p 50070:50070 limengjiao029/hive:v0.1

  2. 登陸鏡像:
    containerID 為上一步啟動(dòng)鏡像后得到的容器id枉侧。
    docker exec -ti containerID /bin/bash

  3. 啟動(dòng)服務(wù):
    登陸后可以根據(jù)需要啟動(dòng)各組件的服務(wù)。

  • 環(huán)境變量:JAVA_HOME, HADOOP_HOME, HIVE_HOME 已設(shè)置
  • mysql:已經(jīng)默認(rèn)啟動(dòng)狂芋。已建立root與hadoop用戶榨馁,密碼均為 123!@#qweQWE
  • Hadoop:已經(jīng)配置為yarn模式。namenode已經(jīng)格式化帜矾。直接啟動(dòng)即可翼虫。$HADOOP_HOME\sbin\start-all.sh
  • Hive: metastore 使用的數(shù)據(jù)已經(jīng)配置為mysql.
    -- 啟動(dòng)metastore服務(wù): hive --service metastore
    -- 使用cli:hive
    -- 啟動(dòng)hiveserver2: hiveserver2
    -- 連接hiveserver2: beeline -u "jdbc:hive2://127.0.0.1:10000"
  1. UI界面:
  • yarn: http://127.0.0.1:8088
  1. 遠(yuǎn)程調(diào)試:
  • 啟動(dòng)cli: hive --debug 此時(shí)程序會(huì)監(jiān)聽8000端口屑柔,等待ide連接
  • intellj: 配置遠(yuǎn)程模式,端口填寫為8000珍剑,在cli模塊代碼中打好斷點(diǎn)掸宛,點(diǎn)擊運(yùn)行。


    Screen Shot 2018-09-01 at 9.58.42 AM.png

搭建過程:

  1. 創(chuàng)建dockerfile:
> mkdir hivedocker
> cd hivedocker
> touch Dockerfile

  1. 編輯Dockerfile:
FROM centos:7
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
RUN yum -y install net-tools
RUN yum -y install wget
RUN yum -y install vim-common
RUN yum -y install openssh*
RUN yum -y install initscripts
RUN yum -y install which
CMD ["/usr/sbin/init"]

  1. 生成鏡像:
> docker build -t local/base

--

  1. 環(huán)境配置:
    按照上文的方法啟動(dòng)并登入 local/base 鏡像招拙。假設(shè)得到的container id 是 baseContainerID唧瘾,后續(xù)會(huì)用到這個(gè)id。

-- 安裝jdk

> wget http://~/jdk-8u181-linux-x64.tar.gz
> tar -zxf jdk-8u181-linux-x64.tar.gz 
> export JAVA_HOME=
> export PATH=$JAVA_HOME/bin:$PATH

-- 安裝mysql:

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
yum install  -y  mysql-community-server

-- 配置mysql:
mysql安裝后重設(shè)密碼

> vi /etc/my.cnf # 最后一行增加 skip-grant-tables
> service mysqld start
> mysql
mysql > use mysql;
mysql > update user set authentication_string = password("root") where user='root';
mysql > exit;
> vi /etc/my.cnf # 去掉最后一行
> service mysqld stop
> service mysqld start
> mysql -uroot -proot
mysql > alter user 'root'@'localhost' identified by '123!@#qweQWE';
mysql > flush privileges;
mysql > exit;

創(chuàng)建hadoop賬戶迫像,并創(chuàng)建hive數(shù)據(jù)庫

mysql > create user 'hadoop'@'localhost' identified by '123!@#qweQWE';
mysql > grant all privileges on *.* to hadoop;
mysql > create database hive;

-- 配置hadoop:
下載hadoop,編輯 hadoop-env.sh, core-site.xml, hdfs-site.xml劈愚。 如果使用yarn模式,還需要編輯mapred-site.xml和yarn-site.xml.

hadoop-env.sh

export JAVA_HOME=/***/jdk1.8.0_181

core-site.xml

<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>

hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

yarn-site.xml

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

環(huán)境變量和初始化

> export HADOOP_HOME=
> export PATH=$HADOOP_HOME/bin:$PATH
> hadoop namenode -format

-- 配置hive:
下載hive闻妓,編輯hive-env.sh,根據(jù)需要編輯hive-site.xml
hive-env.sh

HADOOP_HOME=
HIVE_CONF_DIR=

hive-site.xml

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123!@#qweQWE</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

初始化metastore

> schematool -dbType mysql -initSchema

  1. 提交更改
> docker commit baseContainerID limengjiao/029:v0.1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末菌羽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子由缆,更是在濱河造成了極大的恐慌注祖,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件均唉,死亡現(xiàn)場離奇詭異是晨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舔箭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門罩缴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人层扶,你說我怎么就攤上這事箫章。” “怎么了镜会?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵檬寂,是天一觀的道長。 經(jīng)常有香客問我戳表,道長桶至,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任匾旭,我火速辦了婚禮镣屹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘季率。我一直安慰自己野瘦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鞭光,像睡著了一般吏廉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惰许,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天席覆,我揣著相機(jī)與錄音,去河邊找鬼汹买。 笑死佩伤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晦毙。 我是一名探鬼主播生巡,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼见妒!你這毒婦竟也來了孤荣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤须揣,失蹤者是張志新(化名)和其女友劉穎盐股,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耻卡,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疯汁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卵酪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幌蚊。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖溃卡,靈堂內(nèi)的尸體忽然破棺而出霹肝,到底是詐尸還是另有隱情,我是刑警寧澤塑煎,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站臭蚁,受9級特大地震影響最铁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垮兑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一冷尉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧系枪,春花似錦雀哨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膊夹。三九已至,卻和暖如春捌浩,著一層夾襖步出監(jiān)牢的瞬間放刨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工尸饺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留进统,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓浪听,卻偏偏與公主長得像螟碎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子迹栓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

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