1. 程式人生 > >Hadoop權威指南(第4版)-OReilly 2016 讀書筆記

Hadoop權威指南(第4版)-OReilly 2016 讀書筆記

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?
  • 邊資料(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(聚集函式)

Crunch

Spark

HBase

ZooKeeper

案例學習:醫療公司Cerner的可聚合資料

生命資料科學:用軟體拯救生命

Cascading