Hive的介紹及安裝

来源:https://www.cnblogs.com/jifengblog/archive/2018/07/07/9278026.html
-Advertisement-
Play Games

簡介 Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件 映射為一張資料庫表,並提供類 SQL 查詢功能。 本質是將 SQL 轉換為 MapReduce 程式。 Hive組件 用戶介面:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command linein ...


簡介

 

Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件 映射為一張資料庫表,並提供類 SQL 查詢功能。  

本質是將 SQL 轉換為 MapReduce 程式。

  Hive組件

    用戶介面:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command lineinterface)為 shell 命令行;JDBC/ODBC 是 Hive 的 JAVA 實現,與傳統資料庫JDBC 類似;WebGUI 是通過瀏覽器訪問 Hive。

    元數據存儲:通常是存儲在關係資料庫如 mysql/derby 中。Hive 將元數據存儲在資料庫中。Hive 中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

    解釋器、編譯器、優化器、執行器:完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,併在隨後有 MapReduce 調用執行。

 

  Hive 與 Hadoop  的關係

    Hive  利用HDFS 存儲數據,利用 MapReduce  查詢分析數據

 

  Hive 與傳統資料庫 對比

    hive 用於海量數據的離線數據分析。

    hive 具有 sql 資料庫的外表,但應用場景完全不同,hive 只適合用來做批量數據統計分析。

      1、具備數據存儲的能力,使用Hadoop hdfs來進行數據的存儲

​       2、具備ETL的能力,使用Hadoop MapReduce進行數據的ETL (提供sql轉化成MapReduce的能力)

 

 

  Hive數據模型

    Hive 中所有的數據都存儲在 HDFS 中,沒有專門的數據存儲格式,在創建表時指定數據中的分隔符,Hive 就可以映射成功,解析數據。

    Hive 中包含以下數據模型:

      db :在 hdfs 中表現為 hive.metastore.warehouse.dir 目錄下一個文件夾

      table :在 hdfs 中表現所屬 db 目錄下一個文件夾

      external table :數據存放位置可以在 HDFS 任意指定路徑

      partition :在 hdfs 中表現為 table 目錄下的子目錄

      bucket :在 hdfs 中表現為同一個表目錄下根據 hash 散列之後的多個文件

 

  一些專業術語

增量(上次導出之後的新數據):i_s.Peking.orders_20130711_000.lzo
加密:i_s.peking.orders_20130711_000.md5
表結構:i_s.peking.orders_20130711_000.xml

全量(表中所有的數據):a_s.Peking.orders_20130711_000.lzo
加密:a_s.peking.orders_20130711_000.md5
表結構:a_s.peking.orders_20130711_000.xml

PV:頁面訪問量,即PageView,用戶每次對網站的訪問均被記錄,用戶對同一頁面的多次訪問,訪問量累計。
UV:獨立訪問用戶數:即UniqueVisitor,訪問網站的一臺電腦客戶端為一個訪客。一天內相同的客戶端只被計算一次。

數據倉庫:Data Warehouse,簡寫為 DW 或 DWH
資料庫:database,簡寫DB

聯機事務處理 OLTP(On-Line Transaction Processing) --> 關係型資料庫RDBMS
聯機分析處理 OLAP(On-Line Analytical Processing) --> 數據倉庫

ETL(抽取 Extra, 轉化 Transfer, 裝載 Load)

源數據層(ODS)
數據倉庫層(DW)
數據應用層(DA 或 APP)

元數據(Meta Date)

 


 

Hive MySQL版本的安裝

    內置derby版缺點:不同路徑啟動 hive,每一個 hive 擁有一套自己的元數據,無法共用 

  •   安裝hive

    上傳hive的安裝包並解壓

    切換到hive安裝目錄的配置文件路徑中修改配置信息

