1. 概要Livy は、Spark クラスターと対話するための REST インターフェイスを提供するサービスです。 Spark ジョブまたは Spark コードを送信し、同期的または非同期的に結果を返すことができます。また、Restful インターフェースまたは RPC クライアント ライブラリを介して Sparkcontext 管理も提供します。 Livy は Spark およびアプリケーション サービスとのやり取りも簡素化し、Web/モバイル経由で Spark の使用とやり取りできるようにします。 公式サイト: https://livy.incubator.apache.org/GitHub アドレス: https://github.com/apache/incubator-livy Apache Livy の詳細については、私の記事「Spark Open Source REST Service - Apache Livy (Spark Client)」も参照してください。 2. オーケストレーションとデプロイメントを開始する1) 展開パッケージの準備コンパイルされた livy デプロイメント パッケージもここに提供されます。必要な場合は、自分でダウンロードできます。 リンク: https://pan.baidu.com/s/1pPCbe0lUJ6ji8rvQYsVw9A?pwd=qn7i 抽出コード: qn7i 1) イメージを構築するDockerファイル myharbor.com/bigdata/centosより: 7.9.2009
RUN rm -f / etc / localtime && ln -sv / usr / share / zoneinfo / Asia / Shanghai / etc / localtime && echo "アジア/上海" > / etc / timezone 実行エクスポート LANG = zh_CN .UTF - 8
### ツールをインストールする yum install -y vim tar wget curl less telnet net -tools lsof を実行します。
実行 groupadd --system --gid=9999 admin && useradd --system -m /home/admin --uid=9999 --gid=admin admin
mkdir -p / opt / apacheを実行します
apache-livy-0.8.0-incubating-SNAPSHOT-bin.zip/opt/apache/ を追加します。 ENV LIVY_HOME =/ opt / apache / apache - livy RUN ln - s / opt / apache / apache - livy - 0.8 .0 - incubating - SNAPSHOT - bin $LIVY_HOME
ADD hadoop - 3.3 .2 .tar .gz / opt / apache / ENV HADOOP_HOME =/ opt / apache / hadoop 実行ln -s / opt / apache / hadoop - 3.3 .2 $HADOOP_HOME ENV HADOOP_CONFIG_DIR = $ { HADOOP_HOME } / etc / hadoop
ADD spark - 3.3.0 - bin - hadoop3.tar.gz / opt / apache / ENV SPARK_HOME =/ opt / apache / spark 実行 ln -s / opt / apache / spark - 3.3.0 - bin - hadoop3 $SPARK_HOME
環境変数PATH = $ { LIVY_HOME } / bin : $ { HADOOP_HOME } / bin : $ { SPARK_HOME } / bin : $PATH
chown - R admin を実行します: admin / opt / apache
ワークディレクトリ $LIVY_HOME
ENTRYPOINT $ { LIVY_HOME } / bin / livy - server start ; tail -f $ { LIVY_HOME } /ログ/ livy -ルート-サーバー.out [注記] hadoop パッケージ内の core-site.xml、hdfs-site.xml、yarn-site.xml イメージの構築を開始する docker build -t myharbor .com / bigdata / livy : 0.8.0 。 --キャッシュなし
### パラメータの説明 # - t: 画像名を指定する # . : 現在のディレクトリ Dockerfile # - f: Dockerfileのパスを指定する # --no-cache: キャッシュなし
# 港へ向かう docker push myharbor .com / bigdata / livy : 0.8 .0 2) リヴィチャートテンプレートを作成するヘルムクリエイトリヴィ 3) YAMLレイアウトを変更するレプリカ数: 1
画像: リポジトリ: myharbor.com/bigdata/livy プルポリシー: IfNotPresent # デフォルトがチャートの appVersionであるイメージ タグをオーバーライドします。 タグ: "0.8.0"
セキュリティコンテキスト: 実行ユーザー: 9999 実行グループ: 9999 特権: true
サービス: タイプ: NodePort ポート: 8998 ノードポート: 31998 - livy/テンプレート/configmap.yaml
APIバージョン: v1 種類: ConfigMap メタデータ: 名前: { { "livy.fullname"を含めます。 } } ラベル: { { - "livy.labels"を含めます。 |ニンデント4 } } データ: livy.conf : |- livy .spark .master =糸 livy .spark .deploy -モード=クライアント livy .environment =生産 リヴィ.impersonation .enabled = true livy .server .csrf_protection .enabled = false livy .server .port = { { .Values .service .port } } livy .server .session .timeout = 3600000 livy .server .recovery .mode =リカバリ livy .server .recovery .state -ストア=ファイルシステム livy .server .recovery .state - store .url = / tmp / livy livy .repl .enable - hive - context = true livy-env.sh : | - JAVA_HOME =/ opt / apache / jdk1.8.0_212をエクスポートします。 HADOOP_HOME をエクスポートします=/ opt / apache / hadoop HADOOP_CONF_DIR をエクスポートします=/ opt / apache / hadoop / etc / hadoop SPARK_HOME をエクスポートします=/ opt / apache / spark SPARK_CONF_DIR =/ opt / apache / spark / conf をエクスポートします。 LIVY_LOG_DIR =/ opt / apache / livy / logs をエクスポートします エクスポート LIVY_PID_DIR =/ opt / apache / livy / pid - dir エクスポート LIVY_SERVER_JAVA_OPTS = "-Xmx512m" spark -ブラックリスト.conf : |- スパーク.マスター spark.submit.deployMode
# Spark のキャッシュされた jar の場所の上書きを禁止します。 スパーク.ヤーン.jar スパーク.yarn .jar スパーク.ヤーン.アーカイブ
#ユーザーが RSC タイムアウトを上書きすることを許可しません。 livy.rsc.server.アイドルタイムアウト apiバージョン:アプリ/ v1 種類:デプロイメント メタデータ: 名前: { { "livy.fullname"を含めます。 } } ラベル: { { - "livy.labels"を含めます。 |ニンデント4 } } 仕様: { { - .Values .autoscaling .enabledでない場合} } レプリカ: { { .Values .replicaCount } } { { -終わり} } セレクター: マッチラベル: { { - "livy.selectorLabels"を含めます。 |ニンデント6 } } テンプレート: メタデータ: { { - .Values .podAnnotationsを使用} } 注釈: { { - toYaml 。 |ニンデント8 } } { { -終わり} } ラベル: { { - "livy.selectorLabels"を含めます。 |ニンデント8 } } 仕様: { { - .Values .imagePullSecretsを使用} } イメージプルシークレット: { { - toYaml 。 |ニンデント8 } } { { -終わり} } serviceAccountName : { { "livy.serviceAccountName"を含めます。 } } セキュリティコンテキスト: { { - toYaml .Values .podSecurityContext |ニンデント8 } } コンテナ: -名前: { { .Chart .Name } } セキュリティコンテキスト: { { - toYaml .Values .securityContext |ニンデント12 } } 画像: "` `.`Values`.`image`.`repository `:{{ .Values.image.tag | default .Chart.AppVersion }}" イメージプルポリシー: { { .Values .image .pullPolicy } } ポート: -名前: http コンテナポート: 8998 プロトコル: TCP ライブネスプローブ: httpGet :取得: パス: / ポート: http 準備状況プローブ: httpGet :取得: パス: / ポート: http リソース: { { - toYaml .Values .resources |ニンデント12 } } { { - .Values .securityContextを使用} } セキュリティコンテキスト: 実行ユーザー: { { .runAsUser } } 実行グループ: { { .runAsGroup } } 特権: { { .privileged } } { { -終わり} } ボリュームマウント: -名前: { { .Release .Name } } - livy - conf マウントパス: /opt/apache/livy/conf/livy.conf サブパス: livy.conf -名前: { { .Release .Name } } - livy - env マウントパス: /opt/apache/livy/conf/livy-env.sh サブパス: livy-env.sh -名前: { { .Release .Name } } - spark -ブラックリスト- conf マウントパス: /opt/apache/livy/conf/spark-blacklist.conf サブパス: spark - blacklist.conf { { - .Values .nodeSelectorを使用} } ノードセレクタ: { { - toYaml 。 |ニンデント8 } } { { -終わり} } { { - .Values .affinityを使用} } 親和性: { { - toYaml 。 |ニンデント8 } } { { -終わり} } { { - .Values .tolerationsを使用} } 許容範囲: { { - toYaml 。 |ニンデント8 } } { { -終わり} } 巻数: -名前: { { .Release .Name } } - livy - conf 構成マップ: 名前: { { "livy.fullname"を含めます。 } } -名前: { { .Release .Name } } - livy - env 構成マップ: 名前: { { "livy.fullname"を含めます。 } } -名前: { { .Release .Name } } - spark -ブラックリスト- conf 構成マップ: 名前: { { "livy.fullname"を含めます。 } } 4) 展開を開始する helm で livy をインストールします。/livy -n livy --create-namespace 注記 注記: 1.次のコマンドを実行してアプリケーション URL を取得します。 NODE_PORT をエクスポートします。 $ ( kubectl get --namespace livy -o jsnotallow="{.spec.ports[0].nodePort}" services livy) NODE_IP をエクスポートします。 $ ( kubectl get nodes --namespace livy -o jsnotallow="{.items[0].status.addresses[0].address}") httpをエコー: // $NODE_IP : $NODE_PORT チェック kubectl get pods 、 svc - n livy - wide を実行します。 ウェブアドレス: http://192.168.182.110:31998/ui 5) テスト検証 curl -s - 110 : 31998 /バッチ| python - mjson.tool 6) アンインストール helm アンインストール livy -n livy Git アドレス: https://gitee.com/hadoop-bigdata/livy-on-k8s |