大數(shù)據(jù)知識點總結

Hive:

分區(qū)表有哪幾類

Hive中追加導入數(shù)據(jù)的4種方式是什么卿捎?

Hive中到處數(shù)據(jù)有幾種方式?如何導出數(shù)據(jù)

Canal

Canal通過配置就可以把數(shù)據(jù)傳到Kafka讶舰,如何配置?不用寫代碼

Canal對了數(shù)據(jù)怎么辦

數(shù)據(jù)庫

表的權限管理

數(shù)倉

日活、周活腊瑟、月活比例

Java & Scala

JVM運行時數(shù)據(jù)區(qū)

JVM的GC機制

JVM調優(yōu)

Scala于Java語言相比較,有什么優(yōu)勢块蚌?

Spark

Spark的Shuffle于MR Shuffle有何區(qū)別

Spark程序的定時開啟與關閉

實時

SparkStreaming

Flink

  • watermark

  • 狀態(tài)一致性

  • 狀態(tài)計算

事務寫入(Transactional Writes)

事務(Transaction)

  • 應用程序中一系列嚴密的操作闰非,所有操作必須成功完成;否則在每個操作中所作的所有更改都會被撤消
  • 具有原子性:一個事務中的一系列的操作要么全部成功峭范,要么一個都不做
實現(xiàn)思想

構建的事務對應著 checkpoint财松,等到 checkpoint 真正完成的時候,才把所有對應的結果寫入 sink 系統(tǒng)中

面試題:

1 Flink-Kafka端對端的狀態(tài)一致性問題,如何保持

2 Kafka的事務性配置參考

Atlas

官網(wǎng)鏈接:http://atlas.apache.org/0.8.4/QuickStart.html

Atlas是什么辆毡?

Apache Atlas為組織提供開放式元數(shù)據(jù)管理和治理功能菜秦,用以構建其數(shù)據(jù)資產(chǎn)目錄,對這些資產(chǎn)進行分類和管理舶掖,并為數(shù)據(jù)分析師和數(shù)據(jù)治理團隊球昨,提供圍繞這些數(shù)據(jù)資產(chǎn)的協(xié)作功能。

架構原理圖

atlas_架構原理圖.png

Atlas的工作流程眨攘?哪一塊都提供了什么功能主慰?

管理的元數(shù)據(jù)類型有哪些?

當需求不能被滿足時:官網(wǎng)提供源代碼鲫售,支持二次開發(fā)(提供REST AP共螺,所有功能都會向用戶提供)

安裝及使用

安裝環(huán)境準備:

JDK8、Hadoop情竹、Zookeeper藐不、Kafka、HBase秦效、Solr佳吞、Hive、

Azkaban(進行工作調度后棉安,查看表底扳、字段之間的血緣依賴關系)、

Atlas0.8.4

在/opt/module/atlas/路徑贡耽,將Hive元數(shù)據(jù)導入到Atlas

Oozie介紹

Oozie工作流是放置在控制依賴DAG(有向無環(huán)圖 Direct Acyclic Graph)中的一組動作(例如衷模,Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等)蒲赂,其中指定了動作執(zhí)行的順序阱冶。我們會使用hPDL(一種XML流程定義語言)來描述這個圖。

hPDL是一種很簡潔的語言滥嘴,只會使用少數(shù)流程控制和動作節(jié)點木蹬。控制節(jié)點會定義執(zhí)行的流程若皱,并包含工作流的起點和終點(start镊叁、end和fail節(jié)點)以及控制工作流執(zhí)行路徑的機制(decision、fork和join節(jié)點)走触。動作節(jié)點是一些機制晦譬,通過它們工作流會觸發(fā)執(zhí)行計算或者處理

Oozie和Azkaban的區(qū)別:

兩者在功能方面大致相同,只是Oozie底層在提交Hadoop Spark作業(yè)是通過org.apache.hadoop的封裝好的接口進行提交互广,而Azkaban可以直接操作shell語句敛腌。在安全性上可能Oozie會比較好卧土。

工作流定義:Oozie是通過xml定義的而Azkaban為properties來定義。

部署過程:Oozie的部署相對困難些像樊,同時它是從Yarn上拉任務日志尤莺。

Azkaban中如果有任務出現(xiàn)失敗,只要進程有效執(zhí)行生棍,那么任務就算執(zhí)行成功颤霎,這是BUG,但是Oozie能有效的檢測任務的成功與失敗足绅。

操作工作流:Azkaban使用Web操作。Oozie支持Web韩脑,RestApi氢妈,Java API操作。

權限控制:Oozie基本無權限控制段多,Azkaban有較完善的權限控制,供用戶對工作流讀寫執(zhí)行操作。

Oozie的action主要運行在hadoop中而Azkaban的actions運行在Azkaban的服務器中蟆技。

記錄workflow的狀態(tài):Azkaban將正在執(zhí)行的workflow狀態(tài)保存在內存中熊楼,Oozie將其保存在Mysql中。

