Hadoop權威指南(第4版)-OReilly 2016 讀書筆記
阿新 • • 發佈:2019-01-28
Hadoop權威指南(第4版)-OReilly 2016-ReadingNotes.md
初識Hadoop
關於MapReduce
- mapper和reducer
- combiner*
HDFS
- p48 Hadoop2: HA,備用namenode
- 2種HA共享儲存:
- NFS過濾器
- QJM(quorum journal manager)
- p73 副本怎麼放
- 由近到遠隨機放(注意,hadoop不使用DHT機制,靠的是namenode的索引維護)
YARN
- p83 MapReduce 1 vs YARN
- RM -> NM(管理監控容器):YARN vs k8s vs Mesos?
Hadoop的I/O操作
- p99 deflate/gzip不可切分???見鬼(bz2反而可以?)
- p105 壓縮塊連續儲存,沒有特殊標記,無法從資料流任意位置快速定位到下一個塊
- 自定義序列化格式:Writable
- WritableComparator
- 高層次容器封裝:SequenceFile
- MapFile:排序過的SequenceFile,有索引(這讓我想起chromium for android裡面的pak資源格式)
- 其他:Avro、ORCFile
MapReduce應用開發
-
Configuration API
-
MRUnit
- p159 測試驅動程式:Mini叢集?
-
打包作業
-
Web介面
-
日誌
-
作業調優
-
工作流:JobControl、Oozie
MapReduce工作機制
- p191 map/reduce任務的JVM會在退出前向其父app master傳送錯誤報告
- p195 shuffle:系統執行排序,將map輸出作為輸入傳給reduce的過程
- 溢位檔案(spill file),combiner
- p202 推測執行
- OutputCommiter *
MapReduce型別與格式
- 預設情況下,只有1個reducer
- InputFormat
- 輸入分片
- OutputFormat(略)
MapReduce特性
- 使用者自定義計數器
- p250 動態計數器:enum --> string?
排序
是MapReduce的核心技術?- p256 通過對鍵空間進行取樣,可較為均勻地劃分資料集
- 輔助排序*
- 連線
- map端:merge-join?
- org.apache.hadoop.mapreduce.join.CompositeInputFormat
- reduce端:hash-join?
- map端:merge-join?
- 邊資料(side data)分佈
- 分散式快取(org.apache.hadoop.filecache.DistributedCache)
構建Hadoop叢集
- 商用機器規格:靠
- Hadoop安全
- 委託令牌?
管理Hadoop
關於Avro
關於Parquet
- p364 原子型別:int96??
Flume
Sqoop
- p414 BlobRef
- p416 Sqoop會根據目標表的定義生成java類(這個牛)
Pig
- p432 多查詢執行(類似於編譯器後端優化中的CSE)
- p452 UDF
- p459 分段複製連線(fragment replicate join):這不就是Hive裡的broadcast hash join嘛
Hive
- 執行引擎:Tez/Spark的優越性??
- p482 其他SQL-on-Hadoop:Apache Phoenix:SQL on HBase
- HiveQL
- 分割槽和桶
- p504 Hive只支援等值連線?
- RBO -> 0.14+ CBO
- p512 UDAF(聚集函式)