溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

docker安裝hive1.2

發(fā)布時(shí)間:2020-08-01 16:13:18 來(lái)源:網(wǎng)絡(luò) 閱讀:663 作者:九月朦朧 欄目:大數(shù)據(jù)

構(gòu)建數(shù)據(jù)倉(cāng)庫(kù) (Slave1)
1、解壓數(shù)據(jù)庫(kù)

tar -zxvf apache-hive-1.2.2-bin.tar.gz /usr/local/
cd /usr/local/
mv apache-hive-1.2.2 hive

2、為hive添加環(huán)境變量
編輯/etc/profile文件,增加hive相關(guān)的環(huán)境變量配置
docker安裝hive1.2
profile文件編輯完成后,執(zhí)行下面命令,讓配置生效,命令是
docker安裝hive1.2
3、配置hive-site.xml
hive-site.xml相關(guān)的配置

cd /usr/local/hive/conf
cp hive-default.xml.template hive-site.xml

然后用hadoop創(chuàng)建目錄

hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /tmp/hive/

給剛才新建的目錄賦予讀寫(xiě)權(quán)限,執(zhí)行命令:

hadoop fs -chmod 777 /user/hive/warehouse
hadoop fs -chmod 777 /tmp/hive

之所以創(chuàng)建目錄是因?yàn)閔ive-site-xml里有這樣的配置
docker安裝hive1.2
docker安裝hive1.2

檢查目錄是否創(chuàng)建成功

hadoop fs -ls /user/hive/
hadoop fs -ls /tmp/

docker安裝hive1.2

修改hive-site.xml中的臨時(shí)目錄
將hive-site.xml文件中的${system:java.io.tmpdir}替換為hive的臨時(shí)目錄,例如我替換為/usr/local/hive/tmp,將${system:user.name}都替換為root, 并且賦予讀寫(xiě)權(quán)限
docker安裝hive1.2
docker安裝hive1.2
注意要把所有的都替換,這里用正則替換

sed -i 's@${system:java.io.tmpdir}@/usr/local/hive/tmp/@g' hive-site.xml
sed -i 's@${system:user.name}@root@g' hive-site.xml

修改hive-site.xml數(shù)據(jù)庫(kù)相關(guān)的配置
搜索javax.jdo.option.ConnectionURL,將該name對(duì)應(yīng)的value修改為MySQL的地址
docker安裝hive1.2
docker安裝hive1.2
搜索javax.jdo.option.ConnectionDriverName,將該name對(duì)應(yīng)的value修改為MySQL驅(qū)動(dòng)類路徑
docker安裝hive1.2
搜索javax.jdo.option.ConnectionUserName,將對(duì)應(yīng)的value修改為MySQL數(shù)據(jù)庫(kù)登錄名:
docker安裝hive1.2
搜索javax.jdo.option.ConnectionPassword,將對(duì)應(yīng)的value修改為MySQL數(shù)據(jù)庫(kù)的登錄密碼:
docker安裝hive1.2
搜索hive.metastore.schema.verification,將對(duì)應(yīng)的value修改為false:
docker安裝hive1.2
4、加載mysql驅(qū)動(dòng)
將MySQL驅(qū)動(dòng)包上載到lib目錄
cd /usr/local/hive/lib/
wget ftp://172.18.79.77/mysql-connector-java-5.1.5-bin.jar
注意這里的地址是我的私有地址,可以去百度找mysql驅(qū)動(dòng)包,或者在我的博客里下載(因?yàn)?1cto上重復(fù)的資料不能上傳,很無(wú)語(yǔ),就隨便加了個(gè)txt文件和驅(qū)動(dòng)包弄成一個(gè)壓縮包再上傳的)。
docker安裝hive1.2
5、修改hive-env.sh
新建hive-env.sh文件并進(jìn)行修改

cd /usr/local/hive/conf

將hive-env.sh.template文件復(fù)制一份,并且改名為hive-env.sh

