使用docker快速搭建hive環境

upupfeng發表於2020-08-07

記錄一下使用docker快速搭建部署hive環境

寫在前面

想練練Hive SQL,但是沒有hive shell環境。現在只有一臺空的CentOS 7機子,一想要弄jdk、hadoop、mysql、hive就頭疼。

於是在網上找了找,發現用docker部署hive會快很多,在此記錄一下部署過程。

以下過程每一步在文末都附有參考文件,出錯的朋友可以去看對應的參考文件。

步驟

  1. 安裝docker
  2. 安裝git,配置github。因為用的是github上大佬寫好的docker compose服務,所以要git clone下來。
  3. 部署hive
  4. 使用hive命令列
  5. 收尾工作

安裝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

相關文章