日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hive(一)hive的安装与基本配置

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive(一)hive的安装与基本配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、前提:

二、安裝步驟:

1、上傳jar包至/usr/local/soft

2、解壓并重命名

3、配置環境變量

?三、配置HIVE文件

1、配置hive-env.sh

2、配置hive-site.xml

?3、配置日志

4、修改默認配置文件

?5、上傳MySQL連接jar包

四、修改MySQL編碼

1、?編輯配置文件

2、加入以下內容:

3、 重啟mysql

五、初始化HIVE

?六、進入hive

七、后續配置?

八、測試hive

hive中的幾種存儲格式

TextFile格式:文本格式

RCFile:

ORCFile:

Parquet:

其他格式:

九、配置JDBC連接

報錯:

連接到JDBC


一、前提:

安裝hive所需要的虛擬機環境為虛擬機安裝有Hadoop并且集群成功,同時Hadoop需要在啟動狀態下,同時需要安裝有mysql。不需要有zookeeper和HA,由于HA中含有大量進程,啟動會占用很多資源,建議不要有HA

二、安裝步驟:

1、上傳jar包至/usr/local/soft

將hive-3.1.2上傳到虛擬機中的/usr/local/soft目錄下

2、解壓并重命名

tar -zxvf apache-hive-3.1.2-bin.tar.gz

# 重命名
mv apache-hive-3.1.2-bin ?hive-3.1.2/

3、配置環境變量

vim /etc/profile

#增加以下內容:
# HIVE_HOME
export HIVE_HOME=/usr/local/soft/hive-3.1.2/
export PATH=$PATH:$HIVE_HOME/bin


#保存退出 source 使其生效
source /etc/profile

?三、配置HIVE文件

1、配置hive-env.sh

cd $HIVE_HOME/conf
# 復制命令
cp hive-env.sh.template hive-env.sh

# 編輯
vim hive-env.sh

# 增加如下內容
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/soft/hive-3.1.2/conf

2、配置hive-site.xml

上傳hive-site.xml到conf目錄:

hive-site.xml文件內容:

<configuration><property><!-- 查詢數據時 顯示出列的名字 --><name>hive.cli.print.header</name><value>true</value></property><property><!-- 在命令行中顯示當前所使用的數據庫 --><name>hive.cli.print.current.db</name><value>true</value></property><property><!-- 默認數據倉庫存儲的位置,該位置為HDFS上的路徑 --><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><!-- 8.x --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;serverTimezone=GMT</value></property><!-- 8.x --><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- hiveserver2服務的端口號以及綁定的主機名 --><property><name>hive.server2.thrift.port</name> <value>10000</value> </property><property><name>hive.server2.thrift.bind.host</name><value>master</value></property> </configuration>

?3、配置日志

# 創建日志目錄
cd $HIVE_HOME
mkdir log

# 設置日志配置
cd conf

cp hive-log4j2.properties.template hive-log4j2.properties

vim hive-log4j2.properties

# 修改以下內容:
property.hive.log.dir = /usr/local/soft/hive-3.1.2/log

4、修改默認配置文件

cp hive-default.xml.template hive-default.xml

?5、上傳MySQL連接jar包

上傳 mysql-connector-java-5.1.37.jar 至 /usr/local/soft/hive/lib目錄中

四、修改MySQL編碼

修改mysql編碼為UTF-8:

1、?編輯配置文件

vim /etc/my.cnf

2、加入以下內容:

[client]

default-character-set = utf8mb4

[mysqld]

character-set-server = utf8mb4

collation-server = utf8mb4_general_ci

3、 重啟mysql

systemctl restart mysqld

五、初始化HIVE

schematool -dbType mysql -initSchema

?六、進入hive

輸入命令:hive

七、后續配置?

修改mysql元數據庫hive,讓其hive支持utf-8編碼以支持中文

登錄mysql:

mysql -u root -p123456

切換到hive數據庫:

use hive;

1).修改字段注釋字符集

alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

2).修改表注釋字符集

alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

3).修改分區表參數,以支持分區鍵能夠用中文表示

alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;

4).修改索引注解(可選)

alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

5).修改庫注釋字符集

alter table DBS modify column DESC varchar(4000) character set utf8;

八、測試hive

啟動hive,直接輸入命令:hive

