Hive的相關介紹

  • 目錄
    • 前言:
    • 1、Hive簡介
    • 2、Hive架構
    • 3、Hive與Hadoop的關系
    • 4、Hive與傳統數據庫對比
    • 5、Hive的數據存儲
    • 總結:

目錄

前言:

為什么使用Hive
直接使用hadoop所面臨的問題
人員學習成本太高
項目周期要求太短
MapReduce實現復雜查詢邏輯開發難度太大

使用Hive的優點:
操作接口采用類SQL語法,提供快速開發的能力。
避免了去寫MapReduce,減少開發人員的學習成本。
擴展功能很方便。

1、Hive簡介

1.1、什么是Hive
Hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供類SQL查詢功能。
1.2、Hive的特點

  • 可擴展 :
    Hive可以自由的擴展集群的規模,一般情況下不需要重啟服務。
  • 延展性:
    Hive支持用戶自定義函數,用戶可以根據自己的需求來實現自己的函數。
  • 容錯:
    良好的容錯性節點出現問題SQL仍可完成執行。

2、Hive架構

2.1、架構圖
這里寫圖片描述
2.2、基本組成

  • 用戶接口:包括 CLI、JDBC/ODBC、WebGUI。
  • 元數據存儲:通常是存儲在關系數據庫如 mysql , derby中。
  • 解釋器、編譯器、優化器、執行器。

2.3、各組件的基本功能

  • 用戶接口主要由三個:CLI、JDBC/ODBC和WebGUI。其中,CLI為shell命令行;JDBC/ODBC是Hive的JAVA實現,與傳統數據庫JDBC類似;WebGUI是通過瀏覽器訪問Hive。

  • 元數據存儲:Hive 將元數據存儲在數據庫中。Hive
    中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

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

3、Hive與Hadoop的關系

Hive利用HDFS存儲數據,利用MapReduce查詢數據
這里寫圖片描述

4、Hive與傳統數據庫對比

這里寫圖片描述

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

5、Hive的數據存儲

1、Hive中所有的數據都存儲在 HDFS 中,沒有專門的數據存儲格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
2、只需要在創建表的時候告訴 Hive 數據中的列分隔符和行分隔符,Hive 就可以解析數據。
3、Hive 中包含以下數據模型:DB、Table,External Table,Partition,Bucket。

  • db:在hdfs中表現為${hive.metastore.warehouse.dir}目錄下一個文件夾。
  • table:在hdfs中表現所屬db目錄下一個文件夾。
  • external table:外部表,與table類似,不過其數據存放位置可以在任意指定路徑 普通表: 刪除表后, hdfs上的文件都刪了 External外部表刪除后,hdfs上的文件沒有刪除, 只是把文件刪除了。
  • partition:在hdfs中表現為table目錄下的子目錄 。
  • bucket:桶, 在hdfs中表現為同一個表目錄下根據hash散列之后的多個文件, 會根據不同的文件把數據放到不同的文件中。

總結:

對于Hive來說,個人感覺只要知道以下幾個知識點就算是達到和博主一樣的小菜鳥的境界,后期可以通過專項學習來進化為“大鵬”:
1、Hive是什么,干什么用的。
2、理解Hive的工作原理。
3、熟練掌握Hql的編寫,能夠運用Hql進行簡單的數據分析。
目前只想到了這些點,如有遺漏后續會接著補充。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456713.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構實驗之排序七:選課名單

數據結構實驗之排序七:選課名單 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 隨著學校規模的擴大,學生人數急劇增加,選課名單的輸出也成為一個繁重的任務,我校目前有在校生3萬多名&#xff0…

Java第五次作業--面向對象高級特性(抽象類和接口)

一、學習要點 認真看書并查閱相關資料,掌握以下內容: 掌握抽象類的設計掌握接口的設計理解簡單工廠設計模式理解抽象類和接口的區別掌握包裝類的應用掌握對象的比較方法和比較器的使用學習使用日期操作類學習匿名內部類的使用二、作業要求 發布一篇隨筆&…

關于國內廠商的國際版殺毒軟件

很多國內軟件公司的殺毒軟件都分為國內版和國際版,這二者有什么區別呢? 首先,這兩個的團隊是不一樣的。國際版的團隊大多收購,國內版為自研。例如百度殺毒的國際版就是原超級巡警的團隊做的,而國內版是自己另起爐灶。…

gulp教程之gulp-minify-css【gulp-clean-css】

原文:http://www.ydcss.com/archives/41 簡介: 使用gulp-minify-css壓縮css文件,減小文件大小,并給引用url添加版本號避免緩存。重要:gulp-minify-css已經被廢棄,請使用gulp-clean-css,用法一致…

大數據面試題總結(附答案)

