用Ambari跟Zeppelin來玩Apache Spark « Terrence的宅宅幻想
最近要弄點資料分析的實驗,看同事用Zeppelin在開發一些hive或是spark的指令碼
稍微撇了一下Zeppelin的介紹還挺好玩的,這次從無到有弄出一個hadoop yarn cluster跟Zeppelin環境來玩spark順便對安裝方法做個筆記
Zeppelin
這玩意有點像是ipython notebook的spark版,具備spark notebook的功能,可以很簡單的用spark等環境互動
而它不止可以跟Spark,還能整合sh, hive, sql等環境進行互動操作
整體用法是蠻簡單的,只要用%符號就能宣告現在note的環境,我最欣賞的是這套軟體可以整合hive等輕易的做出互動式報表
如下我hive query打上去在用環境內建的符號宣告變數,就會跑出對應的欄位跟報表
跟Spark做整合來拉圖表,從Hive拉資料出來資後做些處理放到環境裡面製作圖表
Spark處理完之後就能用sql模式把資料做出簡單的圖表出來
搭建Hadoop YARN的的平臺
先弄三臺或者以上的CentOS 7的環境出來,個人是用VM,這部分就不廢話了
有三個VM資訊如下
server name跟server domain從/etc/hosts裡面適當的設定一下即可
環境準備好之後,我選擇用Ambari去搭出想要的Hadoop ecosystem,像是HDFS, Hive, Spark, Kafka等等等
開始前先簡單介紹一下Ambari這東西,他是Hortonworks家出的Hadoop相關專案的管理系統,用Ambari可以簡單的從無到有搭建出Hadoop Cluster,然後包含Hive, Spark等熱門專案.同時還可以設定並監控各Hadoop相關的服務
Step1:編輯/etc/hosts
這一步是方便之後建立cluster的時候ssh遠端登入用
Step2:去各server埋ssh key
讓Ambari可以登入各server安裝hadoop cluster
埋key的user要有sudo的許可權,這裡用sudouser當作範例
Step3:安裝Ambari
Step4: 從ambari去安裝Hadoop, HDFS YARN, Hive, Pig, Spark, Kafka, 等等
選擇“Launch Install Wizard”開始安裝
取個適當的cluster name 並選擇最新版HDP
紅匡的部分填上server群組跟埋key的private key還有該key的user
如果可以正常登入應該會看到全部server都是綠棒棒
接下來就選擇想安裝的apache家族啦,經驗上有需要的才安裝就好,儘量選擇最小安裝,不然有時候安裝上出現各種問題要處理也很麻煩,最基本的Hadoop家族安裝就好,這邊我手賤多按了幾個套件,後面解問題花了不少時間,像是那個knox
接下來是各服務的config,全部都可以在Ambari做設定,安裝之前要先把紅字的部分消除掉,其實我只需要hadoop跟hive還有spark,其他不需要的後都選擇不安裝繞過了
config基本上不需要特別調整,預設的應該就夠用了,有需要帳號密碼設定的適當設定上去就好
比較麻煩的hive可能需要pam的設定,沒有特別需求就如下簡單帶過吧
開始安裝
安裝成功後有些服務要用手動的方式帶起來,看到紅燈就手動把它的服務開啟
成功之後就會看到各服務的狀態,happy
Step5: 安裝zeppelin
Ambari安裝完後其他服務可以用其他方式裝進去,包含一些預設沒有的服務
除了zeppelin之外最近紅的Apache Hifi還是Apache flink都找的到安裝包
這邊介紹zeppelin的安裝方式,安裝方式直接參考下方網址
https://github.com/hortonworks-gallery/ambari-zeppelin-service
從開好之後從左邊最下面"Actions"選單"Add Service"
多了zeppelin的選項可以選,選擇之後一直Next就行了
安裝成功,接下來就可以玩Spark啦
2016/02/01 追記
環境
- CentOS
- Maven 3.1.1+
- R 3.1+
- Java 1.8+
- Git
- Node.js Package Manager (npm, bower)
安裝R相關套件
編譯R版本Zeppelin
啟動之後可以用下面的程式碼在zeppelin上測試sparkR會不會動
結果如下