在hive中創建filetest數據庫

命令: create database filetest;

切換filetest數據庫:use filetest;

hive中的幾種存儲格式

TextFile格式:文本格式

以TextFile格式創建students表:

使用命令:desc students查看students表的各個字段:

?在hive根目錄下創建一個文件夾data用于存放本地文件,將本地中的一個文本文件上傳到hive根目錄下的data中

向表中插入數據:

1、通過input命令將該data中的文本文件上傳到hdfs中所創建的該表中,實現向該表中插入數據

在hive中可以使用hdfs中的命令:

查詢結果:

?2、通過普通的格式對表中進行插入數據
創建一個新的表stduents2,使用普通格式進行插入數據:

load data local inpath "/usr/local/soft/hive-3.1.2/data/students.txt" into table students2;

結果:

進入到hdfs中查看:發現兩種插入方式對數據大小沒有變化,都是37M:

?

RCFile:

Hadoop中第一個列文件格式

?RCFile通常寫操作較慢,具有很好的壓縮和快速查詢功能。

創建RCFile格式的表:

插入數據:

使用命令:

insert into table students_rcFile select * from students;

插入完成后,查看數據大小:為26.44M

?

ORCFile:

Hadoop0.11版本就存在的格式,不僅是一個列文件格式,而且有著很高的壓縮比

創建ORCFile格式的表:

向表中插入數據:

?

查看數據大小:被壓縮為220.38KB

?

同時觀察插入數據所用時間,ORCFile格式與RCFile格式插入數據相差時間不大

Parquet:

這是一種嵌套結構的存儲格式,他與語言、平臺無關

創建Parquet格式的表:

向表中插入數據:

insert into table students_parquet select * from students;

查看數據大小:為3M

?

同時發現該格式在插入數據時所花費的時間比ORC格式所花費的時間更少。

其他格式:

SEQUENCEFILE格式:這是一個Hadoop API提供的一種二進制文件格式,實際生產中不使用

AVRO:是一種支持數據密集型的二進制文件格式,他的格式更為緊湊

九、配置JDBC連接

Hive中有兩種命令模式:CLi模式和JDBC模式

Cli模式就是Shell命令行

JDBC模式就是Hive中的Java,與使用傳統數據庫JDBC的方式類似

開啟JDBC連接:

進入到/usr/local/soft/hive-3.1.2/bin目錄下,在bin目錄下有一個hiveserver2文件,通過該文件開啟JDBC連接:

?輸入命令:hive --service hiveserver2開啟JDBC連接

一般情況下當出現四個Hive Session時就說明JDBC連接被開啟了,也可以通過命令查看是否開啟:

進入到 /usr/local/soft/hive-3.1.2/bin目錄下:

輸入:netstat -nplt | grep 10000

該輸入的端口號為hive-site.xml中的hiveserver2服務的端口號

?

報錯:

若輸入該命令報錯:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000:?
? ? ? ? Failed to open new session: java.lang.RuntimeException:?
? ? ? ? org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):?
? ? ? ? User: root is not allowed to impersonate root (state=08S01,code=0)

解決辦法:

先關閉Hadoop集群:stop-all.sh

再進入到Hadoop 中的core-site.xml中添加如下內容:

<property> <name>fs.trash.interval</name> <value>1440</value> </property>#以下是添加的內容: <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property><property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration>

注意:這些內容需要添在加<configuration>...</configuration>中,否則無法生效

重新啟動集群:start-all.sh

再次啟動hiveserver2

hive --service hiveserver2

該過程較慢,需要等待

連接到JDBC

當啟動JDBC連接后,會開啟一個進程RunJar,使用jps命令就可查看

Hive 將元數據存儲在數據庫中(metastore),目前只支持 mysql、derby

連接到JDBC命令:

進入到?/usr/local/soft/hive-3.1.2/bin下,輸入命令:

beeline -u jdbc:hive2://master:10000 -n root連接JDBC:

?在JDBC中輸入命令可以查看當前hive中的數據庫:show databases;

可以發現他與hive的區別在于他使用了一個表格式將databases顯示出來?

Hive中metastore是hive元數據的集中存放地,這里使用的是MySQL

總結

以上是生活随笔為你收集整理的hive(一)hive的安装与基本配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。