這幾天嘗試在k8s中搭建spark集群,踩了一些坑,跟大家分享一下。
spark的元件介紹可參考官方文件
具體參考github k8s
映象拉取問題
可將zeppelin-controller.yaml使用的映象修改為index.tenxcloud.com/google_containers/zeppelin:v0.5.6_v1
webui service使用問題
文件中的kubectl proxy –port=8001指令只能監聽127.0.0.1的**請求,不適用於測試環境和虛擬機器環境,因為使用的ip位址不是127.0.0.1。
此時使用kubectl proxy –port=8001 –address=\
pyspark示例執行錯誤
示例中的資料來源存在問題,可使用本地檔案執行,例如「sc.textfile(「/opt/spark/licenses/*」).map(lambda s: len(s.split())).sum()」
zeppelin webui使用問題
同樣只能通過localhost或127.0.0.1訪問,可以通過將zeppelin service型別配置為nodeport。參考spark-20160427.zip中的zeppelin-service.yaml。
使用方法為:
該示例會統計zeppelin本地/opt/spark/licenses/目錄下的所有檔案的單詞數量,幾秒後會看到執行結果。
需要根據k8s原始碼中的examples/spark/下的yaml檔案搭建,將所有yaml檔案複製到工作目錄下。
修改spark-master-controller.yaml和spark-worker-controller.yaml:
* spec.template.spec.containers.command均修改為「/start.sh」
* spec.template.spec.containers.images分別修改為index.tenxcloud.com/google_containers/spark-master:1.5.2_v1和index.tenxcloud.com/google_containers/spark-worker:1.5.2_v1
zeppelin-controller.yaml使用的映象修改為index.tenxcloud.com/google_containers/zeppelin:v0.5.6_v1
修改完成後,按k8s官方示例的步驟啟動即可。
由於zeppelin映象非常大,拉取會消耗很多時間。可以使用下面的spark-driver.yaml建立乙個簡易的spark-driver:
cpu: 100m建立後,使用kubectl exec -it pyspark即可訪問。
yaml配置參考這裡
基於k8s集群 搭建efk日誌系統
1.官方位址 2.搭建es集群 kubectl get po n kube system grep elasticsearch 等待pod狀態到running kubectl describe po elasticsearch logging 0 n kube system grep ip curl...
k8s集群日誌
硬體環境 三颱虛擬機器,10.10.20.203 部署docker etcd flannel kube apiserver kube controller manager kube scheduler elsticsearch kibana 10.10.20.206 部署docker flannel...
k8s搭建集群
k8s由兩種型別資源組成 分別是 master 和 nodes k8s的集群部署方式有三種 1.kubeadm 2.minikube 3.二進位製包 前兩種為自動部署,簡化操作。說一說手動部署的 二進位製包 k8s集群部署步驟 1.關閉防火牆 firewall cmd state systenctl...