cd /export/servers/hive/conf
vi hive-env.sh
export  HADOOP_HOME=/export/servers/hadoop-2.7.4
vi hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?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>hadoop</value>
<description>password to use against metastore database</description>
</property>
</configuration>

 

  •   安裝mysql

yum install -y mysql mysql-server mysql-devel 
#啟動mysql服務
/etc/init.d/mysqld start
mysql
USE mysql;
#設置用戶及密碼
UPDATE user SET Password=PASSWORD('hadoop') WHERE user='root';
#刷新許可權
FLUSH PRIVILEGES;
#設置許可權
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
#設置開機啟動mysql服務
chkconfig mysqld on

 

  註意把mysql資料庫驅動mysql-connector-java-5.1.32.jar放置在hive lib/目錄中


 

啟動hive前,先啟動HDFS及YARN集群

Hive幾種使用方式:

  1.Hive交互shell bin/hive

  2.Hive JDBC服務(參考java jdbc連接mysql)

  3.hive啟動為一個伺服器,來對外提供服務
    bin/hiveserver2
    nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

    啟動成功後,可以在別的節點上用beeline去連接
    bin/beeline -u jdbc:hive2://mini1:10000 -n root

  或者
    bin/beeline
    ! connect jdbc:hive2://mini1:10000

  4.Hive命令
    hive -e ‘sql’
    bin/hive -e 'select * from t_test'

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 主要: 基礎 基本概念 1) 資料庫分類 層次資料庫,網狀資料庫,關係資料庫 常見:SQL Server, Oracle,infomix,sybase,ibmDB2,Mysql 2)資料庫存儲的本質和表現: 存儲本質: 將 數據值 通過數據管理系統進行有序的存儲 存儲表現: 每個資料庫對應一個文件夾 ...
  • 1 . Hive 命令行 輸入$HIVE_HOME/bin/hive –H 或者 –help 可以顯示幫助選項: 說明: 1、 -i 初始化 HQL 文件。 2、 -e 從命令行執行指定的 HQL 3、 -f 執行 HQL 腳本 4、 -v 輸出執行的 HQL 語句到控制台 5、 -p <port> ...
  • 在以前,資料庫的集群配置一直很難,難點在於MySQL主從結構的高可用和讀寫分離。萬幸的是,Galera/GR的出現,讓整個集群的配置都極大程度地簡化了。 以下是一個簡單的MySQL集群拓撲圖: 1.MySQL中間件:對MySQL Server的讀寫操作進行路由(即讀寫分離);分庫分表(shardin ...
  • 1. Load 在將數據載入到表中時,Hive 不會進行任何轉換。載入操作是將數據文件移動到與 Hive表對應的位置的純複製/移動操作。 語法結構: 說明: 1、 filepath 相對路徑,例如:project/data1 絕對路徑,例如:/user/hive/project/data1 完整 U ...
  • 1.實現一個簡單的讀寫分離 這裡通過一個簡單的示例實現ProxySQL的讀寫分離功能,算是ProxySQL的快速入門。即使是快速入門,需要配置的內容也很多,包括:後端MySQL配置、監控配置、發送SQL語句的用戶、SQL語句的路由規則。所以,想要實現一個ProxySQL+MySQL,即使只實現最基本 ...
  • 1.ProxySQL簡介 之前的文章里,介紹了一個MySQL的中間件:MySQL Router。詳細內容參見: "MySQL Router實現MySQL的讀寫分離" 。 這裡準備用一個系列來詳細介紹一個能實實在在用在生產環境的MySQL中間件:ProxySQL。它有兩個版本:官方版和percona版 ...
  • Create database database name;//創建資料庫 Show databases dbName; //顯示所有資料庫 Create table tableName; //創建表 Show tables tName; //顯示所有表 Alter table oldName re... ...
  • DDL(數據定義語言)操作 Hive配置單元包含一個名為 default 預設的資料庫. create database [if not exists] <database name>; 創建資料庫 show databases | schemas; --顯示所有資料庫 drop database ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...