中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop,HBase和Hive知識點的示例分析

發布時間:2021-12-08 10:46:56 來源:億速云 閱讀:149 作者:小新 欄目:云計算

小編給大家分享一下Hadoop,HBase和Hive知識點的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一 Hadoop

主要包括HDFS 和Yarn,Common 

對于HDFS ,要熟悉基本的文件操作,shell命令hadoop fs -ls  /         hadoop fs -copyFromLocal   path2 path3等

對于javaAPI ,熟悉FileSystem hdfs=FileSystem.get(conf)          FileStatus  

HDFS的NameNode 和SecondNameNode ,DataNode 的各個作用。

NameNode 文件的命名空間管理,讀寫文件之前都要向他詢問,保存文件的元數據,即文件名與數據塊。接受DataNode心跳響應,以及傳遞的數據塊&&DataNode 的位置的信息。

SecondNameNode 并不是NameNode的熱備份,他合并NameNode的fsimage和editLog,合成一個新的editLog,減輕內存的占用

在HA中,分為Active NameNode 和StandardBy NameNode  通過共享editLog 雙方都及時的共享信息,配有故障轉移,且都向ZK注冊

因為HDFS是三備份的,數據根據通過機架感知效應,分配的合理,盡量將計算在本地進行或者距離數據較近的機器上進行,減少網絡傳輸的消耗。

在網絡上傳輸用的是RPC,類似于架構層次的協議,就是把某些接口以及接口中的方法稱為協議,客戶端和服務器端只要實現這些接口方法,就可以通信了。其中使用了動態代理的技術,NIO

DataNode 負責對數據實際的存儲位置,因為數據是分塊的,即每個Block大小的設置,當有一個很大的文件,NameNode 對其進行切分時,分成多少塊,占總文件的比例。

因為有多個DataNode ,各個DataNode之間也是有通信的,DataNode 不僅要管理本地的數據,與JobClient 的通信,其他DataNode的通信。

當對文件進行讀取的時候,NameNode 向DataNode 詢問具體數據的位置,DataNode對于文件的定位。

還有就是文件的序列化問題,Hadoop實現的是自己的方式。

NameNode 和DataNode 間的通信,依靠心跳響應,DataNode 每隔一段時間向NameNode 匯報執行情況,當出現宕機時,NameNode會重新分配新的機器,還有就是當一臺機器上的任務執行速度很慢的時候,

NameNode 會再起一臺,同時執行。

HDFS中關于文件的輸入輸出格式,也可以自己定義格式,FileInputFormat 和FileOutputFormat

對于HDFS的優化:初始化Block的大小,數據備份的個數,設置機架感知,心跳的時間間隔,3.0中對NameNode中的一些信息進行適時的刪除,減輕NameNode 啟動壓力。

Yarn 分為了資源分配管理,任務監督執行,以及真正的運算平臺。

ResourceManager(Scheduler ,Application Manager)負責分配任務運行所需要的資源,container(CPU和內存)

NodeManager和Application Master分別負責對于任務的監控以及任務的執行。

yarn默認的運算平臺支持mapreduce和spark,stome吧

MapReduce 執行過程:map階段和reduce階段。在map階段,通過InputFormat 對于輸出的數據進行整理成<Key,Value>的形式,寫入到內存,接著進行分區,有幾個reducer就分為幾個partition,對每個partition內的數據

按照key進行排序,如果有combiner函數,對相同key的值進行合并,如果數據量達到內存的80%自己設置的,則spill到磁盤中,最后對磁盤中的多個file進行合并,最多10個file合并,這些就是map階段的結果。

在reduce階段,首先copy,開啟多個進程,把各個map上的結果拷貝到reduce機器的內存中,滿了則磁盤上。對拷貝過來的文件,進行merge,sort。最后進行reduce計算。

MapReduce階段的優化:map和reduce任務的個數,以及每個map和reduce能夠處理的最大,最小數據量,是否能夠設置combiner函數(要求輸入和輸出格式統一),當內存中數據達到多少比例時溢寫到磁盤。

對于map結果是否進行壓縮,jvm是否重用。這其中緩存的使用。

