激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 數據倉庫和Hive環境搭建

數據倉庫和Hive環境搭建

2021-04-15 23:26Python之王小sen Java教程

數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫顧名思義,是一個很大的數據存儲集合,出于企業的分析性報告和決策支持目的而創建,對多樣的業務數據進行篩選與整合。

數據倉庫和Hive環境搭建

上次介紹了HDFS,本來想進入Mapreduce,但感覺Mapreduce基本廢棄,于是直接進入了Hive中來。

數據倉庫

 

數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫顧名思義,是一個很大的數據存儲集合,出于企業的分析性報告和決策支持目的而創建,對多樣的業務數據進行篩選與整合。

它為企業提供一定的BI(商業智能)能力,指導業務流程改進、監視時間、成本、質量以及控制。

數據倉庫的輸入方是各種各樣的數據源,最終的輸出用于企業的數據分析、數據挖掘、數據報表等方向。

數據倉庫和Hive環境搭建

數據庫和數據倉庫區別

 

數據庫是面向交易的處理系統,它是針對具體業務在數據庫聯機的日常操作,通常對記錄進行查詢、修改。用戶較為關心操作的響應時間、數據的安全性、完整性和并發支持的用戶數等問題。

數據倉庫一般針對某些主題的歷史數據進行分析,支持管理決策,又被稱為聯機分析處理 OLAP(On-Line Analytical Processing)。

比如,支付寶年度賬單其本質是基于數據倉庫進行數據可視化而成。

數據倉庫和Hive環境搭建

數據倉庫,是在數據庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的“大型數據庫”。

數據倉庫分層

 

按照數據流入流出的過程,數據倉庫架構可分為三層——源數據(ODS)、數據倉庫(DW)、數據應用(APP)。

數據倉庫和Hive環境搭建

Hive

 

Hive是一個構建在 Hadoop上的數據倉庫框架。最初,Hive是由Facebook開發,后來移交由 Apache!軟件基金會開發,并作為一個 Apache開源項目。

Hive是建立在 Hadoop上的數據倉庫基礎構架。它提供了一系列的工具,可以存儲、查詢和分析存儲在分布式存儲系統中的大規模數據集。Hive定義了簡單的類SQL査詢語言,通過底層的計算引擎,將SQL轉為具體的計算任務進行執行。

數據倉庫和Hive環境搭建

Hive支持Mapreduce、Tez、Spark等分布式計算引擎。

Hive環境搭建

 

在Hive環境搭建無需配置集群,Hive的安裝其實有兩部分組成,一個是Server端、一個是客戶端,所謂服務端其實就是Hive管理Meta的那個Hive,服務端可以裝在任何節點上,可以是Namenode上也可以是Datanode的任意一個節點上。

Hive的客戶端界面工具早期選擇SQuirrel SQL Client,但最近我喜歡上了Apache Zeppelin,Apache Zeppelin是一款基于Web的NoteBook,其實和Juypyter Notebook沒有什么兩樣。

在 Hive環境搭建,需要搭建Mysql,這里選擇節點node02進行Mysql環境搭建。

  1. [hadoop@node02 ~]$ cd module/ 
  2. [hadoop@node02 module]$ mkdir mysql 
  3. [hadoop@node02 module]$ cd mysql/ 
  4. [hadoop@node02 mysql]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 
  5. [hadoop@node02 mysql]$ sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm 
  6. [hadoop@node02 yum.repos.d]$ yum install mysql-server 
  7.  
  8.  
  9.  
  10. [hadoop@node02 yum.repos.d]# #第一次登錄跳過權限認證 
  11. [hadoop@node02 yum.repos.d]# sudo vim /etc/my.cnf 
  12. ############ 
  13. [mysqld] 
  14. # 添加下面一行 
  15. skip-grant-tables 
  16. [hadoop@node02 yum.repos.d]# sudo systemctl start mysqld  
  17. [hadoop@node02 yum.repos.d]# mysql -u root 
  18. mysql> flush privileges
  19. Query OK, 0 rows affected (0.00 sec) 
  20. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';  
  21. Query OK, 0 rows affected (0.00 sec) 
  22. mysql> create database hive; 
  23. Query OK, 1 row affected (0.00 sec) 
  24. mysql> exit; 
  25. [hadoop@node02 yum.repos.d]# mysql -u root -p123456 
  26. mysql> use mysql; 
  27. # 設置遠程連接權限 
  28. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION
  29. Query OK, 0 rows affected, 1 warning (0.00 sec) 
  30. mysql> FLUSH PRIVILEGES
  31. Query OK, 0 rows affected (0.00 sec) 

下面開始在centos系統中安裝Hive。為了兼顧Hadoop3.1.4版本,我們選擇安裝hive3.1.2版本。Hive下載官方:http://www.apache.org/dyn/closer.cgi/hive/