出現(xiàn)失敗的情況:Azkaban會丟失所有的工作流觉啊,但是Oozie可以在繼續(xù)失敗的工作流運行

調度工具性能對比:

Apache Oozie拣宏,其配置工作流的過程是編寫大量的XML配置,而且代碼復雜度比較高杠人,不易于二次開發(fā)勋乾。ooize相比azkaban是一個重量級的任務調度系統(tǒng),功能全面嗡善,但配置使用也更復雜辑莫。

如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象罩引。

Azkaban和Oozie的具體調度

Azkaban的工作流的創(chuàng)建特別方便各吨,直接通過web界面創(chuàng)建工程,然后提交任務袁铐。(創(chuàng)建job的的文件必須是以.job的文件揭蜒,并且上傳的文件是以zip壓縮包的形式進行上傳)。

在hue當中操作ooize的操作:

Hue是一個可快速開發(fā)和調試Hadoop生態(tài)系統(tǒng)各種應用的一個基于瀏覽器的圖形化用戶接口剔桨。

Hue可實現(xiàn)對oozie任務的開發(fā)忌锯,監(jiān)控,和工作流協(xié)調調度 领炫。使的oozie的操作變得更加的簡單快捷偶垮。

參考鏈接:

https://www.cnblogs.com/gxgd/p/8671271.html ----主要介紹了兩者的區(qū)別

https://blog.csdn.net/bingdianone/article/details/87908146#Azkaban_267 --詳細的介紹了常見配置使用

Azkaban是由Linkedin開源的一個批量工作流任務調度器。用于在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系似舵,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流脚猾。 它有如下功能特點: 1.Web用戶界面 2.方便上傳工作流 3.方便設置任務之間的關系 4.調度工作流 5.認證/授權(權限的工作) 6.能夠殺死并重新啟動工作流 7.模塊化可插拔的插件機制 8.項目工作區(qū) 9.工作流和任務的日志記錄和審計

Azkaban介紹

調度工具介紹:(azkaban 和oozie)

各任務單元之間存在時間先后及前后依賴關系。為了很好地組織起這樣的復雜執(zhí)行計劃砚哗,需要一個工作流調度系統(tǒng)來調度執(zhí)行

  • shell腳本程序

  • java程序

  • mapreduce程序

  • hive腳本等

工作流調度:一個完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務單元組成:

工作流調度工具:(azkaban 和oozie的對比)

實際運行: 實際上龙助,最優(yōu)的解決方案應該是最符合實際設計需求的方案,在時間應用中蛛芥,可能有足夠大的內存提鸟,那么直接將數(shù)據(jù)扔到內存中一次性處理即可,也可能機器有多個核仅淑,這樣可以采用多線程處理整個數(shù)據(jù)集称勋。

第五種方法采用最小堆。首先讀入前10000個數(shù)來創(chuàng)建大小為10000的最小堆涯竟,建堆的時間復雜度為O(mlogm)(m為數(shù)組的大小即為10000)赡鲜,然后遍歷后續(xù)的數(shù)字,并于堆頂(最新)數(shù)字進行比較银酬。如果比最小的數(shù)小,則繼續(xù)讀取后續(xù)數(shù)字筐钟;如果比堆頂數(shù)字大揩瞪,則替換堆頂元素并重新調整堆為最小堆。整個過程直至1億個數(shù)全部遍歷完為止篓冲。然后按照中序遍歷的方式輸出當前堆中的所有10000個數(shù)字壮韭。該算法的時間復雜度為O(nmlogm),空間復雜度是10000(常數(shù))纹因。

第四種方法是Hash法喷屋。如果這1億個書里面有很多重復的數(shù),先通過Hash法瞭恰,把這1億個數(shù)字去重復屯曹,這樣如果重復率很高的話,會減少很大的內存用量惊畏,從而縮小運算空間恶耽,然后通過分治法或最小堆法查找最大的10000個數(shù)。

第三種方法是分治法颜启,將1億個數(shù)據(jù)分成100份偷俭,每份100萬個數(shù)據(jù),找到每份數(shù)據(jù)中最大的10000個缰盏,最后在剩下的10010000個數(shù)據(jù)里面找出最大的10000個涌萤。如果100萬數(shù)據(jù)選擇足夠理想淹遵,那么可以過濾掉1億數(shù)據(jù)里面99%的數(shù)據(jù)。100萬個數(shù)據(jù)里面查找最大的10000個數(shù)據(jù)的方法如下:用快速排序的方法负溪,將數(shù)據(jù)分為2堆透揣,如果大的那堆個數(shù)N大于10000個,繼續(xù)對大堆快速排序一次分成2堆川抡,如果大的那堆個數(shù)N大于10000個辐真,繼續(xù)對大堆快速排序一次分成2堆,如果大堆個數(shù)N小于10000個崖堤,就在小的那堆里面快速排序一次侍咱,找第10000-n大的數(shù)字;遞歸以上過程密幔,就可以找到第1w大的數(shù)楔脯。參考上面的找出第1w大數(shù)字,就可以類似的方法找到前10000大數(shù)字了老玛。此種方法需要每次的內存空間為10^64=4MB淤年,一共需要101次這樣的比較钧敞。

