この試みについて
インフラ知識ほぼゼロで、Hadoop関連の技術をがっつり扱う会社に入社してしまい2年目を迎えた筆者が、自分自身の知識習得のためにこちらの本を通読します。
いわゆる「象本」と呼ばれている本で、第三版までは日本語訳が出ているのですが、第四版は英語しかありません。
第四版は、第三版ではカバーしていない重要な論点(YARN, AVRO, Parquet, Spark, Zookeeper についての dedicated な章など)が追加されているということで、英語の勉強もかねて読んでいきます。
すすめかた
一人では読み続けられる自信がない&この1年で読み切ってしまいたい&この1年で読み切れるペースでがっつり一緒に読めそうな仲間を探すのは大変そうということで、以下のやりかたで実施します。
- 原則、平日の18:10〜18:20
- 仕事などで私が無理な日は事前に告知しておやすみする
- 前半のコア技術、後半の周辺技術が両方大切なことから、以下の割り振りとしたいと思います。
月木:あたまから読んでいく日(Hadoop コア技術を習得)水金:Related Project (345ページ以降)を読んでいく日(Hadoopの周辺技術を習得)火曜:どっちか好きな方(火曜はおやすみにする日が多そうなので)- 👆上記のように厳密に曜日で区切るのではなく、あたまから読んでいって、きりのいいところで周辺技術に切り替えて、みたいな感じで読んでいこうと思います。
- Twitter(X)の Space で、10分間で読めるところまで読む
- こちらのアカウントで、時間になったらSpaceを立ち上げ https://twitter.com/IQ_Bocchi
- 聞きたい人は聞き、しゃべりたい人はスピーカーに立候補。スピーカーにはならないけど、感想などをつぶやきたい場合は #象本読むぞう のハッシュタグでツイートしてもらえると喜びます。
Space録音
Spaceの録音を、こちらに貼っていきたいと思います。
本の中身をSpaceでがっつり読む形になるので、オライリーさんに怒られたら考えます。。。
Part1
Chapter1. Meet Hadoop
第1回 Data!
2024/1/12(金) 開催
https://twitter.com/i/spaces/1dRKZEDyRqrxB
第2回 - Data Storage and Analysis 〜 Querying All Your Data
2024/1/15(月) 開催
https://twitter.com/i/spaces/1jMJgmDYpjXKL
第3回 - Beyond Batch
2024/1/16(火) 開催
https://twitter.com/i/spaces/1djGXNDMQYzxZ
Comparison with Other Systems
第4回 - Relational Database Management Systems
2024/1/17(水) 開催
https://twitter.com/i/spaces/1zqKVqDOWXpxB
第5回 - Grid Computing 〜 Volunteer Computing
2024/1/18(木) 開催
https://twitter.com/i/spaces/1lPJqbDVYYMxb
A Brief History of Apache Hadoop
第6回
2023/1/19(金) 開催
https://twitter.com/i/spaces/1vAGRvmkmOkGl
第7回
2024/1/22(月) 開催
https://twitter.com/i/spaces/1lPKqblNbDmGb
※後半で Chapter3にも片足つっこんでおります
Chapter3.
HDFS Concepts
第8回 Blocks - Why Is a Block in HDFS So Large? 〜 Namenodes and Datanodes
2024/1/23(火) 開催
https://twitter.com/i/spaces/1eaKbgwoOErGX
第9回 Block Caching 〜 HDFS Federation
2024/1/24(水) 開催
https://twitter.com/i/spaces/1PlKQDdqXVYxE
→ ここで述べられている設定を、実機動かして試してみたい。。。
第10回 HDFS High Availability
2024/1/25(木) 開催
https://twitter.com/i/spaces/1eaKbgweRwQGX
第11回 Failover and fencing
2024/1/26(金) 開催
https://twitter.com/i/spaces/1rmxPMEpPkgKN
HAについて学んでいる中で、Zookeeper のたとえがよく出てきました。
HDFSの基本については引き続き学びつつ、ZooKeeper についても知りたい! ということで、次回からはZooKeeperの章を読んでいくことに。
Part4
Chapter21. ZooKeeper
第12回 章の冒頭
2024/1/29(月) 開催
https://twitter.com/i/spaces/1mrGmylYBVqGy
第13回 The ZooKeeper Service
2024/1/30(火) 開催
[前編]https://twitter.com/i/spaces/1OdJrjmqqnpJX
[後編]https://twitter.com/i/spaces/1zqKVqkllXwxB
前編の方が、リアルタイムの視聴の接続ができなかったようで、後編のスペースを立て直しました。
録音は両方普通に聴けます。
第14回 Ephemeral znodes ~ Sequence numbers ~ Watches
2024/1/31(水) 開催
https://twitter.com/i/spaces/1vOxwjByNzrJB
番外編
飛ばしてしまったコードの実装部分(znodeのグループ作る、グループにメンバー入れる、グループメンバーの一覧出す、消すの一連の流れ)を改めて読んでみたの巻。
Java のコードは全然わからなかったですが、解説を読むことでかなり具体的なイメージが湧いたので、読んでよかったです。
第15回 Operations
2024/2/1(木) 開催
https://twitter.com/i/spaces/1YqKDglkOrAxV
第16回 Watch Triggers の続き 〜 ACLs
2024/2/2(金) 開催
https://twitter.com/i/spaces/1nAJEaqONegJL
第17回 Implementation
2024/2/5(月) 開催
https://twitter.com/i/spaces/1BRJjPjMYPaKw
第18回 Consistency
2024/2/6(火) 開催
https://twitter.com/i/spaces/1mnGepnnXwvKX
第19回 Sessions
2024/2/7(水) 開催
https://twitter.com/i/spaces/1RDxllwokEoxL
第20回 time 〜 States
2024/2/8(木) 開催
https://twitter.com/i/spaces/1nAKEaqBnXAKL
Building Applications with ZooKeeper
第21回 冒頭 〜 A Configuration Service
2024/2/9(金) 朝の部
https://twitter.com/i/spaces/1eaKbgeqkOVGX
2024/2/9(金) 夜の部
https://twitter.com/i/spaces/1BRJjPjrbBdKw
第22回
2024/2/10(土) 開催
https://twitter.com/i/spaces/1eaJbgevZXVxX
ここまでで ZooKeeper の章を読み終わり、晴れてアメリカ出張に出かけることに!
次回からは、また Chapter 3 の HDFS コアの部分に戻って読んでいきます。
From the USA - Chapter3 の続き
第23回 Command Line Interface
2024/2/13(火)開催
https://twitter.com/i/spaces/1gqGvQMrlYkKB
第24回 Command Line Interface の続き
2024/2/14(水) 朝開催
https://twitter.com/i/spaces/1mnGepkyWQLKX
2024/2/14(水) 夜開催
https://twitter.com/i/spaces/1ynJOyzQoPlKR
第25回 Command Line Interface より、C、NFS、FUSE
2024/2/15(木)開催
https://twitter.com/i/spaces/1MnxnMyqazNJO
帰国しました〜
第26回 Reading Data From Hadoop URL
2024/2/19(月)開催
https://twitter.com/i/spaces/1DXxyjlojjyKM
第27回 Reading Data Using the FileSystem API
2024/2/20(火)開催
https://twitter.com/i/spaces/1jMJgmyoZRgKL
第28回 FSDataInputStream
2024/2/21(水)開催
https://twitter.com/i/spaces/1BRKjPkrMWaJw
第29回 Writing Data 〜 Directories
2024/2/22(木)開催
https://twitter.com/i/spaces/1ypKdkPvVEnxW
第30回 Querying the Filesystem より Filemetadata: FileStatus
2024/2/26(月)開催
https://twitter.com/i/spaces/1djGXNYgDpOxZ
第31回 Listing Files
2024/2/27(火)開催
https://twitter.com/i/spaces/1kvJpvVYdMkKE
第32回 File patterns ~ PathFilter ~ Deleting Data
2024/2/28(水)開催
https://twitter.com/i/spaces/1BdGYrNbDeEJX
Data Flow
第33回 Anatomy of a File Read
2024/2/29(木)開催
https://twitter.com/i/spaces/1mrGmyWWdWQGy
第34回 ↑の続き
2024/3/1(金)開催
https://twitter.com/i/spaces/1lDxLPNjzEoxm
第35回 Network Topology and Hadoop
2024/3/4(月)開催
https://twitter.com/i/spaces/1vAGRvLOVbDGl
第36回 Anatomy of a File Write 前半
2024/3/5(火)開催
https://twitter.com/i/spaces/1OdKrjNPLdzKX
第37回 Anatomy of a File Write 後半
2024/3/6(水)開催
https://twitter.com/i/spaces/1YqGoDVbYWQJv
第38回 Anatomy of a File Write の復習と、Replica Placement
2024/3/7(木)開催
https://twitter.com/i/spaces/1nAKEakqkpOKL
第39回 Coherency Model
2024/3/8(金)開催
https://twitter.com/i/spaces/1yNxaZAPYAqKj
第40回 Parallel Copying with distcp
2024/3/11(月)開催
https://twitter.com/i/spaces/1lPJqbYOQrbxb
Chapter4. YARN
第41回 YARN ~ Anatomy of a YARN Application Run 冒頭
2024/3/12(火)開催
https://twitter.com/i/spaces/1LyxBnweANExN
第42回 👆の続き 〜 Resource Request
2024/3/13(水)
https://twitter.com/i/spaces/1LyxBnwzkgyxN
第43回 Application Lifespan 〜 Building YARN Application
2024/3/14(木)
https://twitter.com/i/spaces/1ZkJzjqvOjrJv
第44回 YARN Compared to MapReduce1 の前半
2024/3/15(金)
https://twitter.com/i/spaces/1BRJjPVEywRKw
3/18(月)は象本を読み忘れていたぞう・・・
第45回 YARN Compared to MapReduce1 の後半
2024/3/19(火)
https://twitter.com/i/spaces/1vAxRvgZloyxl
第46回 Scheduler Options
2024/3/21(木)
https://twitter.com/i/spaces/1jMJgmYnMDqKL
第47回 Capacity Scheduler Configurations
2024/3/22(金)
https://twitter.com/i/spaces/1MnxnMLaRjeJO
第48回 Queue placement (Capacity Scheduler 配下の)〜
2024/3/25(月)
https://twitter.com/i/spaces/1kvKpvnyBQPJE
第49回 Queue Configuration
2024/3/26(火)
https://twitter.com/i/spaces/1ynKOyjQwXXJR
第50回 Queue placement (Fair Scheduler 配下の)〜
2024/3/27(水)
https://twitter.com/i/spaces/1yNGaZqeLwjJj
第51回 Delay Scheduling
2024/3/28(木)
https://twitter.com/i/spaces/1mrxmygDabgxy
第52回 Dominant Resource Fairness
2024/3/29(金)
https://twitter.com/i/spaces/1eaJbgYqwvXxX
17.Hive
第53回 冒頭部分
2024/4/1(月)
https://twitter.com/i/spaces/1nAKEaeOjXnKL
途中で録音が切れましたが、冒頭部分は最後まで読みました。
(エイプリルフールだけど嘘じゃないです。)
第54回 Installing Hive〜The Hive Shell
2024/4/2(火)
https://twitter.com/i/spaces/1OdKrjokQkwKX
第55回 An Example
2024/4/3(水)
https://twitter.com/i/spaces/1yNGaZmREBWJj
第56回 Configuring Hive
2024/4/4(木)
https://twitter.com/i/spaces/1dRKZEnPzXXxB
第57回 Which Properties Can I set?
一旦飛ばすとしていた MapReduce の章の範囲にこんなタイトルのコーナーがあると知り、いったん150ページに戻ってここをやります。
※諸事情により、前半部分のレコーディングを削除し後半のみアーカイブしています。
2024/4/5(金)
https://twitter.com/i/spaces/1BRJjPyeMeWKw
第58回 Execution engines
2024/4/8(月) ※前半が切れてしまっていたので後半だけです。。。
https://twitter.com/i/spaces/1YpKkwWXkVMKj
第59回 Hive Services の続き
2024/4/9(火)
https://twitter.com/i/spaces/1yNxaZVEZWVKj
第60回 Metastore
2024/4/10(水)
https://twitter.com/i/spaces/1vOGwjNpjloKB
https://twitter.com/i/spaces/1RDGllnkyXVGL
第61回 Transaction の話の続き
2024/4/11(木)
https://twitter.com/i/spaces/1vAxRvMbEvYxl
第62回 HiveQL 〜 Data Types の冒頭
2024/4/12(金)
https://twitter.com/i/spaces/1YpJkwWVNNmJj
第63回 Primitive Types
2024/4/15(月)
https://twitter.com/i/spaces/1lDGLPaDZNPGm
第64回 Complex Types 〜 Operators and Functions
2024/4/16(火)
https://twitter.com/i/spaces/1ynJOyAPrXkKR
第65回 Tables 〜 Managed Table の話まで
2024/4/17(水)
https://twitter.com/i/spaces/1RDGlldRemdGL
第66回 External Table
2024/4/22(月)
https://twitter.com/i/spaces/1MYGNoqQgwXJw
第67回 Buckets 前半
2024/4/25(木)
https://twitter.com/i/spaces/1MnGnMZQjqOKO
第68回 Buckets 後半〜 Storage Format 冒頭
2024/5/7(火)
https://twitter.com/i/spaces/1ZkKzjrkogvKv
第69回 The default format: Delimited text
2024/5/8(水)
https://twitter.com/i/spaces/1RDGllvgPEdGL
第70回 Binary storage formats: Sequence files, Avro datafiles, Parquet files, RC files, ORC files
2024/5/9(木)
https://twitter.com/i/spaces/1LyGBnLMDQoGN
第71回 Storage Handlers ~ Importing Data
2024/5/13(月)
https://twitter.com/i/spaces/1jMJgmwqkYAKL
第72回 Altering Tables
この回から、文を逐一日本語に訳すのをやめて、英語でぶつくさ独り言を言うスタイルに変えています。
2024/5/14(火)
https://twitter.com/i/spaces/1BRJjPqYVMwKw
第73回 MapReduce Scripts
2024/5/17(金)
https://x.com/i/spaces/1djGXNQyrdexZ
第74回 Outer joins ~ Subqueries ~ Views
2024/5/31(金)
https://x.com/i/spaces/1ZkKzjeynNRKv
第75回 User Defined Functions
2024/6/3(月)
https://x.com/i/spaces/1yNGaZYaWnbJj
第76回 Writing a UDAF
2024/6/5(水)
https://x.com/i/spaces/1LyxBnobEePxN
第77回 A more complex UDAF
2024/6/6(木)
特別回
Iceberg のドキュメント読むぞう
2024/4/23(火)
https://twitter.com/i/spaces/1eaJbgVlEndxX
2024/4/24(水)
https://twitter.com/i/spaces/1MnxnMZgzYyJO