中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop 部署之 Hive (五)

發布時間:2020-07-07 08:20:14 來源:網絡 閱讀:915 作者:wzlinux 欄目:大數據

一、Hive 簡介

1、什么是 Hive

  • Hive 由 Facebook 實現并開源,是基于 Hadoop 的一個數據倉庫工具,可以將結構化的數據映射為一張數據庫表,并提供 HQL(Hive SQL)查詢功能,底層數據是存儲在 HDFS 上。
  • Hive 的本質是將 SQL 語句轉換為 MapReduce 任務運行,使不熟悉 MapReduce 的用戶很方便地利用 HQL 處理和計算 HDFS 上的結構化的數據,適用于離線的批量數據計算。
  • Hive 依賴于 HDFS 存儲數據,Hive 將 HQL 轉換成 MapReduce 執行,所以說 Hive 是基于 Hadoop 的一個數據倉庫工具,實質就是一款基于 HDFS 的 MapReduce 計算框架,對存儲在 HDFS 中的數據進行分析和管理。

Hadoop 部署之 Hive (五)

2、為什么使用 Hive

直接使用 MapReduce 所面臨的問題:

  1、人員學習成本太高

  2、項目周期要求太短

  3、MapReduce實現復雜查詢邏輯開發難度太大

為什么要使用 Hive:

  1、更友好的接口:操作接口采用類 SQL 的語法,提供快速開發的能力

  2、更低的學習成本:避免了寫 MapReduce,減少開發人員的學習成本

  3、更好的擴展性:可自由擴展集群規模而無需重啟服務,還支持用戶自定義函數

3、Hive 的特點

  • 優點:

  1、可擴展性,橫向擴展,Hive 可以自由的擴展集群的規模,一般情況下不需要重啟服務 橫向擴展:通過分擔壓力的方式擴展集群的規模 縱向擴展:一臺服務器cpu i7-6700k 4核心8線程,8核心16線程,內存64G => 128G

  2、延展性,Hive 支持自定義函數,用戶可以根據自己的需求來實現自己的函數

  3、良好的容錯性,可以保障即使有節點出現問題,SQL 語句仍可完成執行

  • 缺點:

  1、Hive 不支持記錄級別的增刪改操作,但是用戶可以通過查詢生成新表或者將查詢結 果導入到文件中(當前選擇的 hive-2.3.2 的版本支持記錄級別的插入操作)

  2、Hive 的查詢延時很嚴重,因為 MapReduce Job 的啟動過程消耗很長時間,所以不能 用在交互查詢系統中。

  3、Hive 不支持事務(因為不沒有增刪改,所以主要用來做 OLAP(聯機分析處理),而 不是 OLTP(聯機事務處理),這就是數據處理的兩大級別)。

4、Hive 的架構

Hadoop 部署之 Hive (五)

二、Hive 安裝

1、MySQL 安裝(datanode01)

Hive 的元數據存儲在 RDBMS 中,除元數據外的其它所有數據都基于 HDFS 存儲。默認情 況下,Hive 元數據保存在內嵌的 Derby 數據庫中,只能允許一個會話連接,只適合簡單的 測試。實際生產環境中不適用,為了支持多用戶會話,則需要一個獨立的元數據庫,使用 MySQL 作為元數據庫,Hive 內部對 MySQL 提供了很好的支持。

yum install mariadb-server

2、MySQL 啟動

啟動數據庫

systemctl start mariadb
systemctl enable mariadb

3、Hive 下載安裝

# 下載安裝包
wget https://mirrors.aliyun.com/apache/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz

# 解壓安裝包
tar xf apache-hive-2.3.3-bin.tar.gz
mv apache-hive-2.3.3-bin /usr/local/hive

# 創建目錄
mkdir -p /home/hive/{log,tmp,job}

4、配置 Hive 環境變量

編輯文件/etc/profile.d/hive.sh,修改為如下內容:

# HIVE ENV
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

使HIVE環境變量生效。

source /etc/profile.d/hive.sh

三、Hive 配置

1、配置 metastore(datanode01)

mysql> grant all privileges on *.* to 'hive'@'%' identified by 'hive123456' with grant option;
mysql> grant all privileges on *.* to 'hive'@'datanode01' identified by 'hive123456' with grant option;

mysql> grant all privileges on *.* to 'thbl_prd_hive'@'%' identified by 'hive123456' with grant option;
mysql> grant all privileges on *.* to 'hive'@'localhost' identified by 'hive123456' with grant option;
mysql> grant all privileges on *.* to 'thbl_prd_hive'@'localhost' identified by 'hive123456' with grant option;
mysql> flush privileges;

2、配置 jdbc(datanode01)

