一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

數(shù)據(jù)倉庫組件:Hive環(huán)境搭建和基礎(chǔ)用法

 Coder編程 2022-02-16

本文源碼:GitHub || GitEE

一、Hive基礎(chǔ)簡介

1、基礎(chǔ)描述

Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進行數(shù)據(jù)提取、轉(zhuǎn)化、加載,是一個可以對Hadoop中的大規(guī)模存儲的數(shù)據(jù)進行查詢和分析存儲的組件,Hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行,使用成本低,可以通過類似SQL語句實現(xiàn)快速MapReduce統(tǒng)計,使MapReduce變得更加簡單,而不必開發(fā)專門的MapReduce應(yīng)用程序。hive十分適合對數(shù)據(jù)倉庫進行統(tǒng)計分析。

2、組成與架構(gòu)

用戶接口:ClientCLI、JDBC訪問Hive、WEBUI瀏覽器訪問Hive。

元數(shù)據(jù):Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)以及屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。

驅(qū)動器:基于解釋器、編輯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。

執(zhí)行器引擎:ExecutionEngine把邏輯執(zhí)行計劃轉(zhuǎn)換成可以運行的物理計劃。

Hadoop底層:基于HDFS進行存儲,使用MapReduce進行計算,基于Yarn的調(diào)度機制。

Hive收到給客戶端發(fā)送的交互請求,接收到操作指令(SQL),并將指令翻譯成MapReduce,提交到Hadoop中執(zhí)行,最后將執(zhí)行結(jié)果輸出到客戶端。

二、Hive環(huán)境安裝

1、準(zhǔn)備安裝包

hive-1.2,依賴Hadoop集群環(huán)境,位置放在hop01服務(wù)上。

2、解壓重命名

tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin/ hive1.2

3、修改配置文件

創(chuàng)建配置文件

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# mv hive-env.sh.template hive-env.sh

添加內(nèi)容

[root@hop01 conf]# vim hive-env.sh
export HADOOP_HOME=/opt/hadoop2.7
export HIVE_CONF_DIR=/opt/hive1.2/conf

配置內(nèi)容一個是Hadoop路徑,和hive配置文件路徑。

4、Hadoop配置

首先啟動hdfs和yarn;然后在HDFS上創(chuàng)建/tmp和/user/hive/warehouse兩個目錄并修改賦予權(quán)限。

bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /user/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse

5、啟動Hive

[root@hop01 hive1.2]# bin/hive

6、基礎(chǔ)操作

查看數(shù)據(jù)庫

hive> show databases ;

選擇數(shù)據(jù)庫

hive> use default;

查看數(shù)據(jù)表

hive> show tables;

創(chuàng)建數(shù)據(jù)庫使用

hive> create database mytestdb;
hive> show databases ;
default
mytestdb
hive> use mytestdb;

創(chuàng)建表

create table hv_user (id int, name string, age int);

查看表結(jié)構(gòu)

hive> desc hv_user;
id                  	int                 	                    
name                	string              	                    
age                 	int 

添加表數(shù)據(jù)

insert into hv_user values (1, "test-user", 23);

查詢表數(shù)據(jù)

hive> select * from hv_user ;

注意:這里通過對查詢?nèi)罩镜挠^察,明顯看出Hive執(zhí)行的流程。

刪除表

hive> drop table hv_user ;

退出Hive

hive> quit;

查看Hadoop目錄

# hadoop fs -ls /user/hive/warehouse       
/user/hive/warehouse/mytestdb.db

通過Hive創(chuàng)建的數(shù)據(jù)庫和數(shù)據(jù)存儲在HDFS上。

三、整合MySQL5.7環(huán)境

這里默認(rèn)安裝好MySQL5.7的版本,并配置好相關(guān)登錄賬號,配置root用戶的Host為%模式。

1、上傳MySQL驅(qū)動包

將MySQL驅(qū)動依賴包上傳到hive安裝目錄的lib目錄下。

[root@hop01 lib]# pwd
/opt/hive1.2/lib
[root@hop01 lib]# ll
mysql-connector-java-5.1.27-bin.jar

2、創(chuàng)建hive-site配置

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# touch hive-site.xml
[root@hop01 conf]# vim hive-site.xml

3、配置MySQL存儲

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=true</value>
          <description>JDBC connect string for a JDBC metastore</description>
        </property>

        <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
          <description>Driver class name for a JDBC metastore</description>
        </property>

        <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>root</value>
          <description>username to use against metastore database</description>
        </property>

        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>123456</value>
          <description>password to use against metastore database</description>
        </property>
</configuration>

配置完成后,依次重啟MySQL、hadoop、hive環(huán)境,查看MySQL數(shù)據(jù)庫信息,多了metastore數(shù)據(jù)庫和相關(guān)表。

4、后臺啟動hiveserver2

[root@hop01 hive1.2]# bin/hiveserver2 &

5、Jdbc連接測試

