1. 程式人生 > >使用docker快速搭建hive環境

使用docker快速搭建hive環境

> 記錄一下使用docker快速搭建部署hive環境 [toc] ## 寫在前面 想練練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](https://www.cnblogs.com/reasonzzy/p/11127359.html)這篇文章,我配的是阿里雲映象。 ## 安裝git & 配置github 執行以下命令就可以安裝git了 ```` yum -y install git ```` 配置github的話,比較常規的操作,可以參考[https://www.cnblogs.com/smartwen666/p/7891108.html](https://www.cnblogs.com/smartwen666/p/7891108.html)這篇文章。 ## 部署Hive 準備工作都做完了,可以開始部署Hive了。 #### docker-hive 用的是大佬寫好的docker-hive。 上鍊接:[https://github.com/big-data-europe/docker-hive](https://github.com/big-data-europe/docker-hive) 可以根據README.md中的介紹,來進行部署、測試。 #### 開始部署 依次執行以下命令 ``` git clone [email protected]:big-data-europe/docker-hive.git # 注:本文所有docker-compose都是在docker-hive目錄下執行的 cd docker-hive # 這步在後臺起一個hive,元資料庫用的是postgresql # 會費一點時間,需要耐心等待 docker-compose up -d ``` 等上面命令執行完成後,可以執行`docker-compose ps`命令檢視正在執行的映象。 下圖是我執行這個命令的截圖: ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200807133503835.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2lmZW5nZ2VnZQ==,size_16,color_FFFFFF,t_70) 可以看到有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; ``` 查詢結果: ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200807133510855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2lmZW5nZ2VnZQ==,size_16,color_FFFFFF,t_70) 至此,就可以開始愉快的寫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/](https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/) Centos7下安裝Docker:[https://blog.csdn.net/u014069688/article/details/100532774](https://blog.csdn.net/u014069688/article/details/100532774 ) Docker Compose教程:[https://www.runoob.com/docker/docker-compose.html](https://www.runoob.com/docker/docker-compose.html) Docker Compose詳解:[https://www.jianshu.com/p/658911a8cff3](https://www.jianshu.com/p/658911a8cff3) 配置docker國內映象源:[https://www.cnblogs.com/reasonzzy/p/11127359.html](https://www.cnblogs.com/reasonzzy/p/11127359.html) git配置連線github:[https://www.cnblogs.com/smartwen666/p/7891108.html](https://www.cnblogs.com/smartwen666/p/7891108.html) docker-hive github:[https://github.com/big-data-europe/docker-hive](https://github.com/big-data-europe/docke