- 操作系统:Ubuntu 22.04
- 軟體:Apache Hadoop、Redis、Prometheus、Grafana
- 部署方式:Docker
使用Docker-compose部署Hadoop,配置如下:
- 2個DataNode
- 1個ResourceManager
- 2個NodeManager
在前面設定中,使用jmx_prometheus_javaagent對外映射了30002的port做為prometheus的mertic,
prometheus的yaml設定如下,對應了前面所說開了30002的port去做metric的收集
prometheus的web UI成功獲取port:30002的mertic
namenode.yaml透過dockercompose放置到需要監控的service上
最後透過grafana去繪製prometheus得到的mertic
可以看到從prometheus得到的namenode mertic
grafana的部分在這次作業中主要只監控namenode,原因是因為監控datanode和namenode步驟預想上是一樣的,如HDFS,YARN,和MapReduce 目前只取幾個關鍵指標,如CPU使用量,JVM memory使用量、Metaspace、datanode數量等等
最後測試JOB的部分,使用內建的範例去做測試,最後將得到的結果存到redis中當作cache使用。
感謝面試官閱讀至此。在架設過程中,我不僅獲得了對資料處理過程的深入理解,也體驗到了其中的樂趣。雖然由於時間和經驗的限制,無法完全深究每一個細節,但我相信這次的學習對我來說是一次非常寶貴的經驗。