記錄一下使用docker快速搭建部署hive環境
寫在前面
想練練Hive SQL,但是沒有hive shell環境。現在只有一臺空的CentOS 7機子,一想要弄jdk、hadoop、mysql、hive就頭疼。
於是在網上找了找,發現用docker部署hive會快很多,在此記錄一下部署過程。
以下過程每一步在文末都附有參考文件,出錯的朋友可以去看對應的參考文件。
步驟
- 安裝docker
- 安裝git,配置github。因為用的是github上大佬寫好的docker compose服務,所以要git clone下來。
- 部署hive
- 使用hive命令列
- 收尾工作
安裝docker
要用到docker和docker-compose,我們依次來安裝
安裝docker
如果你之前安裝過 docker,請先刪掉
yum remove docker docker-common docker-selinux docker-engine
安裝一些依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
拉取docker-ce.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
把軟體倉庫地址替換為 TUNA:
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
最後安裝(預設安裝的是最新版docker):
yum makecache fast
yum install docker-ce
啟動docker,設為開機自啟,檢視docker版本
systemctl start docker
systemctl enable docker
docker version
至此,不報錯的話,docker就安裝好了。
安裝docker-compose
依次執行以下命令
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
配置docker國內映象源(可選)
我在後面pull docker映象時,速度很慢,所以又配了一下國內映象加速源,可配可不配。
參考https://www.cnblogs.com/reasonzzy/p/11127359.html這篇文章,我配的是阿里雲映象。
安裝git & 配置github
執行以下命令就可以安裝git了
yum -y install git
配置github的話,比較常規的操作,可以參考https://www.cnblogs.com/smartwen666/p/7891108.html這篇文章。
部署Hive
準備工作都做完了,可以開始部署Hive了。
docker-hive
用的是大佬寫好的docker-hive。
上鍊接:https://github.com/big-data-europe/docker-hive
可以根據README.md中的介紹,來進行部署、測試。
開始部署
依次執行以下命令
git clone git@github.com:big-data-europe/docker-hive.git
# 注:本文所有docker-compose都是在docker-hive目錄下執行的
cd docker-hive
# 這步在後臺起一個hive,後設資料庫用的是postgresql
# 會費一點時間,需要耐心等待
docker-compose up -d
等上面命令執行完成後,可以執行docker-compose ps
命令檢視正在執行的映象。
下圖是我執行這個命令的截圖:
可以看到有namenode、datanode、hive等,表示部署成功了。
使用Hive命令列
依次執行以下步驟
# 進入bash
docker-compose exec hive-server bash
# 使用beeline客戶端連線
/opt/hive/bin/beeline -u jdbc:hive2://localhost:10000
# 執行SQL。這兩句是可以直接執行的,映象帶了example檔案
CREATE TABLE pokes (foo INT, bar STRING);
LOAD DATA LOCAL INPATH '/opt/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
# 查詢
select * from pokes;
查詢結果:
至此,就可以開始愉快的寫Hive SQL了。
收尾工作
安裝vi、lrzsz
準備sql表資料時,發現這個docker image預設沒有安裝vi,就自己安一個吧。
apt-get update
apt-get install vim
# lrzsz是一個上傳下載檔案的工作,也安裝一下
apt-get install lrzsz
關閉相關命令
# 關閉hive相關服務
docker-compose kill
# 關閉docker
systemctl stop docker
# 跑路
init 0
END
一套操作下來,好像也沒省多少事。但是有docker,部署亂七八糟的環境還是挺省心的。
安裝過程有問題的小夥伴,可以看下面的參考連結,也可以評論交流。
參考連結
清華映象站安裝docker:https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
Centos7下安裝Docker:https://blog.csdn.net/u014069688/article/details/100532774
Docker Compose教程:https://www.runoob.com/docker/docker-compose.html
Docker Compose詳解:https://www.jianshu.com/p/658911a8cff3
配置docker國內映象源:https://www.cnblogs.com/reasonzzy/p/11127359.html
git配置連線github:https://www.cnblogs.com/smartwen666/p/7891108.html
docker-hive github:https://github.com/big-data-europe/docker-hive