自作サーバーでSparkクラスタをKubernetes上に構築してみた Running Apache Spark on Kubernetes in Homebrew junk Server

Channel:
Subscribers:
953
Published on ● Video Link: https://www.youtube.com/watch?v=3CiLBVNrcLI



Duration: 12:37
276 views
4


クラスタを構築する最低ラインだと
CPU:i7 (8Thread)
MEM:16GB

CPU:2Thread
MEM:2GB
のような3台のクラスタが作れます。是非お試しあれ。

実行コマンドは下記に載せました。
※<>は全角になっているので半角に変換して下さい。

全ノード共通
sudo vi /etc/hosts

192.168.1.14 me01 me01.me
192.168.1.15 me02 me02.me
192.168.1.16 me03 me03.me

sudo vi /etc/ssh/sshd_config

PubkeyAuthentication yes

ssh-keygen

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

vi ~/.ssh/config

host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null

chmod 600 ~/.ssh/config

eval $(ssh-agent)

ssh-add ~/.ssh/id_rsa

ssh -A me01.me

exit

sudo vi /etc/selinux/config

SELINUX=Disabled


sudo systemctl disable firewalld

sudo reboot

sudo su -

yum -y update

yum install -y docker

systemctl enable docker && systemctl start docker

swapoff -a

vi /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet.service && systemctl start kubelet.service

shutdown -h now

マスターのみ


sudo kubeadm init --pod-network-cidr=10.244.0.0/16
kubeadm join 192.168.1.14:6443 --token t1mc27.bw9ry9bnejuglaev --discovery-token-ca-cert-hash sha256:e11c0d0132ba4fa6a9628022039cb85f01cb74bd0d47d31901c049b04afa1d7e



mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl get nodes

kubectl get pods --all-namespaces


sudo su -

docker info | grep -i cgroup

docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2

docker ps

vi /etc/sysconfig/docker

#OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
OPTIONS='--insecure-registry me01.me:5000 --selinux-enabled --log-driver=journald --signature-verification=false'

ワーカー
sudo nmtui

sudo reboot

ssh -A me02.me
ssh -A me03.me

sudo su -
kubeadm join 192.168.1.14:6443 --token t1mc27.bw9ry9bnejuglaev --discovery-token-ca-cert-hash sha256:e11c0d0132ba4fa6a9628022039cb85f01cb74bd0d47d31901c049b04afa1d7e

vi /etc/sysconfig/docker

#OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
OPTIONS='--insecure-registry me01.me:5000 --selinux-enabled --log-driver=journald --signature-verification=false'

マスター
kubectl get nodes

sudo yum -y install java-1.8.0-openjdk

sudo yum -y install wget


wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz

gzip -cd spark-2.3.1-bin-hadoop2.7.tgz | tar xvf -

cd ~/spark-2.3.1-bin-hadoop2.7



sudo ./bin/docker-image-tool.sh -r me01.me:5000/myspark build

sudo ./bin/docker-image-tool.sh -r me01.me:5000/myspark push

sudo docker push me01.me:5000/myspark/spark:latest

kubectl create serviceaccount default

kubectl create clusterrolebinding spark-role --clusterrole=edit --serviceaccount=default:default --namespace=default

bin/spark-submit \
--master k8s://https://me01.me:6443 \
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=3 \
--conf spark.kubernetes.container.image=me01.me:5000/myspark/spark \
local:///opt/spark/examples/jars/spark-examples_2.11-2.3.1.jar

kubectl get pod

kubectl logs spark-pi-01b9a2b9a0c83d558bdc394ead9dce6c-driver | less

■参考にさせて頂いたHP
https://www.server-world.info/
https://qiita.com/ysakashita/items/1f87646ae804ba509d07

■公式HP
https://spark.apache.org/docs/2.3.0/running-on-kubernetes.html
https://kubernetes.io/




Other Videos By 誰かさん


2018-08-08再帰処理をSQLで記述する Write recursive processing in SQL
2018-08-08Drakengard 2 ドラッグ オン ドラグーン2 scene 52 第十章 崩壊 フリーミッション 聖地 上空
2018-08-05Drakengard 2 ドラッグ オン ドラグーン2 scene 51 九章 復活 三節 上空
2018-08-04FINAL FANTASY CRYSTAL CHRONICLES scene 07 アルフィタリア城
2018-08-01Drakengard 2 ドラッグ オン ドラグーン2 scene 50 九章 復活 二節 女神の城
2018-07-29Drakengard 2 ドラッグ オン ドラグーン2 scene 49 九章 復活 一節 上空
2018-07-28Drakengard 2 ドラッグ オン ドラグーン2 scene 48 八章 覇道 六節 上空
2018-07-25FINAL FANTASY CRYSTAL CHRONICLES scene 06 Goblin Wall
2018-07-22Drakengard 2 ドラッグ オン ドラグーン2 scene 47 八章 覇道 五節 時の聖壇
2018-07-21Drakengard 2 ドラッグ オン ドラグーン2 scene 46 八章 覇道 四節 天時塔
2018-07-19自作サーバーでSparkクラスタをKubernetes上に構築してみた Running Apache Spark on Kubernetes in Homebrew junk Server
2018-07-18Drakengard 2 ドラッグ オン ドラグーン2 scene 45 八章 覇道 三節 天時の直轄区
2018-07-15FINAL FANTASY CRYSTAL CHRONICLES scene 05 Cathuriges Mine
2018-07-15オープニング タイトル 作ってみた
2018-07-14Drakengard 2 ドラッグ オン ドラグーン2 scene 44 八章 覇道 二節 天時の直轄区
2018-07-11FINAL FANTASY CRYSTAL CHRONICLES scene 04 Fungi Forest
2018-07-08Drakengard 2 ドラッグ オン ドラグーン2 scene 43 八章 覇道 一節 上空
2018-07-07Drakengard 2 ドラッグ オン ドラグーン2 scene 42 第七章 慟哭 九節 命の聖壇
2018-07-04FINAL FANTASY CRYSTAL CHRONICLES scene 03 River Belle Path
2018-07-01Drakengard 2 ドラッグ オン ドラグーン2 scene 41 第七章 慟哭 八節 明命の直轄区
2018-06-30Drakengard 2 ドラッグ オン ドラグーン2 scene 40 第七章 慟哭 七節 上空



Tags:
Apache Spark
Kubernetes
CentOS
ESXi
Docker
k8s
junk
Spark