cp hive-env.sh.template hive-env.sh

打開(kāi)hive-env.sh配置并且添加以下內(nèi)容:

export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

docker安裝hive1.2

6、初始化mysql
對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行初始化
進(jìn)入mysql數(shù)據(jù)庫(kù),創(chuàng)建hive用戶和hive數(shù)據(jù)庫(kù)

CREATE USER 'hive'@'localhost' IDENTIFIED BY "hive";
grant all privileges on . to hive@localhost identified by 'hive';
create database hive;

刷新數(shù)據(jù)庫(kù)

flush privileges;

退出

exit;

測(cè)試hive用戶是否創(chuàng)建成功

mysql -uhive -p
Enter passwd: hive

進(jìn)入到hive的bin目錄 執(zhí)行命令:

cd /usr/local/hive/bin

對(duì)數(shù)據(jù)庫(kù)進(jìn)行初始化,執(zhí)行命令:

schematool -initSchema -dbType mysql

執(zhí)行成功后,hive數(shù)據(jù)庫(kù)里已經(jīng)有一堆表創(chuàng)建好了
docker安裝hive1.2
7、測(cè)試hive
啟動(dòng)hive并測(cè)試
進(jìn)入到hive的bin目錄執(zhí)行命令:

cd /usr/local/hive/bin

執(zhí)行hive腳本進(jìn)行啟動(dòng),執(zhí)行命令:

./hive

docker安裝hive1.2

執(zhí)行查看sum函數(shù)的詳細(xì)信息的命令:

desc function sum;

docker安裝hive1.2

執(zhí)行新建數(shù)據(jù)庫(kù)的hive命令:

create database db_hive;

docker安裝hive1.2

在剛才創(chuàng)建的數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,執(zhí)行hive命令:

use db_hive;
create table student(id int,name string) row format delimited fields terminated by '\t';

docker安裝hive1.2

將文件數(shù)據(jù)寫(xiě)入表中
在/usr/local/hive目錄內(nèi)新建一個(gè)文件
執(zhí)行Linux命令(最好是重新打開(kāi)一個(gè)終端來(lái)執(zhí)行):

touch /opt/hive/student.txt

docker安裝hive1.2

docker安裝hive1.2

說(shuō)明:ID和name直接是TAB鍵,不是空格,因?yàn)樵谏厦鎰?chuàng)建表的語(yǔ)句中用了terminated by '\t'所以這個(gè)文本里id和name的分割必須是用TAB鍵(復(fù)制粘貼如果有問(wèn)題,手動(dòng)敲TAB鍵吧),還有就是行與行之間不能有空行,否則下面執(zhí)行l(wèi)oad,會(huì)把NULL存入表內(nèi),該文件要使用unix格式,如果是在windows上用txt文本編輯器編輯后在上載到服務(wù)器上,需要用工具將windows格式轉(zhuǎn)為unix格式,例如可以使用Notepad++來(lái)轉(zhuǎn)換。
完成上面的步驟后,在磁盤(pán)上/opt/hive/student.txt文件已經(jīng)創(chuàng)建成功,文件中也已經(jīng)有了內(nèi)容,在hive命令行中執(zhí)行加載數(shù)據(jù)的hive命令:

load data local inpath '/usr/local/hive/std.txt' into table db_hive.std;

docker安裝hive1.2

執(zhí)行命令,查看是否把剛才文件中的數(shù)據(jù)寫(xiě)入成功
docker安裝hive1.2

查看頁(yè)面
http://172.18.74.105:50070/explorer.html#/user/hive/warehouse/db_hive.db/student
docker安裝hive1.2

點(diǎn)擊std.txt
docker安裝hive1.2

在MySQL數(shù)據(jù)庫(kù)中執(zhí)行select語(yǔ)句,查看hive創(chuàng)建的表

select * from hive.TBLS;

docker安裝hive1.2

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI