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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据仓库组件:Hive环境搭建和基础用法

發(fā)布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据仓库组件:Hive环境搭建和基础用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文源碼:GitHub || GitEE

一、Hive基礎簡介

1、基礎描述

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

2、組成與架構

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

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

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

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

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

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

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

1、準備安裝包

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

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兩個目錄并修改賦予權限。

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、基礎操作

查看數(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);

查看表結構

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)境

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

1、上傳MySQL驅動包

將MySQL驅動依賴包上傳到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ù)庫和相關表。

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、基礎函數(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 | 技術部 | +--------+------------+---------+-----------+-------------+--+

五、源代碼地址

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

推薦閱讀:編程體系整理

序號項目名稱GitHub地址GitEE地址推薦指數(shù)
01Java描述設計模式,算法,數(shù)據(jù)結構GitHub·點這里GitEE·點這里☆☆☆☆☆
02Java基礎、并發(fā)、面向對象、Web開發(fā)GitHub·點這里GitEE·點這里☆☆☆☆
03SpringCloud微服務基礎組件案例詳解GitHub·點這里GitEE·點這里☆☆☆
04SpringCloud微服務架構實戰(zhàn)綜合案例GitHub·點這里GitEE·點這里☆☆☆☆☆
05SpringBoot框架基礎應用入門到進階GitHub·點這里GitEE·點這里☆☆☆☆
06SpringBoot框架整合開發(fā)常用中間件GitHub·點這里GitEE·點這里☆☆☆☆☆
07數(shù)據(jù)管理、分布式、架構設計基礎案例GitHub·點這里GitEE·點這里☆☆☆☆☆
08大數(shù)據(jù)系列、存儲、組件、計算等框架GitHub·點這里GitEE·點這里☆☆☆☆☆
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結

以上是生活随笔為你收集整理的数据仓库组件:Hive环境搭建和基础用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。