[root@hop01 hive1.2]# bin/beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://hop01:10000
Connecting to jdbc:hive2://hop01:10000
Enter username for jdbc:hive2://hop01:10000: hiveroot (賬戶回車)
Enter password for jdbc:hive2://hop01:10000: ******   (密碼123456回車)
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
0: jdbc:hive2://hop01:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
+----------------+--+

四、高級查詢語法

1、基礎(chǔ)函數(shù)

select count(*) count_user from hv_user;
select sum(age) sum_age from hv_user;
select min(age) min_age,max(age) max_age from hv_user;
+----------+----------+--+
| min_age  | max_age  |
+----------+----------+--+
| 23       | 25       |
+----------+----------+--+

2、條件查詢語句

select * from hv_user where name='test-user' limit 1;
+-------------+---------------+--------------+--+
| hv_user.id  | hv_user.name  | hv_user.age  |
+-------------+---------------+--------------+--+
| 1           | test-user     | 23           |
+-------------+---------------+--------------+--+

select * from hv_user where id>1 AND name like 'dev%';
+-------------+---------------+--------------+--+
| hv_user.id  | hv_user.name  | hv_user.age  |
+-------------+---------------+--------------+--+
| 2           | dev-user      | 25           |
+-------------+---------------+--------------+--+

select count(*) count_name,name from hv_user group by name;
+-------------+------------+--+
| count_name  |    name    |
+-------------+------------+--+
| 1           | dev-user   |
| 1           | test-user  |
+-------------+------------+--+

3、連接查詢

select t1.*,t2.* from hv_user t1 join hv_dept t2 on t1.id=t2.dp_id;
+--------+------------+---------+-----------+-------------+--+
| t1.id  |  t1.name   | t1.age  | t2.dp_id  | t2.dp_name  |
+--------+------------+---------+-----------+-------------+--+
| 1      | test-user  | 23      | 1         | 技術(shù)部      |
+--------+------------+---------+-----------+-------------+--+

五、源代碼地址

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https:///cicadasmile/big-data-parent

推薦閱讀:編程體系整理

序號 項目名稱 GitHub地址 GitEE地址 推薦指數(shù)
01 Java描述設(shè)計模式,算法,數(shù)據(jù)結(jié)構(gòu) GitHub·點這里 GitEE·點這里 ☆☆☆☆☆
02 Java基礎(chǔ)、并發(fā)、面向?qū)ο?、Web開發(fā) GitHub·點這里 GitEE·點這里 ☆☆☆☆
03 SpringCloud微服務(wù)基礎(chǔ)組件案例詳解 GitHub·點這里 GitEE·點這里 ☆☆☆
04 SpringCloud微服務(wù)架構(gòu)實戰(zhàn)綜合案例 GitHub·點這里 GitEE·點這里 ☆☆☆☆☆
05 SpringBoot框架基礎(chǔ)應(yīng)用入門到進階 GitHub·點這里 GitEE·點這里 ☆☆☆☆
06 SpringBoot框架整合開發(fā)常用中間件 GitHub·點這里 GitEE·點這里 ☆☆☆☆☆
07 數(shù)據(jù)管理、分布式、架構(gòu)設(shè)計基礎(chǔ)案例 GitHub·點這里 GitEE·點這里 ☆☆☆☆☆
08 大數(shù)據(jù)系列、存儲、組件、計算等框架 GitHub·點這里 GitEE·點這里 ☆☆☆☆☆

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    极品熟女一区二区三区| 色一情一乱一区二区三区码| 国产一区二区三区草莓av| 婷婷色国产精品视频一区| 中字幕一区二区三区久久蜜桃| 婷婷开心五月亚洲综合| 五月天六月激情联盟网| 91超精品碰国产在线观看| 91偷拍与自偷拍精品| 国产精品久久精品国产| 日韩欧美国产精品自拍| 亚洲欧美日韩综合在线成成| 欧美亚洲国产日韩一区二区| 亚洲欧美日本国产不卡| 尤物天堂av一区二区| 日本人妻熟女一区二区三区| 国产水滴盗摄一区二区| 91欧美亚洲精品在线观看| 久久久免费精品人妻一区二区三区| 国产精品免费无遮挡不卡视频| 精品人妻一区二区三区四区久久| 日韩免费av一区二区三区| 免费黄片视频美女一区| 亚洲中文字幕免费人妻| 人妻亚洲一区二区三区| 人妻中文一区二区三区| 国产精品一区二区不卡中文| 婷婷伊人综合中文字幕| 久久福利视频在线观看| 亚洲一区二区精品免费视频| 欧美小黄片在线一级观看| 中文字幕亚洲在线一区| 亚洲欧美日韩中文字幕二欧美 | 真实偷拍一区二区免费视频| 国产精品丝袜美腿一区二区| 成年午夜在线免费视频| 亚洲视频在线观看免费中文字幕| 国产精品伦一区二区三区在线| 日本加勒比在线播放一区| 亚洲中文在线中文字幕91| 免费久久一级欧美特大黄孕妇|