當map的文件都是小文件時,將多個小文件進行打包,或者使用AVRO格式合并

在copy過程中,開啟的并行的進程數。

Hive 數據倉庫,通過使用HiveQL,方便使用類似SQL的語句進行對表的管理,支持離散數據處理。

首先hive shell     創建表分為內部表和外部表,內部表是數據存儲在實際的倉庫中,刪除時元數據和數據都刪除了。外部表只是執行數據倉庫的一個連接,刪除時只刪除元數據不擅長實際數據。

create external table name() (partitioned by ) row format delimited fields terminnated by '\t'  location hdfspath

加載數據到hive load data inpath hdfspath 或者從本地 load data local inpath file:\\

或者在創建表的時候就指定 create table name as select aaa bbb from t1 

由多個表中導入數據的時候使用:from tableA  insert into tableB select id,name,sex 

將HIVE表的數據導出到表insert overwrite table a select ss form nn

導出也分為三種方式,insert overwrite local directory file:\\\ select aa,bb from table1  導出到HDFS   insert overwrite directory hdfs:\\ select aa from table2

導出到其他表  insert into table test1 partition() select a from table3

Hive java API  

Hive 底層使用MapReduce 進行計算

Hive支持三種連接表的方式,map join ,reduce join 和semi join

map join 使用的條件是左表數據量較小,可以直接放到內存中,那么右表與左表的數據進行一一的比對。

reduce join 就是對map的結果進行運算,因為存在多個map的結果,所以運算量很大,網絡上的傳輸消耗也很大。

semi join 就是在進行reduce join之前對map的結果進行篩選,篩選一些重復的key,做法是將左表隨機分成一個小表,放入內存,將另一部分與他進行比較,去除重復的。

Hive的優化:數據傾斜的問題,使用分區,join,group by 或者是

Hive 中的strict 模式,很多情況下都要設置為false,關閉嚴格模式。

clustered by 等同于distributed by ,sort by 結合

設置在map端聚合,set hive.map.aggr=true,設置map端聚合的條目數 set hive.groupby.mapaggr.checkinterval=10000

是否合并map端輸出文件,set hive.merge.mapfile=true

是否合并reduce端輸出文件,set hive.merge.mapredfiles=true

HBase 列式數據庫,表中必須有列族,列的個數可以實時的增加,支持實時的查詢。根據行健進行查詢

create 'table1','fam'  put ,get ,scan,Scanner ,delete

HMaster 負責監控各個HRegionServer,且與ZK通信

HregionServer 管理各個HRegion ,向ZK注冊

一個HRegionServer 中有多個HRegion,一個HRegion相當于一個map任務

寫入數據時,采用預寫日志,然后寫入到Memstore ,滿了,則spill成HFile,一個HFile格式<RowKey,Family,Qualifier,Timestamp,value>,寫入過程中,會使用BlockCache對寫入的文件進行緩存

讀取特定的數據的時候,首先從ZK中得到-ROOT-的信息,從-ROOT-得到.META.的信息,找到特定的RegionServer中的Region,此過程也會對經常要讀取的文件進行緩存。

HBase java API  HTable  HBaseAdmin 負責對表的創建

HTableDescripter ,HColumnDescripter

HBase中的布隆過濾器,

最重要的是rowkey的設計,一般防止熱點,使用salt或者hash key來組合rowkey,使得分布的均勻

以上是“Hadoop,HBase和Hive知識點的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙桃市| 巴南区| 贵港市| 金湖县| 福鼎市| 彭水| 屯昌县| 聂拉木县| 娱乐| 玛纳斯县| 凌海市| 息烽县| 开原市| 惠来县| 拉萨市| 瑞安市| 丰城市| 崇州市| 夏河县| 神木县| 托克逊县| 屯门区| 资讯| 上林县| 福安市| 龙海市| 彩票| 蒙自县| 平安县| 昭通市| 卫辉市| 西乌珠穆沁旗| 太原市| 仲巴县| 五大连池市| 鄄城县| 嘉义市| 蒙阴县| 云南省| 彩票| 通辽市|