wget http://mirrors.163.com/mysql/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz 
tar xf mysql-connector-java-5.1.45.tar.gz
cp mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar /usr/local/hive/lib/

3、備份template配置文件(namenode01)

cd /usr/local/hive/conf
mkdir template
mv *.template template

# 安排配置文件
cp template/hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp template/hive-log4j2.properties.template hive-log4j2.properties
cp template/hive-default.xml.template hive-default.xml
cp template/hive-env.sh.template hive-env.sh

4、配置 hive-env.sh(namenode01)

編輯文件/usr/local/hive/conf/hive-env.sh,修改內容如下:

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

5、配置數據倉庫 hive-site.xml(namenode01)

編輯文件/usr/local/hive/conf/hive-site.xml,修改內容為如下:

<configuration>
   <property>
     <name>hive.exec.local.scratchdir</name>
     <value>/home/hive/job</value>
     <description>hive的本地臨時目錄,用來存儲不同階段的map/reduce的執行計劃</description>
   </property>

   <property>
     <name>hive.downloaded.resources.dir</name>
     <value>/home/hive/tmp/${hive.session.id}_resources</value>
     <description>hive下載的本地臨時目錄</description>
   </property>

   <property>
     <name>hive.querylog.location</name>
     <value>/home/hive/log/${system:user.name}</value>
     <description>hive運行時結構化日志路徑</description>
   </property>

   <property>
     <name>hive.hwi.war.file</name>
     <value>lib/hive-hwi-2.1.1.war</value>
     <description>HWI war文件路徑, 與 ${HIVE_HOME}相關. </description>
   </property>

   <property>
     <name>hive.server2.logging.operation.log.location</name>
     <value>/home/hive/log/${system:user.name}/operation_logs</value>
     <description>日志開啟時的,操作日志路徑</description>
   </property>

<!--遠程mysql元數據庫-->
   <property>
     <name>hive.metastore.local</name>
     <value>false</value>
   </property>

  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
    <description>啟動時自動創建必要的schema</description>
  </property>

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hive/warehouse</value>
    <description>Hive數據倉庫在HDFS中的路徑</description>
  </property>

   <property>
     <name>hive.metastore.uris</name>
     <value>thrift://datanode01:9083</value>
     <description>遠程metastore的 Thrift URI,以供metastore客戶端連接metastore服務端</description>
   </property>

<!--mysql元數據庫配置-->
   <property>
     <name>javax.jdo.option.ConnectionDriverName</name>
     <value>com.mysql.jdbc.Driver</value>
     <description>JDBC驅動名</description>
   </property>

   <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://datanode01:3306/hive_db?createDatabaseIfNotExist=true</value>
     <description>JDBC連接名</description>
   </property>

   <property>
     <name>javax.jdo.option.ConnectionUserName</name>
     <value>hive</value>
     <description>連接metastore數據庫的用戶名</description>
   </property>

   <property>
     <name>javax.jdo.option.ConnectionPassword</name>
     <value>hive123456</value>
     <description>連接metastore數據庫的密碼</description>
   </property>

   <property>
     <name>hive.metastore.schema.verification</name>
     <value>false</value>
     <description>強制metastore schema的版本一致性</description>
   </property>
</configuration>

6、配置權限(namenode01)

scp /usr/local/hive/conf/* datanode01:/usr/local/hive/conf/
chmod 755 /usr/local/hive/conf/*

四、Hive 啟動

1、在namenode01,啟動hiveserver2

hive --service hiveserver2 &

2、在datanode01,啟動metastore

hive --service metastore &

五、Hive 檢查

1、JPS

[root@namenode01 ~]# jps
14512 NameNode
14786 ResourceManager
21348 RunJar
15894 HMaster
22047 Jps

[root@datanode01 ~]# jps
3509 DataNode
3621 NodeManager
1097 QuorumPeerMain
9930 RunJar
3935 HRegionServer
10063 Jps

2、hive shell

[root@namenode01 ~]# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> show tables;
OK
Time taken: 0.833 seconds
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新田县| 柯坪县| 双流县| 隆尧县| 根河市| 江都市| 安达市| 本溪| 湘潭县| 东乌珠穆沁旗| 雷州市| 邵东县| 谢通门县| 焦作市| 禄劝| 泰安市| 隆安县| 梧州市| 丰原市| 潞城市| 四子王旗| 青州市| 博兴县| 县级市| 永清县| 仲巴县| 大余县| 义马市| 商都县| 岑巩县| 富锦市| 加查县| 巩义市| 汉阴县| 新蔡县| 松桃| 来凤县| 南投市| 翁牛特旗| 长寿区| 清水县|