數據倉庫和Hive環境搭建

 

  1. [hadoop@node02 module]$ ls 
  2. apache-hive-3.1.2-bin.tar.gz  hadoop  mysql 
  3. [hadoop@node02 module]$ tar -zxvf apache-hive-3.1.2-bin.tar.gz  
  4. [hadoop@node02 module]$ mv apache-hive-3.1.2-bin hive 
  5. [hadoop@node02 module]$ ls 
  6. apache-hive-3.1.2-bin.tar.gz  hadoop  hive  mysql 
  7.  
  8. [hadoop@node02 conf]$ mv hive-env.sh.template hive-env.sh 
  9. [hadoop@node02 conf]$ vim hive-env.sh 
  10. ######### 
  11. export HADOOP_HOME=/home/hadoop/module/hadoop/hadoop-3.1.4 
  12. export HIVE_CONF_DIR=/home/hadoop/module/hive/conf 
  13. export HIVE_AUX_JARS_PATH=/home/hadoop/module/hive/lib 
  14.  
  15. [hadoop@node02 conf]$ sudo vim /etc/profile 
  16. ######### 
  17. export HIVE_HOME=/home/hadoop/module/hive 
  18. export PATH=$PATH:$HIVE_HOME/bin 
  19. export HIVE_CONF_DIR=$HIVE_HOME/conf 
  20. [hadoop@node02 conf]$ source /etc/profile 
  21. [hadoop@node02 conf]$  mv hive-default.xml.template hive-site.xml 
  22. [hadoop@node02 conf]$ vim hive-site.xml  
  23. ######### 
  24. <property> 
  25.  <!--  
  26.  對應的文件夾需要創建 
  27.  --> 
  28.     <name>hive.exec.local.scratchdir</name
  29.     <value>/home/hadoop/module/data/hive/jobs</value> 
  30. </property> 
  31. <property> 
  32.     <name>hive.downloaded.resources.dir</name
  33.     <value>/home/hadoop/module/data/hive/resources</value> 
  34. </property> 
  35. <property> 
  36.     <name>javax.jdo.option.ConnectionUserName</name
  37.     <value>root</value> 
  38. </property> 
  39. <property> 
  40.     <name>javax.jdo.option.ConnectionPassword</name
  41.     <value>123456</value> 
  42. </property> 
  43. <property> 
  44.     <name>javax.jdo.option.ConnectionURL</name
  45.     <value>jdbc:mysql://192.168.147.129:3306/hive?createDatabaseIfNotExsit=true</value> 
  46. </property> 
  47.  <!-- MySQL5.7使用com.mysql.jdbc.Driver 
  48.   
  49.  Mysql6版本使用com.mysql.cj.jdbc.Driver 
  50.  --> 
  51. <property> 
  52.     <name>javax.jdo.option.ConnectionDriverName</name
  53.     <value>com.mysql.jdbc.Driver</value> 
  54. </property> 

 數據倉庫和Hive環境搭建

為了使用Java連接Mysql,需要下載Mysql驅動,下載地址:https://maven.ityuan.com/maven2/mysql/mysql-connector-java/5.1.33。

下載完成后并放在lib文件夾中,并通過hive初始化Mysql數據庫。

  1. [hadoop@node02 lib]$ pwd 
  2. /home/hadoop/module/hive/lib 
  3. [hadoop@node02 lib]$ wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.33/mysql-connector-java-5.1.33.jar 
  4. [hadoop@node02 lib]$ schematool -dbType mysql -initSchema 

在Hive初始化Mysql數據庫,容易遇到兩個比較常見的Bug:

第一個Hive初始化Mysql數據庫:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

錯誤原因:系統找不到這個類所在的jar包或者jar包的版本不一樣系統不知道使用哪個。hive啟動報錯的原因是后者

解決辦法:

  1. com.google.common.base.Preconditions.checkArgument這個類所在的jar包為:guava.jar
  2. hadoop-3.2.1(路徑:hadoop\share\hadoop\common\lib)中該jar包為 guava-27.0-jre.jar;而hive-3.1.2(路徑:hive/lib)中該jar包為guava-19.0.1.jar
  3. 將jar包變成一致的版本:刪除hive中低版本jar包,將hadoop中高版本的復制到hive的lib中。

第二個Hive初始化Mysql數據庫:Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8 at

報錯原因:在本身的hive-site.xml配置文件中,3215行(見報錯記錄第二行)有特殊字符

解決辦法:進入hive-site.xml文件,跳轉到對應行,刪除里面的特殊字符即可。

如果報Unknown database 'hive',建議直接在MySQL中創建hive數據庫。

最終Hive成功初始化Mysql數據庫如下圖所示:

數據倉庫和Hive環境搭建

查看hive數據庫,就會看見對應初始化的表生成。

數據倉庫和Hive環境搭建

在輸入hive,即可進入Hive命令行,說明Hive搭建成功。

數據倉庫和Hive環境搭建

原文地址:https://mp.weixin.qq.com/s/8vRP6d3bco-LEDo7oHTM6Q

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | 欧美成人精品不卡视频在线观看 | 成人一区二区三区在线 | 深夜精品福利 | 法国性经典xxxhd | 国产午夜精品视频免费不卡69堂 | 久久亚洲成人 | 久久96国产精品久久久 | 成人免费淫片视频观 | 一级性生活免费视频 | 久久久久久久久久久亚洲 | 羞羞电影在线观看 | 羞羞羞网站 | 亚洲成人精品久久 | www.54271.com| jizzzzxxxxx| 深夜福利视频绿巨人视频在线观看 | 色七七网站 | 欧美一级片在线 | 特级西西444www大精品视频免费看 | 国产亚洲精品久久久久久久久久 | 依人在线视频 | 久久久久久久久久久亚洲 | 黄色免费在线视频网站 | 亚洲综合视频在线播放 | www久久国产 | 色婷婷久久久久久 | 国产精品一区二区三区在线播放 | 久久久婷婷| 一区国产在线观看 | 国产一级免费av | 海外中文字幕在线观看 | 国产精品剧情一区二区三区 | 国产1级视频 | 国产在线精品一区二区三区不卡 | 神马福利电影 | 在线播放的av网站 | 亚洲精品久久久久www | 国产呦在线观看视频 | 免费在线观看国产精品 | 国产九色91 |