第二種方法為局部淘汰法蜡豹,該方法與排序方法類似,用一個容器保存前10000個數(shù)溉苛,然后將剩余的所有數(shù)字——與容器內的最小數(shù)字相比镜廉,如果所有后續(xù)的元素都比容器內的10000個數(shù)還,那么容器內這個10000個數(shù)就是最大10000個數(shù)愚战。如果某一后續(xù)元素比容器內最小數(shù)字娇唯,則刪掉容器內最小元素,并將該元素插入容器寂玲,最后遍歷完這1億個數(shù)塔插,得到的結果容器中保存的數(shù)即為最終結果了。此時的時間復雜度為O(n+m^2)拓哟,其中m為容器的大小想许,即10000。

最容易想到的方法是將數(shù)據(jù)全部排序断序,然后在排序后的集合中進行查找流纹,最快的排序算法的時間復雜度一般為O(nlogn),如快速排序违诗。但是在32位的機器上漱凝,每個float類型占4個字節(jié),1億個浮點數(shù)就要占用400MB的存儲空間诸迟,對于一些可用內存小于400M的計算機而言茸炒,很顯然是不能一次將全部數(shù)據(jù)讀入內存進行排序的愕乎。其實即使內存能夠滿足要求(我機器內存都是8GB),該方法也并不高效扣典,因為題目的目的是尋找出最大的10000個數(shù)即可妆毕,而排序卻是將所有的元素都排序了,做了很多的無用功贮尖。

有1億個浮點數(shù)笛粘,如果找出期中最大的10000個?

針對top K類問題湿硝,通常比較好的方案是分治+Trie樹/hash+小頂堆薪前。即先將數(shù)據(jù)集按照Hash方法分解成多個小數(shù)據(jù)集,然后使用Trie樹活著Hash統(tǒng)計每個小數(shù)據(jù)集中的query詞頻关斜,之后用小頂堆求出每個數(shù)據(jù)集中出現(xiàn)頻率最高的前K個數(shù)示括,最后在所有top K中求出最終的top K。

在大規(guī)模數(shù)據(jù)處理中痢畜,經(jīng)常會遇到的一類問題:在海量數(shù)據(jù)中找出出現(xiàn)頻率最好的前k個數(shù)垛膝,或者從海量數(shù)據(jù)中找出最大的前k個數(shù),這類問題通常被稱為top K問題丁稀。例如吼拥,在搜索引擎中,統(tǒng)計搜索最熱門的10個查詢詞线衫;在歌曲庫中統(tǒng)計下載最高的前10首歌等凿可。

1億條數(shù)據(jù),10M內存授账,求TopN

怎么解決

Kafka中

Spark中

Hive中

數(shù)據(jù)傾斜

經(jīng)典場景問題

如何配置定時的工作流調度任務和郵件通知

使用過什么ETL清洗工具枯跑?

集群

Web界面的端口號:21000

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市白热,隨后出現(xiàn)的幾起案子敛助,更是在濱河造成了極大的恐慌,老刑警劉巖屋确,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纳击,死亡現(xiàn)場離奇詭異,居然都是意外死亡乍恐,警方通過查閱死者的電腦和手機评疗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茵烈,“玉大人百匆,你說我怎么就攤上這事∥赝叮” “怎么了加匈?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵存璃,是天一觀的道長。 經(jīng)常有香客問我雕拼,道長纵东,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任啥寇,我火速辦了婚禮偎球,結果婚禮上,老公的妹妹穿的比我還像新娘辑甜。我一直安慰自己衰絮,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布磷醋。 她就那樣靜靜地躺著猫牡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邓线。 梳的紋絲不亂的頭發(fā)上淌友,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音骇陈,去河邊找鬼震庭。 笑死,一個胖子當著我的面吹牛缩歪,可吹牛的內容都是我干的归薛。 我是一名探鬼主播谍憔,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匪蝙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了习贫?” 一聲冷哼從身側響起逛球,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苫昌,沒想到半個月后颤绕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡祟身,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年奥务,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袜硫。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氯葬,死狀恐怖,靈堂內的尸體忽然破棺而出婉陷,到底是詐尸還是另有隱情帚称,我是刑警寧澤官研,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站闯睹,受9級特大地震影響戏羽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜楼吃,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一始花、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孩锡,春花似錦衙荐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斩披,卻和暖如春溜族,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垦沉。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工煌抒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厕倍。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓寡壮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讹弯。 傳聞我的和親對象是個殘疾皇子况既,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353