docker 安裝Hive


轉自:https://www.cnblogs.com/upupfeng/p/13452385.html#%E9%83%A8%E7%BD%B2hive

 

使用docker快速搭建hive環境

 

記錄一下使用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

#或者直接用hive命令連接(退出exit):
hive

查看Hive表存儲目錄:

hadoop fs -ls /user/hive/warehouse

 # 執行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了。

查找表信息:

hive> show create table pokes;
OK
CREATE TABLE `pokes`(
  `foo` int, 
  `bar` string)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'hdfs://namenode:8020/user/hive/warehouse/pokes'
TBLPROPERTIES (
  'transient_lastDdlTime'='1606614975')
Time taken: 1.068 seconds, Fetched: 13 row(s)

 

瀏覽器查看hdfs -> Utilities:

 

 

 

hive 分區(靜態分區,動態分區):

分區表的的字段不能是定義表的字段,不然會報重復columns

hive> create table t1(
    >     id      int
    >    ,name    string
    >    ,hobby   array<string>
    >    ,add     map<String,string>
    > )
    > partitioned by (name string)
    > row format delimited
    > fields terminated by ','
    > collection items terminated by '-'
    > map keys terminated by ':'
    > ;
FAILED: SemanticException [Error 10035]: Column repeated in partitioning columns

 

收尾工作

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM