大資料工程師需要的東西
Qhearts發表於2017-04-28
JAVA
- 介紹下REST設計風格
- reentrantLock、synchronized 兩種鎖對比,在哪些業務上用過鎖
- 執行緒安全,concurrentLinkedQueue(非阻塞佇列) LinkedBlockingQueue(阻塞佇列),用過多執行緒併發嗎
- 介紹下RPC,用過Thrift API嗎?
- 設計模式有哪幾種,分別介紹2-3個
- JVM優化,垃圾回收策略
HIVE(可以不掌握)
- hive關聯查詢,如何解決資料傾斜問題?
- hive與關係型資料庫mysql等有什麼異同點?
- Order by,Sort by, Distribute by, Cluster by 分別介紹下特點
- hive的null是怎麼儲存的?如何實現資料抽樣?
- hive內部表和外部表的區別?
- 你們的叢集規模?怎麼把資料匯入資料庫?處理過哪種資料,執行job大概用多長時間?
- 做專案遇到哪些問題,怎麼解決的?
- 有寫過UDF函式, 用於處理哪個業務?
HDFS/MapReduce
- 搭建過叢集?遇到過哪些問題?safemode是什麼
- hdfs一些命令,比如合併檔案,上傳下載,檢查檔案目錄是否存在
- MapReduce的shuffle工作原理,MapReduce的工作流程,介紹下JobTracker和TashTracker
- hadoop的幾種檔案格式,介紹下用過哪些和特點
- MapReduce效能優化,有什麼方面可以做?(設定InputSplit大小減少map任務數量、資料傾斜、shuffle調優、壓縮演算法、更換排程器等)
- flume如何工作的,source/channel/sink
HBASE
- 讀寫用哪些API?RowKey的設計原則,Scan和Get實現批量,一個表適合建多少個列族,用過HBase儲存什麼資料
- 合併HFile,minor和major有什麼區別?
- HBase儲存用的是什麼結構,(LSM樹)並簡單介紹下
- 介紹下hbase協處理器,如何實現過濾?
- 如何預分割槽,還有怎麼生成HFile
Storm
- storm的工作原理,如何實現ack?
- storm如何在bolt實現批量提交資料並在關閉任務時不丟資料?
- storm反壓原理
ElasticSearch(Solr)
- 使用過ES儲存資料嗎?分片數可以動態調整嗎?ES搜尋時間排序資料的工作流程
- 分詞有用過嗎,試過ES + HBase 提高索引速度?
- ES調優,記憶體,bluk api, cache
CouchBase 、 Redis 、MongoDB
- 在哪些業務上運用過
- 用過Redis Geo功能嗎
- redis cluster slot概念
- 遇到過哪些問題?
Active MQ、Rabbit MQ 、Kafka
- kafka的工作原理,Producer/Broker/Consumer
- kafka的儲存策略
- 一些shell api, 怎麼檢視consumer offset,增加topic的partitions
MySQL PostgreSQL
- InnoDB/MyISAM儲存索引異同點, 分別適用哪些場景
- 設計索引的原則,提高查詢速度
- 怎麼去定位查詢速度慢的SQL並如何優化,分割槽功能有哪幾種模式
- PostgreSQL的幾種索引GIST/SP-GIST/GIN/B-TREE 分別介紹下
Spark(Scala)
- spark任務提交過程
- 用過spark streaming嗎?運用在哪些方面
Python
- 平時用過哪些模組、lib包,用過annaconda嗎?