文章目錄前言hadoop相關試題Hive相關試題Hbase相關試題Storm相關試題Spark相關試題Java基礎試題其他前言 最近由于要準備面試就開始提早看些面試、筆試題。以下是自己總結的一些經常出現、有價值的試題,包含hadoop、hive、hbase、storm、spark等。答案僅供參考&…

win7 IE11卸載后無法上網

今天某同事需要訪問一個銀行網站,必須使用IE8,我在win7中降級IE11,直接卸載了IE11和其語言包,發現IE8再也打不開網頁了,每次打開都提示保存html網頁。測試Google Chrome上網完全沒有問題。IE8的internet選項等任何工具菜單點擊均無反應&#…

關于django的模板

模板 問題 如何向請求者返回一個漂亮的頁面呢? 肯定需要用到html、css,如果想要更炫的效果還要加入js,問題來了,這么一堆字段串全都寫到視圖中,作為HttpResponse()的參數嗎?這樣定義就太麻煩了吧&#x…

Hbase簡介及常用命令相關知識總結

文章目錄目錄前言:1.Hbase簡介1.1、什么是Hbase1.2、與傳統數據庫的對比1.3、Hbase集群中的角色2、Hbase數據模型3、Hbase命令總結:目錄 前言: 對于Hbase來說,由于其是基于列的數據庫,所以比傳統的數據庫快許多&…

Django中模型類 屬性-學習筆記

定義屬性 Django根據屬性的類型確定以下信息: 當前選擇的數據庫支持字段的類型渲染管理表單時使用的默認html控件在管理站點最低限度的驗證 django會為表創建自動增長的主鍵列,每個模型只能有一個主鍵列,如果使用選項設置某屬性為主鍵列后d…

Angular Redux

Angular Redux 轉載于:https://www.cnblogs.com/skating/p/6185878.html

AtomicInteger相關類

在java6以后我們不但接觸到了Lock相關的鎖,也接觸到了很多更加樂觀的原子修改操作,也就是在修改時我們只需要保證它的那個瞬間是安全的即可,經過相應的包裝后可以再處理對象的并發修改,以及并發中的ABA問題,本文講述At…

Storm入門簡介

目錄前言:1、Storm簡介2、Storm與Hadoop的區別3、Storm核心組件4、Storm編程模型5、流式計算一般架構圖(重要)總結: 目錄 前言: 在介紹Storm之前,先介紹下離線計算。 離線計算:批量獲取數據…

項目完成

完成示例項目 現在還需要的代碼包括三個方面,三個方面順序不分先后。 1.定義視圖2.定義URLconf3.定義模板 定義視圖 編寫booktest/views.py文件如下: from django.shortcuts import render from booktest.models import BookInfo#首頁,展…

前端模板預編譯技術

什么是前端模板預編譯 前端模板預編譯通過預編譯技術讓前端模板突破瀏覽器限制,實現后端模板一樣的同步“文件”加載能力。它采用目錄來組織維護前端模板,從而讓前端模板實現工程化管理,最終保證前端模板在復雜單頁 web 應用下的可維護性。同…

Python如何生成windows可執行的exe文件

打包工具 pyinstaller 安裝pyinstaller 如果你的網絡穩定,通常直接使用下面的命令安裝即可: pip install pyinstaller 當然了,你也可以下載pyinstaller源碼包,然后進入包目錄執行下面的命令,同樣可以安裝&#xff…

招商銀行信用卡中心華泰證券暑期實習軟開筆試小結

白菜自動化小碩一枚,18屆,下學期就正式要找工作了,沒有實習經驗,感覺心慌慌。現在學校里已經開始各種提前招實習,內推了,so暑假想提前試試水,投一投暑期實習。 看到心水的單位就投一投&#xff…

理想的程序猿

出處 | http://guoze.me 最近看到的一篇不錯的文章,分享一下。 我算是靠坑蒙拐騙進了程序員的門,然后一路狂奔。26歲之前幾乎沒有任何寫代碼的經驗,研究生畢業卻意外選擇了一家不可能提供培訓的初創公司,在每日擔憂公司倒閉、害…

node08-express

目錄:node01-創建服務器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-express node09-cookie express模塊: 1 /*2 * express是一個應用框架3 * 1、路由4 * 2、中間件5 * 3、模板引擎6 * */7 8 var express requ…

【python】1. 兩數之和

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。 示例: 給定 nums [2, 7, 11, 15], t…

The user specified as a definer (#39;root#39;@#39;%#39;) does not exist

通常是因為root用戶對全局host無訪問權限。因此僅僅要給root用戶加入一個訪問權限就可以。解決的方法: 登陸mysql 。運行 mysql -u root -pPasswd mysql >grant all privileges on *.* to root"%" identified by "Passwd…