เจชเจฟเจเจฐเฉ เจชเจพเจ เจ, เจธเจผเฉเจญ เจฆเฉเจชเจนเจฟเจฐเฅค เจ เฉฑเจ เจ เจธเฉเจ เจ เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจ เจคเฉ เจเจธเจฆเฉ เจตเจฟเจเจพเจธ เจฆเฉเจเจ เจธเฉฐเจญเจพเจตเจจเจพเจตเจพเจ เจฌเจพเจฐเฉ เจฅเฉเฉเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค
เจตเฉฑเจกเฉ เจกเฉเจเจพ เจฆเฉ เจเจงเฉเจจเจฟเจ เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจ, เจ
เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจฌเฉเจ เจกเฉเจเจพ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฒเจ เจ
เจธเจฒ เจฎเจฟเจเจฐ เจนเฉเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจธเจเฉเจฐเฉเจฎเจฟเฉฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจตเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจเฉ เจฎเจพเจเจเฉเจฐเฉ เจฌเฉเจ เจธเฉฐเจเจฒเจช, เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจ
เจคเฉ เจธเจผเจฟเจชเจฟเฉฐเจ เจกเฉเจเจพ เจจเฉเฉฐ เจเฉเจเฉ เจนเจฟเฉฑเจธเจฟเจเจ (เจธเจชเจพเจฐเจ เจธเจเฉเจฐเจเจเจฐเจก เจธเจเฉเจฐเฉเจฎเจฟเฉฐเจ) เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจเฅค เจ
เจคเฉ เจฐเจตเจพเจเจคเฉ เจคเฉเจฐ 'เจคเฉ เจเจน เจธเจฐเฉเจค เจฎเฉเจจเฉเจเจฐ เจฆเฉ เจคเฉเจฐ 'เจคเฉ YARN (เจเจพเจ เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ Apache Mesos) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฎเฉเฉฑเจเฉ Hadoop เจธเจเฉเจ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฐเจฟเจนเจพ เจนเฉเฅค 2020 เจคเฉฑเจ, เจเจธเจฆเฉ เจฐเจตเจพเจเจคเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจตเจฟเจจเฉเจค เจนเฉเจกเฉเจช เจตเฉฐเจกเจพเจ เจฆเฉ เจเจพเจ เจเจพเจฐเจจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจเฉฐเจชเจจเฉเจเจ เจฒเจ เจชเฉเจฐเจธเจผเจจ เจตเจฟเฉฑเจ เจนเฉ - เจเจเจกเฉเจชเฉ เจ
เจคเฉ เจธเฉเจกเฉเจเจ เจฆเจพ เจตเจฟเจเจพเจธ เจฐเฉเจ เจเจฟเจ เจนเฉ, เจธเฉเจกเฉเจเจ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจตเจฟเจเจธเจค เจจเจนเฉเจ เจนเฉ เจ
เจคเฉ เจเจธเจฆเฉ เจเฉฑเจ เจเฉเจฎเจค เจนเฉ, เจ
เจคเฉ เจฌเจพเจเฉ เจนเฉเจกเฉเจช เจธเจชเจฒเจพเจเจฐ เจนเจจเฅค เจเจพเจ เจคเจพเจ เจนเฉเจเจฆ เจเจคเจฎ เจนเฉ เจเจ เจนเฉ เจเจพเจ เจเฉฑเจ เจฎเฉฑเจงเจฎ เจญเจตเจฟเฉฑเจ เจนเฉเฅค เจเจธ เจฒเจ, เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจ
เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจเจฎเจฟเจเจจเจฟเจเฉ เจ
เจคเฉ เจตเฉฑเจกเฉเจเจ เจเฉฐเจชเจจเฉเจเจ เจตเจฟเฉฑเจ เจตเฉฑเจงเจฆเฉ เจฆเจฟเจฒเจเจธเจชเฉ เจนเฉ - เจจเจฟเฉฑเจเฉ เจ
เจคเฉ เจเจจเจคเจ เจเจฒเจพเจเจกเจพเจ เจตเจฟเฉฑเจ เจเฉฐเจเฉเจจเจฐ เจเจฐเจเฉเจธเจเฉเจธเจผเจจ เจ
เจคเฉ เจธเจฐเฉเจค เจชเฉเจฐเจฌเฉฐเจงเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจฟเจเจฐ เจฌเจฃเจจเจพ, เจเจน YARN 'เจคเฉ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจฆเฉ เจ
เจธเฉเจตเจฟเจงเจพเจเจจเจ เจธเจฐเฉเจค เจธเจฎเจพเจ-เจธเจพเจฐเจฃเฉ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจธเจพเจฐเฉ เจเจเจพเจฐเจพเจ เจ
เจคเฉ เจชเฉฑเจเฉเจเจ เจฆเฉเจเจ เจเฉฐเจชเจจเฉเจเจ เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจตเจชเจพเจฐเจ เจ
เจคเฉ เจเฉเฉฑเจฒเฉ เจตเฉฐเจกเจพเจ เจตเจพเจฒเจพ เจเฉฑเจ เจธเจฅเจฟเจฐ เจตเจฟเจเจพเจธเจธเจผเฉเจฒ เจชเจฒเฉเจเจซเจพเจฐเจฎเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจชเฉเจฐเจธเจฟเฉฑเจงเฉ เจฆเฉ เจฎเฉฑเจฆเฉเจจเจเจผเจฐ, เจเจผเจฟเจเจฆเจพเจคเจฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจชเจฃเฉเจเจ เจเฉเจฆ เจฆเฉเจเจ เจเฉเจ เจธเจฅเจพเจชเจจเจพเจตเจพเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจตเจฟเฉฑเจ เจเจพเจฎเจฏเจพเจฌ เจนเฉ เจเจ เจนเจจ เจ
เจคเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจฎเฉเจนเจพเจฐเจค เจตเจฟเฉฑเจ เจตเจพเจงเจพ เจเจฐ เจเฉเฉฑเจเฉ เจนเจจ, เจเฉ เจเจธ เจเจฆเจฎ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจธเฉฐเจธเจเจฐเจฃ 2.3.0 เจฆเฉ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเฉเจ, เจ
เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉ เจเจพเจฐเจเจพเจ เจฒเจ เจ
เจงเจฟเจเจพเจฐเจค เจธเจนเจพเจเจคเจพ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจนเฉ เจ
เจคเฉ เจ
เฉฑเจ, เจ
เจธเฉเจ เจเจธ เจชเจนเฉเฉฐเจ เจฆเฉ เจฎเฉเจเฉเจฆเจพ เจชเจฐเจฟเจชเฉฑเจเจคเจพ, เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจฒเจ เจตเฉฑเจ-เจตเฉฑเจ เจตเจฟเจเจฒเจชเจพเจ เจ
เจคเฉ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉเจฐเจพเจจ เจเจเจฃ เจตเจพเจฒเฉเจเจ เจฎเฉเจธเจผเจเจฒเจพเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจเจ เจ
เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจ
เจงเจพเจฐ เจคเฉ เจเจพเจฐเจเจพเจ เจ
เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจตเฉเจเฉเจ เจ
เจคเฉ เจเจพเจธ เจเฉเจธเจพเจ เจจเฉเฉฐ เจเจเจพเจเจฐ เจเจฐเฉเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจเฉฑเจ เจเจพเจฐเจ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจธ เจชเฉเจธเจ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจจ เจตเจฟเฉฑเจ, OpenShift เจจเฉเฉฐ เจเฉฑเจ เจตเฉฐเจก เจตเจเฉเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจธเจฆเฉ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเจชเจฏเฉเจเจคเจพ (oc) เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเจฎเจพเจเจกเจพเจ เจฆเจฟเฉฑเจคเฉเจเจ เจเจพเจฃเจเฉเจเจเฅค เจนเฉเจฐ Kubernetes เจตเฉฐเจกเจพเจ เจฒเจ, เจฎเจฟเจเจฐเฉ Kubernetes เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเจชเจฏเฉเจเจคเจพ (kubectl) เจเจพเจ เจเจนเจจเจพเจ เจฆเฉ เจเจจเจพเจฒเจพเจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, oc adm เจจเฉเจคเฉ เจฒเจ) เจคเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเจฎเจพเจเจกเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจชเจนเจฟเจฒเฉ เจตเจฐเจคเฉเจ เจฆเจพ เจเฉเจธ - เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ
เจเจพเจฐเจเจพเจ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเจฟเจเจพเจธ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจกเจฟเจตเฉเจฒเจชเจฐ เจจเฉเฉฐ เจกเจพเจเจพ เจชเจฐเจฟเจตเจฐเจคเจจ เจจเฉเฉฐ เจกเฉเจฌเฉฑเจ เจเจฐเจจ เจฒเจ เจเจพเจฐเจ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจธเจฟเจงเจพเจเจคเจ เจคเฉเจฐ 'เจคเฉ, เจธเจเฉฑเจฌเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจนเจจเจพเจ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจ เฉฐเจค เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฆเฉ เจ เจธเจฒ (เจญเจพเจตเฉเจ เจเฉเจธเจ) เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉ เจญเจพเจเฉเจฆเจพเจฐเฉ เจจเจพเจฒ เจตเจฟเจเจพเจธ เจเจพเจฐเจเจพเจ เจฆเฉ เจเจธ เจธเจผเฉเจฐเฉเจฃเฉ เจตเจฟเฉฑเจ เจคเฉเจเจผ เจ เจคเฉ เจฌเจฟเจนเจคเจฐ เจธเจพเจฌเจค เจนเฉเจเจ เจนเฉเฅค เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจเจฆเฉเจ เจ เจธเฉเจ เจ เฉฐเจค เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฆเฉเจเจ เจ เจธเจฒ เจธเจฅเจฟเจคเฉเจเจ 'เจคเฉ เจกเฉเจฌเฉฑเจ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผ เจธเฉฐเจญเจต เจนเจจ:
- เจกเจฟเจตเฉเจฒเจชเจฐ เจธเจเฉเจเจกเจ
เจฒเฉเจจ เจฎเฉเจก เจตเจฟเฉฑเจ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพเจเจเจฆเจพ เจนเฉ;
- เจเฉฑเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจเฉฑเจ เจเฉเจธเจ เจฒเฉเจช เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจเฉฑเจคเฉ เจเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพเจเจเจฆเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเฉ เจตเจฟเจเจฒเจช เจจเฉเฉฐ เจฎเฉเจเฉเจฆ เจนเฉเจฃ เจฆเจพ เจ เจงเจฟเจเจพเจฐ เจนเฉ, เจชเจฐ เจเจธเจฆเฉ เจเจ เจจเฉเจเจธเจพเจจ เจนเจจ:
- เจนเจฐเฉเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจจเฉเฉฐ เจเฉฐเจฎ เจตเจพเจฒเฉ เจฅเจพเจ เจคเฉเจ เจ เฉฐเจคเจฎ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฆเฉเจเจ เจธเจพเจฐเฉเจเจ เจธเจฅเจฟเจคเฉเจเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจเจฟเจธเจฆเฉ เจเจธเจจเฉเฉฐ เจฒเฉเฉ เจนเฉ;
- เจตเจฟเจเจธเจฟเจค เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจเฉฐเจฎ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจตเจฐเจเจฟเฉฐเจ เจฎเจธเจผเฉเจจ 'เจคเฉ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค
เจฆเฉเจเฉ เจตเจฟเจเจฒเจช เจตเจฟเฉฑเจ เจเจน เจจเฉเจเจธเจพเจจ เจจเจนเฉเจ เจนเจจ, เจเจฟเจเจเจเจฟ เจเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฐเฉเจค เจชเฉเจฒ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจ เฉฐเจคเจฎ เจธเจฟเจธเจเจฎ เจเจฆเจพเจนเจฐเจจเจพเจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ, เจเฉเจฌเจฐเจจเฉเจเจธ เจฐเฉเจฒ เจฎเจพเจกเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจเจเจฆเจพเจฐ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉเฅค เจตเจฟเจเจพเจธ เจเฉเจฎ เจฆเฉ เจธเจพเจฐเฉ เจฎเฉเจเจฌเจฐเฅค เจเจ เจเจธเจจเฉเฉฐ เจชเจนเจฟเจฒเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจเจพเจเจฐ เจเจฐเฉเจ - เจเฉฑเจ เจเฉเจธเจ เจธเจฐเจเจ เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจเฉฑเจ เจธเจฅเจพเจจเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจฎเจธเจผเฉเจจ เจคเฉเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฒเจพเจเจ เจเจฐเจจเจพเฅค
เจเจ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฒเจ เจธเจชเจพเจฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฌเจพเจฐเฉ เจนเฉเจฐ เจเฉฑเจฒ เจเจฐเฉเจเฅค เจธเจชเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
mkdir /opt/spark
cd /opt/spark
wget http://mirror.linux-ia64.org/apache/spark/spark-2.4.5/spark-2.4.5.tgz
tar zxvf spark-2.4.5.tgz
rm -f spark-2.4.5.tgz
เจ เจธเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจชเฉเจเฉเจ เจเจเฉฑเจ เฉ เจเจฐเจฆเฉ เจนเจพเจ:
cd spark-2.4.5/
./build/mvn -Pkubernetes -DskipTests clean package
เจเฉฑเจ เจชเฉเจฐเฉ เจฌเจฟเจฒเจก เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจ เจธเจฒ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ "เจ เจธเฉเจเจฌเจฒเฉ/" เจกเจพเจเจฐเฉเจเจเจฐเฉ เจคเฉเจ เจเจพเจฐ เจซเจพเจเจฒเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจธ เจฒเจ เจคเฉเจธเฉเจ เจธเจฟเจฐเจซ เจเจธ เจเจช-เจชเฉเจฐเฉเจเฉเจเจ เจจเฉเฉฐ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ:
./build/mvn -f ./assembly/pom.xml -Pkubernetes -DskipTests clean package
เจเฉเจฌเจฐเจจเฉเจเจธ 'เจคเฉ เจธเจชเจพเจฐเจ เจจเฉเจเจฐเฉเจเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฌเฉเจธ เจเจฎเฉเจ เจตเจเฉเจ เจตเจฐเจคเจฃ เจฒเจ เจเฉฑเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเฉฑเจฅเฉ 2 เจธเฉฐเจญเจต เจชเจนเฉเฉฐเจ เจนเจจ:
- เจคเจฟเจเจฐ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเฉเจก เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ;
- เจฌเจฃเจพเจ เจเจ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซเจผ เจธเจชเจพเจฐเจ เจ เจคเฉ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจธเจผเจพเจฎเจฒ เจนเฉ, เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจเฉเจก เจจเฉเฉฐ เจฐเจฟเจฎเฉเจเจฒเฉ เจนเฉเจธเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, HDFS เจตเจฟเฉฑเจ)เฅค
เจชเจนเจฟเจฒเจพเจ, เจเจ เจเฉฑเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฆเฉ เจเฉฑเจ เจเฉเจธเจ เจเจฆเจพเจนเจฐเจจ เจนเฉเฅค เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจเจฃ เจฒเจ, เจธเจชเจพเจฐเจ เจเฉเจฒ "เจกเฉเจเจฐ-เจเจฎเฉเจ-เจเฉเจฒ" เจจเจพเจฎเจ เจเจชเจฏเฉเจเจคเจพ เจนเฉเฅค เจเจ เจเจธ 'เจคเฉ เจฎเจฆเจฆ เจฆเจพ เจ เจงเจฟเจเจจ เจเจฐเฉเจ:
./bin/docker-image-tool.sh --help
เจเจธเจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ, เจคเฉเจธเฉเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฐเจฟเจฎเฉเจ เจฐเจเจฟเจธเจเจฐเฉเจเจ เจตเจฟเฉฑเจ เจ เจชเจฒเฉเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจจเฉเจเจธเจพเจจ เจนเจจ:
- เจฌเจฟเจจเจพเจ เจ เจธเจซเจฒ 3 เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจเฉฑเจเฉ เจธเจฎเฉเจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ - เจธเจชเจพเจฐเจ, โโเจชเจพเจเจธเจชเจพเจฐเจ เจ เจคเฉ เจเจฐ เจฒเจ;
- เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจพเจฎ เจฆเฉเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเจ, เจ เจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจ เจเจธ เจธเจนเฉเจฒเจค เจฆเฉ เจธเฉเจงเฉ เจนเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ:
vi bin/docker-image-tool-upd.sh
#!/usr/bin/env bash
function error {
echo "$@" 1>&2
exit 1
}
if [ -z "${SPARK_HOME}" ]; then
SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
. "${SPARK_HOME}/bin/load-spark-env.sh"
function image_ref {
local image="$1"
local add_repo="${2:-1}"
if [ $add_repo = 1 ] && [ -n "$REPO" ]; then
image="$REPO/$image"
fi
if [ -n "$TAG" ]; then
image="$image:$TAG"
fi
echo "$image"
}
function build {
local BUILD_ARGS
local IMG_PATH
if [ ! -f "$SPARK_HOME/RELEASE" ]; then
IMG_PATH=$BASEDOCKERFILE
BUILD_ARGS=(
${BUILD_PARAMS}
--build-arg
img_path=$IMG_PATH
--build-arg
datagram_jars=datagram/runtimelibs
--build-arg
spark_jars=assembly/target/scala-$SPARK_SCALA_VERSION/jars
)
else
IMG_PATH="kubernetes/dockerfiles"
BUILD_ARGS=(${BUILD_PARAMS})
fi
if [ -z "$IMG_PATH" ]; then
error "Cannot find docker image. This script must be run from a runnable distribution of Apache Spark."
fi
if [ -z "$IMAGE_REF" ]; then
error "Cannot find docker image reference. Please add -i arg."
fi
local BINDING_BUILD_ARGS=(
${BUILD_PARAMS}
--build-arg
base_img=$(image_ref $IMAGE_REF)
)
local BASEDOCKERFILE=${BASEDOCKERFILE:-"$IMG_PATH/spark/docker/Dockerfile"}
docker build $NOCACHEARG "${BUILD_ARGS[@]}"
-t $(image_ref $IMAGE_REF)
-f "$BASEDOCKERFILE" .
}
function push {
docker push "$(image_ref $IMAGE_REF)"
}
function usage {
cat <<EOF
Usage: $0 [options] [command]
Builds or pushes the built-in Spark Docker image.
Commands:
build Build image. Requires a repository address to be provided if the image will be
pushed to a different registry.
push Push a pre-built image to a registry. Requires a repository address to be provided.
Options:
-f file Dockerfile to build for JVM based Jobs. By default builds the Dockerfile shipped with Spark.
-p file Dockerfile to build for PySpark Jobs. Builds Python dependencies and ships with Spark.
-R file Dockerfile to build for SparkR Jobs. Builds R dependencies and ships with Spark.
-r repo Repository address.
-i name Image name to apply to the built image, or to identify the image to be pushed.
-t tag Tag to apply to the built image, or to identify the image to be pushed.
-m Use minikube's Docker daemon.
-n Build docker image with --no-cache
-b arg Build arg to build or push the image. For multiple build args, this option needs to
be used separately for each build arg.
Using minikube when building images will do so directly into minikube's Docker daemon.
There is no need to push the images into minikube in that case, they'll be automatically
available when running applications inside the minikube cluster.
Check the following documentation for more information on using the minikube Docker daemon:
https://kubernetes.io/docs/getting-started-guides/minikube/#reusing-the-docker-daemon
Examples:
- Build image in minikube with tag "testing"
$0 -m -t testing build
- Build and push image with tag "v2.3.0" to docker.io/myrepo
$0 -r docker.io/myrepo -t v2.3.0 build
$0 -r docker.io/myrepo -t v2.3.0 push
EOF
}
if [[ "$@" = *--help ]] || [[ "$@" = *-h ]]; then
usage
exit 0
fi
REPO=
TAG=
BASEDOCKERFILE=
NOCACHEARG=
BUILD_PARAMS=
IMAGE_REF=
while getopts f:mr:t:nb:i: option
do
case "${option}"
in
f) BASEDOCKERFILE=${OPTARG};;
r) REPO=${OPTARG};;
t) TAG=${OPTARG};;
n) NOCACHEARG="--no-cache";;
i) IMAGE_REF=${OPTARG};;
b) BUILD_PARAMS=${BUILD_PARAMS}" --build-arg "${OPTARG};;
esac
done
case "${@: -1}" in
build)
build
;;
push)
if [ -z "$REPO" ]; then
usage
exit 1
fi
push
;;
*)
usage
exit 1
;;
esac
เจเจธเจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ, เจ เจธเฉเจ เจธเจชเจพเจฐเจ (เจเฉฑเจฅเฉ {docker-registry-url} เจคเฉเจนเจพเจกเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจฆเจพ URL เจนเฉ, {repo} เจฐเจเจฟเจธเจเจฐเฉ เจฆเฉ เจ เฉฐเจฆเจฐ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฆเจพ เจจเจพเจฎ เจนเฉ, เจเฉ OpenShift เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉ , {image-name} โ เจเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจพเจฎ (เจเฉ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเจพ เจคเจฟเฉฐเจจ-เจชเฉฑเจงเจฐเฉ เจตเจฟเจญเจพเจเจจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฟเจตเฉเจ เจเจฟ Red Hat OpenShift เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจเจเฉเจเฉเจฐเจฟเจค เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ), {tag} โ เจเจธเจฆเจพ เจเฉเจ เจเจฟเฉฑเจคเจฐ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ):
./bin/docker-image-tool-upd.sh -f resource-managers/kubernetes/docker/src/main/dockerfiles/spark/Dockerfile -r {docker-registry-url}/{repo} -i {image-name} -t {tag} build
เจเฉฐเจธเฉเจฒ เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ OKD เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐเฉ (เจเฉฑเจฅเฉ {OKD-API-URL} OKD เจเจฒเฉฑเจธเจเจฐ API URL เจนเฉ):
oc login {OKD-API-URL}
เจเจ เจกเฉเจเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ เจ เจงเจฟเจเจพเจฐ เจฒเจ เจฎเฉเจเฉเจฆเจพ เจเจชเจญเฉเจเจคเจพ เจฆเจพ เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเจ:
oc whoami -t
OKD เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐเฉเจจเฉ เจกเฉเจเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐเฉ (เจ เจธเฉเจ เจชเจพเจธเจตเจฐเจก เจตเจเฉเจ เจชเจฟเจเจฒเฉ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจเฉเจเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ):
docker login {docker-registry-url}
เจเจ เจเจเฉฑเจ เฉ เจเฉเจคเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจกเฉเจเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจเจเฉเจกเฉ เจตเจฟเฉฑเจ เจ เจชเจฒเฉเจก เจเจฐเฉเจ:
./bin/docker-image-tool-upd.sh -r {docker-registry-url}/{repo} -i {image-name} -t {tag} push
เจเจ เจเจพเจเจ เจเจฐเฉเจ เจเจฟ เจ เจธเฉเจเจฌเจฒเจก เจเจฟเฉฑเจคเจฐ OKD เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจนเฉเฅค เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจธเฉฐเจฌเฉฐเจงเจฟเจค เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉเจเจ เจคเจธเจตเฉเจฐเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเฉ เจจเจพเจฒ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ URL เจเฉเจฒเฉเจนเฉ (เจเฉฑเจฅเฉ {project} OpenShift เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจชเฉเจฐเฉเจเฉเจเจ เจฆเจพ เจจเจพเจฎ เจนเฉ, {OKD-WEBUI-URL} OpenShift เจตเฉเฉฑเจฌ เจเฉฐเจธเฉเจฒ เจฆเจพ URL เจนเฉเฅค ) - https://{OKD-WEBUI-URL}/console /project/{project}/browse/images/{image-name}เฅค
เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ, เจชเฉเจก เจจเฉเฉฐ เจฐเฉเจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฒเจ เจตเจฟเจธเจผเฉเจธเจผ เจ เจงเจฟเจเจพเจฐเจพเจ เจจเจพเจฒ เจเฉฑเจ เจธเฉเจตเจพ เจเจพเจคเจพ เจฌเจฃเจพเจเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ (เจ เจธเฉเจ เจเจธ เจจเฉเจเจคเฉ 'เจคเฉ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจเจฐเจเจพ เจเจฐเจพเจเจเฉ):
oc create sa spark -n {project}
oc adm policy add-scc-to-user anyuid -z spark -n {project}
เจเจฒเฉ OKD เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ เจเจฎเจพเจเจก เจเจฒเจพเจ, เจฌเจฃเจพเจ เจเจ เจธเฉเจตเจพ เจเจพเจคเฉ เจ เจคเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเฉ เจนเฉเจ:
/opt/spark/bin/spark-submit --name spark-test --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=3 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.kubernetes.namespace={project} --conf spark.submit.deployMode=cluster --conf spark.kubernetes.container.image={docker-registry-url}/{repo}/{image-name}:{tag} --conf spark.master=k8s://https://{OKD-API-URL} local:///opt/spark/examples/target/scala-2.11/jars/spark-examples_2.11-2.4.5.jar
เจเฉฑเจฅเฉ:
โเจจเจพเจฎ โ เจเจธ เจเฉฐเจฎ เจฆเจพ เจจเจพเจฎ เจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจชเฉเจกเจธ เจฆเฉ เจจเจพเจฎ เจฆเฉ เจเจ เจจ เจตเจฟเฉฑเจ เจนเจฟเฉฑเจธเจพ เจฒเจตเฉเจเจพ;
โเจเจฒเจพเจธ โ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒ เจฆเฉ เจเจฒเจพเจธ, เจเจฆเฉเจ เจเจพเจธเจ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ;
โconf โ เจธเจชเจพเจฐเจ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐ;
spark.executor.instances โ เจฒเจพเจเจ เจเจฐเจจ เจฒเจ เจธเจชเจพเจฐเจ เจเจเจเจผเฉเจเจฟเจเจเจฐเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ;
spark.kubernetes.authenticate.driver.serviceAccountName - เจชเฉเจก เจฒเจพเจเจ เจเจฐเจจ เจตเฉเจฒเฉ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจธเฉเจตเจพ เจเจพเจคเฉ เจฆเจพ เจจเจพเจฎ (เจเฉเจฌเจฐเจจเฉเจเจธ API เจจเจพเจฒ เจเฉฐเจเจฐเฉเจเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจธเฉเจฐเฉฑเจเจฟเจ เจธเฉฐเจฆเจฐเจญ เจ เจคเฉ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ);
spark.kubernetes.namespace โ Kubernetes เจจเฉเจฎเจธเจชเฉเจธ เจเจฟเจธ เจตเจฟเฉฑเจ เจกเจฐเจพเจเจตเจฐ เจ เจคเฉ เจเจเจเจผเฉเจเจฟเจเจเจฐ เจชเฉเจก เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจฃเจเฉ;
spark.submit.deployMode โ เจธเจชเจพเจฐเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฆเจพ เจคเจฐเฉเจเจพ (เจธเจเฉเจเจกเจฐเจก เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ โเจเจฒเฉฑเจธเจเจฐโ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ เจ เจคเฉ เจธเจชเจพเจฐเจ โเจเจฒเจพเจเฉฐเจโ เจฆเฉ เจฌเจพเจ เจฆ เจฆเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฒเจ);
spark.kubernetes.container.image - เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจเฉ เจชเฉเจกเจพเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ;
spark.master โ Kubernetes API URL (เจฌเจพเจนเจฐเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจเจธเจฒเจ เจชเจนเฉเฉฐเจ เจธเจฅเจพเจจเจ เจฎเจธเจผเฉเจจ เจคเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉ);
local:// เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจฒเจฃเจฏเฉเจ เจธเจชเจพเจฐเจ เจฆเจพ เจฎเจพเจฐเจ เจนเฉเฅค
เจ เจธเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค OKD เจชเฉเจฐเฉเจเฉเจเจ 'เจคเฉ เจเจพเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจฌเจฃเจพเจ เจเจ เจชเฉเจกเจธ เจฆเจพ เจ เจงเจฟเจเจจ เจเจฐเจฆเฉ เจนเจพเจ - https://{OKD-WEBUI-URL}/console/project/{project}/browse/podsเฅค
เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ, เจเฉฑเจ เจนเฉเจฐ เจตเจฟเจเจฒเจช เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ เจฆเจพ เจเฉฑเจ เจธเจพเจเจเจพ เจ เจงเจพเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจธเจพเจฐเฉ เจเจพเจฐเจเจพเจ เจฆเฉเจเจฐเจพ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒเจพเจ เจฆเฉ เจธเจจเฉเจชเจธเจผเจพเจ เจจเฉเฉฐ เจฌเจพเจนเจฐเฉ เจธเจเฉเจฐเฉเจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจนเฉเจกเฉเจช) เจตเจฟเฉฑเจ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจพเจฒ เจเจฐเจจ เจตเฉเจฒเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจธเจชเจพเจฐเจ-เจเฉฑเจ เจฒเจฟเฉฐเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจฎเฉเจนเจพเจ เจเจฐเฉเฅค เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, WebHDFS เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ เจฌเจฟเจจเจพเจ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจเจฐเจฃ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉเฅค เจ เจธเฉเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจญเฉเจเจฆเฉ เจนเจพเจ (เจเฉฑเจฅเฉ {host} WebHDFS เจธเฉเจตเจพ เจฆเจพ เจฎเฉเจเจผเจฌเจพเจจ เจนเฉ, {port} WebHDFS เจธเฉเจตเจพ เจฆเจพ เจชเฉเจฐเจ เจนเฉ, {path-to-file-on-hdfs} เจซเจพเจเจฒ เจฆเจพ เจฒเฉเฉเฉเจเจฆเจพ เจฎเจพเจฐเจ เจนเฉ HDFS 'เจคเฉ):
curl -i -X PUT "http://{host}:{port}/webhdfs/v1/{path-to-file-on-hdfs}?op=CREATE
เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจพ เจเจตเจพเจฌ เจฎเจฟเจฒเฉเจเจพ (เจเฉฑเจฅเฉ {location} เจเจน URL เจนเฉ เจเจฟเจธเจฆเฉ เจตเจฐเจคเฉเจ เจซเจผเจพเจเจฒ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฒเจ เจเฉเจคเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ):
HTTP/1.1 307 TEMPORARY_REDIRECT
Location: {location}
Content-Length: 0
เจธเจชเจพเจฐเจ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒ เจจเฉเฉฐ HDFS เจตเจฟเฉฑเจ เจฒเฉเจก เจเจฐเฉ (เจเฉฑเจฅเฉ {path-to-local-file} เจฎเฉเจเฉเจฆเจพ เจนเฉเจธเจ 'เจคเฉ เจธเจชเจพเจฐเจ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒ เจฆเจพ เจฎเจพเจฐเจ เจนเฉ):
curl -i -X PUT -T {path-to-local-file} "{location}"
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจ เจธเฉเจ HDFS 'เจคเฉ เจ เฉฑเจชเจฒเฉเจก เจเฉเจคเฉ เจธเจชเจพเจฐเจ เจซเจพเจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ (เจเฉฑเจฅเฉ {class-name} เจเจธ เจเจฒเจพเจธ เจฆเจพ เจจเจพเจฎ เจนเฉ เจเจฟเจธ เจจเฉเฉฐ เจเฉฐเจฎ เจชเฉเจฐเจพ เจเจฐเจจ เจฒเจ เจฒเจพเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ):
/opt/spark/bin/spark-submit --name spark-test --class {class-name} --conf spark.executor.instances=3 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.kubernetes.namespace={project} --conf spark.submit.deployMode=cluster --conf spark.kubernetes.container.image={docker-registry-url}/{repo}/{image-name}:{tag} --conf spark.master=k8s://https://{OKD-API-URL} hdfs://{host}:{port}/{path-to-file-on-hdfs}
เจเจน เจจเฉเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ HDFS เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจ เจคเฉ เจเฉฐเจฎ เจฆเฉ เจเฉฐเจฎ เจจเฉเฉฐ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ Dockerfile เจ เจคเฉ entrypoint.sh เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ - /opt/spark/jars เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจจเจฟเจฐเจญเจฐ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจเจพเจชเฉ เจเจฐเจจ เจฒเจ Dockerfile เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจธเจผเจพเจฎเจฒ เจเจฐเฉ เจ เจคเฉ เจเจเจเจฐเฉ เจชเฉเจเจเฉฐเจ เจตเจฟเฉฑเจ SPARK_CLASSPATH เจตเจฟเฉฑเจ HDFS เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค
เจฆเฉเจเจพ เจตเจฐเจคเฉเจ เจเฉเจธ - เจ เจชเจพเจเฉ เจฒเจฟเจตเฉ
เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจฆเฉเจ เจเฉเจ เจเฉฐเจฎ เจตเจฟเจเจธเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉ เจ เจคเฉ เจจเจคเฉเจเฉ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจธเจตเจพเจฒ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฟ เจเจธ เจจเฉเฉฐ CI/CD เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจฒเจพเจเจ เจเฉเจคเจพ เจเจพเจตเฉ เจ เจคเฉ เจเจธ เจฆเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจเจฐเฉเจ เจเฉเจคเจพ เจเจพเจตเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจธเจฅเจพเจจเจ เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ เจเจพเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจเจน CI/CD เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ เจเจฟเจเจเจเจฟ เจเจธเจจเฉเฉฐ CI เจธเจฐเจตเจฐ เจเจเฉฐเจเจพเจ/เจฐเจจเจฐเจพเจ 'เจคเฉ เจธเจชเจพเจฐเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจ เจคเฉ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจจ เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ API เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจธ เจเฉเจธ เจฒเจ, เจเฉเจเจพ เจฒเจพเจเฉ เจเจฐเจจ เจจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจนเฉเจธเจ เจเฉเจคเฉ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจเฉฑเจ REST API เจตเจเฉเจ เจ เจชเจพเจเฉ เจฒเจฟเจตเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเฉเจฃ เจเฉเจคเฉ เจนเฉเฅค เจเจธเจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ, เจคเฉเจธเฉเจ เจจเจฟเจฏเจฎเจค cURL เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ, เจเฉ เจเจฟ เจเจฟเจธเฉ เจตเฉ CI เจนเฉฑเจฒ เจฆเฉ เจ เจงเจพเจฐ 'เจคเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ Kubernetes เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจเจธเจฆเจพ เจชเจฒเฉเจธเจฎเฉเจเจ เจเฉเจฌเจฐเจจเฉเจเจธ API เจจเจพเจฒ เจเฉฐเจเจฐเฉเจเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฆเฉ เจฎเฉเฉฑเจฆเฉ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจฒเฉ เจเจธเจจเฉเฉฐ เจฆเฉเจเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจเฉเจธ เจตเจเฉเจ เจเจเจพเจเจฐ เจเจฐเฉเจ - เจเฉฑเจ เจเฉเจธเจ เจฒเฉเจช เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ CI/CD เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจธเจชเจพเจฐเจ เจเจพเจธเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพเฅค
Apache Livy เจฌเจพเจฐเฉ เจฅเฉเฉเจพ เจเจฟเจนเจพ - เจเจน เจเฉฑเจ HTTP เจธเจฐเจตเจฐ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจเฉ เจเฉฑเจ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจ
เจคเฉ เจเฉฑเจ RESTful API เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจจเฉเฉฐ เจชเจพเจธ เจเจฐเจเฉ เจฐเจฟเจฎเฉเจเจฒเฉ เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจฐเจตเจพเจเจคเฉ เจคเฉเจฐ 'เจคเฉ เจเจธ เจจเฉเฉฐ เจเฉฑเจ HDP เจตเฉฐเจก เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจญเฉเจเจฟเจ เจเจฟเจ เจนเฉ, เจชเจฐ เจเจธเจจเฉเฉฐ เจเจเจฟเจค เจฎเฉเจจเฉเจซเฉเจธเจ เจ
เจคเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ OKD เจเจพเจ เจเจฟเจธเฉ เจนเฉเจฐ Kubernetes เจธเจฅเจพเจชเจจเจพ เจฒเจ เจตเฉ เจคเฉเจจเจพเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจเจน -
FROM java:8-alpine
ENV SPARK_HOME=/opt/spark
ENV LIVY_HOME=/opt/livy
ENV HADOOP_CONF_DIR=/etc/hadoop/conf
ENV SPARK_USER=spark
WORKDIR /opt
RUN apk add --update openssl wget bash &&
wget -P /opt https://downloads.apache.org/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz &&
tar xvzf spark-2.4.5-bin-hadoop2.7.tgz &&
rm spark-2.4.5-bin-hadoop2.7.tgz &&
ln -s /opt/spark-2.4.5-bin-hadoop2.7 /opt/spark
RUN wget http://mirror.its.dal.ca/apache/incubator/livy/0.7.0-incubating/apache-livy-0.7.0-incubating-bin.zip &&
unzip apache-livy-0.7.0-incubating-bin.zip &&
rm apache-livy-0.7.0-incubating-bin.zip &&
ln -s /opt/apache-livy-0.7.0-incubating-bin /opt/livy &&
mkdir /var/log/livy &&
ln -s /var/log/livy /opt/livy/logs &&
cp /opt/livy/conf/log4j.properties.template /opt/livy/conf/log4j.properties
ADD livy.conf /opt/livy/conf
ADD spark-defaults.conf /opt/spark/conf/spark-defaults.conf
ADD entrypoint.sh /entrypoint.sh
ENV PATH="/opt/livy/bin:${PATH}"
EXPOSE 8998
ENTRYPOINT ["/entrypoint.sh"]
CMD ["livy-server"]
เจคเจฟเจเจฐ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจฎเฉเจเฉเจฆเจพ เจกเฉเจเจฐ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจ เจ เจคเฉ เจ เฉฑเจชเจฒเฉเจก เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจ เฉฐเจฆเจฐเฉเจจเฉ OKD เจฐเจฟเจชเฉเจเจผเจเจฐเฉเฅค เจเจธ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจฎเฉเจจเฉเจซเฉเจธเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ ({เจฐเจเจฟเจธเจเจฐเฉ-url} - เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจฆเจพ URL, {image-name} - เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจพเจฎ, {tag} - เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจเฉเจ, {livy-url} - เจฒเฉเฉเฉเจเจฆเจพ URL เจเจฟเฉฑเจฅเฉ เจธเจฐเจตเจฐ เจชเจนเฉเฉฐเจเจฏเฉเจ เจฒเจฟเจตเฉ เจนเฉเจตเฉเจเจพ; โเจฐเฉเจโ เจฎเฉเจจเฉเจซเฉเจธเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจเฉเจเจฐ Red Hat OpenShift เจจเฉเฉฐ Kubernetes เจกเจฟเจธเจเจฐเฉเจฌเจฟเจเจธเจผเจจ เจตเจเฉเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจจเจนเฉเจ เจคเจพเจ เจจเฉเจกเจชเฉเจฐเจ เจเจฟเจธเจฎ เจฆเฉ เจ เจจเฉเจธเจพเจฐเฉ เจชเฉเจฐเจตเฉเจธเจผ เจเจพเจ เจธเจฐเจตเจฟเจธ เจฎเฉเจจเฉเจซเฉเจธเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ):
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: livy
name: livy
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
component: livy
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
component: livy
spec:
containers:
- command:
- livy-server
env:
- name: K8S_API_HOST
value: localhost
- name: SPARK_KUBERNETES_IMAGE
value: 'gnut3ll4/spark:v1.0.14'
image: '{registry-url}/{image-name}:{tag}'
imagePullPolicy: Always
name: livy
ports:
- containerPort: 8998
name: livy-rest
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/log/livy
name: livy-log
- mountPath: /opt/.livy-sessions/
name: livy-sessions
- mountPath: /opt/livy/conf/livy.conf
name: livy-config
subPath: livy.conf
- mountPath: /opt/spark/conf/spark-defaults.conf
name: spark-config
subPath: spark-defaults.conf
- command:
- /usr/local/bin/kubectl
- proxy
- '--port'
- '8443'
image: 'gnut3ll4/kubectl-sidecar:latest'
imagePullPolicy: Always
name: kubectl
ports:
- containerPort: 8443
name: k8s-api
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: spark
serviceAccountName: spark
terminationGracePeriodSeconds: 30
volumes:
- emptyDir: {}
name: livy-log
- emptyDir: {}
name: livy-sessions
- configMap:
defaultMode: 420
items:
- key: livy.conf
path: livy.conf
name: livy-config
name: livy-config
- configMap:
defaultMode: 420
items:
- key: spark-defaults.conf
path: spark-defaults.conf
name: livy-config
name: spark-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: livy-config
data:
livy.conf: |-
livy.spark.deploy-mode=cluster
livy.file.local-dir-whitelist=/opt/.livy-sessions/
livy.spark.master=k8s://http://localhost:8443
livy.server.session.state-retain.sec = 8h
spark-defaults.conf: 'spark.kubernetes.container.image "gnut3ll4/spark:v1.0.14"'
---
apiVersion: v1
kind: Service
metadata:
labels:
app: livy
name: livy
spec:
ports:
- name: livy-rest
port: 8998
protocol: TCP
targetPort: 8998
selector:
component: livy
sessionAffinity: None
type: ClusterIP
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
app: livy
name: livy
spec:
host: {livy-url}
port:
targetPort: livy-rest
to:
kind: Service
name: livy
weight: 100
wildcardPolicy: None
เจเจธเจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจ เจคเฉ เจชเฉเจก เจจเฉเฉฐ เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจฒเจพเจเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจฒเจฟเจตเฉ เจเฉเจฐเจพเจซเจฟเจเจฒ เจเฉฐเจเจฐเจซเฉเจธ เจฒเจฟเฉฐเจ 'เจคเฉ เจเจชเจฒเจฌเจง เจนเฉ: http://{livy-url}/ui. เจฒเจฟเจตเฉ เจฆเฉ เจจเจพเจฒ, เจ เจธเฉเจ เจเจชเจฃเฉ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจจเฉเฉฐ REST เจฌเฉเจจเจคเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจชเฉเจธเจเจฎเฉเจจเฅค เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเฉฐเจเฉเจฐเจนเจฟ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจนเฉเจ เจพเจ เจชเฉเจธเจผ เจเฉเจคเฉ เจเจ เจนเฉ (เจฒเฉฐเจ เจเฉเจคเฉ เจเจพเจฐเจ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจฆเฉ เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจเจฐเจเฉเจฎเฉเจเจเจธ เจจเฉเฉฐ "args" เจเจฐเฉ เจตเจฟเฉฑเจ เจชเจพเจธ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ):
{
"info": {
"_postman_id": "be135198-d2ff-47b6-a33e-0d27b9dba4c8",
"name": "Spark Livy",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "1 Submit job with jar",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{nt"file": "local:///opt/spark/examples/target/scala-2.11/jars/spark-examples_2.11-2.4.5.jar", nt"className": "org.apache.spark.examples.SparkPi",nt"numExecutors":1,nt"name": "spark-test-1",nt"conf": {ntt"spark.jars.ivy": "/tmp/.ivy",ntt"spark.kubernetes.authenticate.driver.serviceAccountName": "spark",ntt"spark.kubernetes.namespace": "{project}",ntt"spark.kubernetes.container.image": "{docker-registry-url}/{repo}/{image-name}:{tag}"nt}n}"
},
"url": {
"raw": "http://{livy-url}/batches",
"protocol": "http",
"host": [
"{livy-url}"
],
"path": [
"batches"
]
}
},
"response": []
},
{
"name": "2 Submit job without jar",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{nt"file": "hdfs://{host}:{port}/{path-to-file-on-hdfs}", nt"className": "{class-name}",nt"numExecutors":1,nt"name": "spark-test-2",nt"proxyUser": "0",nt"conf": {ntt"spark.jars.ivy": "/tmp/.ivy",ntt"spark.kubernetes.authenticate.driver.serviceAccountName": "spark",ntt"spark.kubernetes.namespace": "{project}",ntt"spark.kubernetes.container.image": "{docker-registry-url}/{repo}/{image-name}:{tag}"nt},nt"args": [ntt"HADOOP_CONF_DIR=/opt/spark/hadoop-conf",ntt"MASTER=k8s://https://kubernetes.default.svc:8443"nt]n}"
},
"url": {
"raw": "http://{livy-url}/batches",
"protocol": "http",
"host": [
"{livy-url}"
],
"path": [
"batches"
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"id": "41bea1d0-278c-40c9-ad42-bf2e6268897d",
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"id": "3cdd7736-a885-4a2d-9668-bd75798f4560",
"type": "text/javascript",
"exec": [
""
]
}
}
],
"protocolProfileBehavior": {}
}
เจเจฒเฉ เจธเฉฐเจเฉเจฐเจนเจฟ เจคเฉเจ เจชเจนเจฟเจฒเฉ เจฌเฉเจจเจคเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉเจ, OKD เจเฉฐเจเจฐเจซเฉเจธ 'เจคเฉ เจเจพเจ เจ เจคเฉ เจเจพเจเจ เจเจฐเฉ เจเจฟ เจเฉฐเจฎ เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจฒเจพเจเจ เจนเฉ เจเจฟเจ เจนเฉ - https://{OKD-WEBUI-URL}/console/project/{project}/browse/podsเฅค เจเจธเฉ เจธเจฎเฉเจ, เจฒเจฟเจตเฉ เจเฉฐเจเจฐเจซเฉเจธ (http://{livy-url}/ui) เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจธเจผเจจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ, เจเจฟเจธ เจตเจฟเฉฑเจ, Livy API เจเจพเจ เจเฉเจฐเจพเจซเจฟเจเจฒ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ, เจคเฉเจธเฉเจ เจเจพเจฐเจ เจฆเฉ เจชเฉเจฐเจเจคเฉ เจจเฉเฉฐ เจเจฐเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจธเฉเจธเจผเจจ เจฆเจพ เจ เจงเจฟเจเจจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจฒเฉเจ
เจเจ เจนเฉเจฃ เจฆเจฟเจเจพเจเจเจฆเฉ เจนเจพเจ เจเจฟ เจฒเจฟเจตเฉ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉเฅค เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจเจ เจฒเจฟเจตเฉ เจธเจฐเจตเจฐ เจจเจพเจฒ เจชเฉเจก เจฆเฉ เจ เฉฐเจฆเจฐ เจฒเจฟเจตเฉ เจเฉฐเจเฉเจจเจฐ เจฆเฉ เจฒเฉเจเจธ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ - https://{OKD-WEBUI-URL}/console/project/{project}/browse/pods/{livy-pod-name }?tab=logs. เจเจนเจจเจพเจ เจคเฉเจ เจ เจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจเจฆเฉเจ "livy" เจจเจพเจฎ เจฆเฉ เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ Livy REST API เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเฉฑเจ เจธเจชเจพเจฐเจ-เจธเจฌเจฎเจฟเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจ เจธเฉเจ เจเฉฑเจชเจฐ เจตเจฐเจคเจฟเจ เจนเฉ (เจเฉฑเจฅเฉ {livy-pod-name} เจฌเจฃเจพเจ เจเจ เจชเฉเจก เจฆเจพ เจจเจพเจฎ เจนเฉเฅค เจฒเจฟเจตเฉ เจธเจฐเจตเจฐ เจจเจพเจฒ)เฅค เจธเฉฐเจเฉเจฐเจนเจฟ เจเฉฑเจ เจฆเฉเจเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเฉ เจชเฉเจธเจผ เจเจฐเจฆเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเฉ เจเฉฑเจ Livy เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฐเจฟเจฎเฉเจเจฒเฉ เจเฉฑเจ เจธเจชเจพเจฐเจ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจนเฉเจธเจ เจเจฐเจฆเฉ เจนเจจเฅค
เจคเฉเจเจพ เจตเจฐเจคเฉเจ เจเฉเจธ - เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ
เจนเฉเจฃ เจเจฆเฉเจ เจเฉฐเจฎ เจฆเฉ เจเจพเจเจ เจนเฉ เจเฉเฉฑเจเฉ เจนเฉ, เจเจธ เจจเฉเฉฐ เจจเจฟเจฏเจฎเจค เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเจพ เจธเจตเจพเจฒ เจเฉฑเจ เจฆเจพ เจนเฉเฅค เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจจเจฟเจฏเจฎเจค เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเจพ เจฎเฉเจฒ เจคเจฐเฉเจเจพ เจเฉเจฐเฉเจจเจเฉเจฌ เจเจเจพเจ เจนเฉ เจ เจคเฉ เจคเฉเจธเฉเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจเจธ เจธเจฎเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจฒเจ เจเจชเจฐเฉเจเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฌเจนเฉเจค เจฎเจธเจผเจนเฉเจฐ เจนเฉ เจ เจคเฉ เจธเจชเจพเจฐเจ เจฒเจ เจเฉฑเจ เจเจพเจซเจผเฉ เจชเจฐเจฟเจชเฉฑเจ เจเจชเจฐเฉเจเจฐ เจนเฉ, เจเฉ เจเจฟ เจเจน เจตเฉ เจนเฉเฅค เจเจเจเจฐเจชเฉเจฐเจพเจเจเจผ-เจชเฉฑเจงเจฐ เจฆเฉ เจนเฉฑเจฒเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, Lightbend FastData เจชเจฒเฉเจเจซเจพเจฐเจฎ)เฅค เจ เจธเฉเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเฉ เจนเจพเจ - เจธเจชเจพเจฐเจ (2.4.5) เจฆเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจฐ เจธเฉฐเจธเจเจฐเจฃ เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจธเฉเจฎเจค เจธเฉฐเจฐเจเจจเจพ เจตเจฟเจเจฒเจช เจนเจจ, เจเจฆเฉเจ เจเจฟ เจ เจเจฒเจพ เจชเฉเจฐเจฎเฉเฉฑเจ เจธเฉฐเจธเจเจฐเจฃ (3.0.0) เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจชเฉเจฐเจพ เจธเจฎเจฐเจฅเจจ เจเฉเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉ, เจชเจฐ เจเจธเจฆเฉ เจฐเจฟเจฒเฉเจเจผ เจฎเจฟเจคเฉ เจ เจฃเจเจพเจฃ เจนเฉเฅค . เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเจเจฒเจชเจพเจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเจชเจพเจฐเจ เจชเฉเจกเจเจผ เจตเจฟเฉฑเจ เจนเฉเจกเฉเจช เจเจเจธเฉเจธ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเฉเจจเจซเจฟเจเจฎเฉเจช เจจเฉเฉฐ เจฎเจพเจเจเจ เจเจฐเจจเจพ) เจ เจคเฉ เจจเจฟเจฏเจฎเจค เจคเฉเจฐ 'เจคเฉ เจจเจฟเจฏเจค เจเฉฐเจฎ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจฏเฉเจเจคเจพ เจจเฉเฉฐ เจเฉเฉ เจเฉ เจเจธ เจเจฎเฉ เจฆเฉ เจญเจฐเจชเจพเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจฒเฉ เจเจธเจจเฉเฉฐ เจคเฉเจเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจเฉเจ เจเจเจพเจเจฐ เจเจฐเฉเจ - เจเฉฑเจ เจเจคเจชเจพเจฆเจจ เจฒเฉเจช เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจจเจฟเจฏเจฎเจค เจคเฉเจฐ 'เจคเฉ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพ เจฐเจนเฉ เจนเจจเฅค
เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ เจเจชเจจ เจธเฉเจฐเจธ เจนเฉ เจ
เจคเฉ เจเฉเจเจฒ เจเจฒเจพเจเจก เจชเจฒเฉเจเจซเจพเจฐเจฎ เจฆเฉ เจ
เฉฐเจฆเจฐ เจตเจฟเจเจธเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ -
- เจฒเจพเจเจเจฌเฉเจเจก เจซเจพเจธเจเจกเจพเจเจพ เจชเจฒเฉเจเจซเจพเจฐเจฎ/เจเจฒเจพเจเจกเจซเจฒเฉ เจธเจฅเจพเจชเจจเจพ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ;
- เจนเฉเจฒเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ:
helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator helm install incubator/sparkoperator --namespace spark-operator
- เจ
เจงเจฟเจเจพเจฐเจค เจฐเจฟเจชเฉเจเจผเจเจฐเฉ (https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/tree/master/manifest) เจคเฉเจ เจฎเฉเจจเฉเจซเฉเจธเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพเฅค เจเจน เจนเฉเจ เจฒเจฟเจเจฟเจเจ เจจเฉเฉฐ เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจนเฉ - Cloudflow เจตเจฟเฉฑเจ API เจธเฉฐเจธเจเจฐเจฃ v1beta1 เจตเจพเจฒเจพ เจเฉฑเจ เจเจชเจฐเฉเจเจฐ เจธเจผเจพเจฎเจฒ เจนเฉเฅค เจเฉเจเจฐ เจเจธ เจเจฟเจธเจฎ เจฆเฉ เจธเจฅเจพเจชเจจเจพ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจคเจพเจ เจธเจชเจพเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฎเฉเจจเฉเจซเฉเจธเจ เจตเจฐเจฃเจจ Git เจตเจฟเฉฑเจ เจเจเจฟเจค API เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจจเจพเจฒ เจเจฆเจพเจนเจฐเจจ เจเฉเจเจพเจ 'เจคเฉ เจ
เจงเจพเจฐเจค เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, "v1beta1-0.9.0-2.4.0". เจเจชเจฐเฉเจเจฐ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ "เจตเจฐเจเจจ" เจธเจผเจฌเจฆเจเฉเจธเจผ เจตเจฟเฉฑเจ เจเจชเจฐเฉเจเจฐ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ CRD เจฆเฉ เจตเจฐเจฃเจจ เจตเจฟเฉฑเจ เจชเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
oc get crd sparkapplications.sparkoperator.k8s.io -o yaml
เจเฉเจเจฐ เจเจชเจฐเฉเจเจฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจคเจพเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจชเฉเจก เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฒเจพเจเจกเจซเจฒเฉ เจธเจฅเจพเจชเจจเจพ เจฒเจ เจเจฒเจพเจเจกเจซเจฒเฉ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจเจฒเจพเจเจกเจซเจฒเฉ-เจเจซเจกเฉเจชเฉ-เจธเจชเจพเจฐเจเจเจชเจฐเฉเจเจฐ) เจ เจคเฉ "เจธเจชเจพเจฐเจเจเจชเจฒเฉเจเฉเจธเจผเจจเจเจผ" เจจเจพเจฎเจ เจเฉฑเจ เจ เจจเฉเจธเจพเจฐเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจธเจฐเฉเจค เจเจฟเจธเจฎ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉเฅค . เจคเฉเจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจเจชเจฒเจฌเจง เจธเจชเจพเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจชเฉเจเฉเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
oc get sparkapplications -n {project}
เจธเจชเจพเจฐเจ เจเจชเจฐเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฐเจฎ เจเจฒเจพเจเจฃ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ 3 เจเฉเจเจผเจพเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
- เจเฉฑเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ, เจจเจพเจฒ เจนเฉ เจธเฉฐเจฐเจเจจเจพ เจ เจคเฉ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเฅค เจจเจฟเจธเจผเจพเจจเจพ เจคเจธเจตเฉเจฐ เจตเจฟเฉฑเจ, เจเจน เจเฉฑเจ เจเจฟเฉฑเจคเจฐ เจนเฉ เจเฉ CI/CD เจชเฉเจพเจ 'เจคเฉ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจเฉเจธเจ เจเจฒเฉฑเจธเจเจฐ 'เจคเฉ เจเฉเจธเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ;
- เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจคเฉเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจฐเจเจฟเจธเจเจฐเฉ เจฒเจ เจเฉฑเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเฉ;
- "เจธเจชเจพเจฐเจเจเจชเจฒเฉเจเฉเจธเจผเจจ" เจเจฟเจธเจฎ เจ
เจคเฉ เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจฃ เจตเจพเจฒเฉ เจเจพเจฐเจ เจฆเฉ เจตเฉเจฐเจตเฉ เจจเจพเจฒ เจเฉฑเจ เจฎเฉเจจเฉเจซเฉเจธเจ เจคเจฟเจเจฐ เจเจฐเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฎเฉเจจเฉเจซเฉเจธเจ เจ
เจงเจฟเจเจพเจฐเจค เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจนเจจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ.
github.com/GoogleCloudPlatform/spark-on-k8s-operator/blob/v1beta1-0.9.0-2.4.0/examples/spark-pi.yaml ). เจฎเฉเจจเฉเจซเฉเจธเจเฉ เจฌเจพเจฐเฉ เจจเฉเจ เจเจฐเจจ เจฒเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจจเฉเจเจคเฉ เจนเจจ:- "apiVersion" เจธเจผเจฌเจฆเจเฉเจธเจผ เจจเฉเฉฐ เจเจชเจฐเฉเจเจฐ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจ เจจเฉเจธเจพเจฐเฉ API เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ;
- โmetadata.namespaceโ เจกเจฟเจเจธเจผเจจเจฐเฉ เจตเจฟเฉฑเจ เจเจธ เจจเจพเจฎ-เจธเจชเฉเจธ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ;
- "spec.image" เจธเจผเจฌเจฆเจเฉเจธเจผ เจตเจฟเฉฑเจ เจเฉฑเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ เจฌเจฃเจพเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจฆเจพ เจชเจคเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ;
- โspec.mainClassโ เจกเจฟเจเจธเจผเจจเจฐเฉ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพเจธ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจเจฟเจธเจจเฉเฉฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจธเจผเฉเจฐเฉ เจนเฉเจฃ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ;
- โspec.mainApplicationFileโ เจกเจฟเจเจธเจผเจจเจฐเฉ เจตเจฟเฉฑเจ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจเจพเจฐ เจซเจพเจเจฒ เจฆเจพ เจฎเจพเจฐเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ;
- โspec.sparkVersionโ เจกเจฟเจเจธเจผเจจเจฐเฉ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพ เจฐเจนเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ;
- โspec.driver.serviceAccountโ เจกเจฟเจเจธเจผเจจเจฐเฉ เจจเฉเฉฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค Kubernetes เจจเฉเจฎเจธเจชเฉเจธ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเฉเจตเจพ เจเจพเจคเจพ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพ;
- "spec.executor" เจกเจฟเจเจธเจผเจจเจฐเฉ เจจเฉเฉฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจจเจฟเจฐเจงเจพเจฐเจค เจธเจฐเฉเจคเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจฆเจฐเจธเจพเจเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ;
- "spec.volumeMounts" เจกเจฟเจเจธเจผเจจเจฐเฉ เจตเจฟเฉฑเจ เจธเจฅเจพเจจเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจฅเจพเจจเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจซเจพเจเจฒเจพเจ เจฌเจฃเจพเจเจเจ เจเจพเจฃเจเฉเจเจเฅค
เจฎเฉเจจเฉเจซเฉเจธเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ (เจเฉฑเจฅเฉ {spark-service-account} เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฒเจพเจเจฃ เจฒเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจ เจธเฉเจตเจพ เจเจพเจคเจพ เจนเฉ):
apiVersion: "sparkoperator.k8s.io/v1beta1"
kind: SparkApplication
metadata:
name: spark-pi
namespace: {project}
spec:
type: Scala
mode: cluster
image: "gcr.io/spark-operator/spark:v2.4.0"
imagePullPolicy: Always
mainClass: org.apache.spark.examples.SparkPi
mainApplicationFile: "local:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar"
sparkVersion: "2.4.0"
restartPolicy:
type: Never
volumes:
- name: "test-volume"
hostPath:
path: "/tmp"
type: Directory
driver:
cores: 0.1
coreLimit: "200m"
memory: "512m"
labels:
version: 2.4.0
serviceAccount: {spark-service-account}
volumeMounts:
- name: "test-volume"
mountPath: "/tmp"
executor:
cores: 1
instances: 1
memory: "512m"
labels:
version: 2.4.0
volumeMounts:
- name: "test-volume"
mountPath: "/tmp"
เจเจน เจฎเฉเจจเฉเจซเฉเจธเจ เจเฉฑเจ เจธเฉเจตเจพ เจเจพเจคเจพ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจเจฟเจธเจฆเฉ เจฒเจ, เจฎเฉเจจเฉเจซเฉเจธเจ เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจผเจฐเฉเจฐเฉ เจฐเฉเจฒ เจฌเจพเจเจกเจฟเฉฐเจเจธ เจฌเจฃเจพเจเจฃเฉเจเจ เจเจพเจนเฉเจฆเฉเจเจ เจนเจจ เจเฉ เจธเจชเจพเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจเฉเจฌเจฐเจจเฉเจเจธ API (เจเฉเจเจฐ เจเจผเจฐเฉเจฐเฉ เจนเฉเจตเฉ) เจจเจพเจฒ เจเฉฐเจเจฐเฉเจเจ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจชเจนเฉเฉฐเจ เจ เจงเจฟเจเจพเจฐ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเจจเฅค เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจชเฉเจก เจฌเจฃเจพเจเจฃ เจฒเจ เจ เจงเจฟเจเจพเจฐเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจ เจเจผเจฐเฉเจฐเฉ เจฐเฉเจฒ เจฌเจพเจเจกเจฟเฉฐเจ เจฌเจฃเจพเจเจ:
oc adm policy add-role-to-user edit system:serviceaccount:{project}:{spark-service-account} -n {project}
เจเจน เจตเฉ เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจนเฉ เจเจฟ เจเจธ เจฎเฉเจจเฉเจซเฉเจธเจ เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจ เจเฉฑเจ "hadoopConfigMap" เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจผเจพเจฎเจฒ เจนเฉ เจธเจเจฆเจพ เจนเฉ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจซเจพเจเจฒ เจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจฐเฉฑเจเฉ เจฌเจฟเจจเจพเจ Hadoop เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ ConfigMap เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจเจน เจจเจฟเจฏเจฎเจฟเจค เจคเฉเจฐ 'เจคเฉ เจเฉฐเจฎเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจตเฉ เจขเฉเจเจตเจพเจ เจนเฉ - "เจธเจผเจกเจฟเจเจฒ" เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจฆเจฟเฉฑเจคเฉ เจเจ เจเจพเจฐเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจเฉฑเจ เจธเจฎเจพเจ-เจธเจพเจฐเจฃเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจ เจธเฉเจ เจเจชเจฃเฉ เจฎเฉเจจเฉเจซเฉเจธเจ เจจเฉเฉฐ spark-pi.yaml เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเฉเจต เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจธเจพเจกเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจฒเจพเจเฉ เจเจฐเจฆเฉ เจนเจพเจ:
oc apply -f spark-pi.yaml
เจเจน "เจธเจชเจพเจฐเจเจเจชเจฒเฉเจเฉเจธเจผเจจเจเจผ" เจเจฟเจธเจฎ เจฆเจพ เจเฉฑเจ เจตเจธเจคเฉ เจฌเจฃเจพเจเจเจพ:
oc get sparkapplications -n {project}
> NAME AGE
> spark-pi 22h
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจชเฉเจก เจฌเจฃเจพเจเจ เจเจพเจตเฉเจเจพ, เจเจฟเจธเจฆเฉ เจธเจฅเจฟเจคเฉ เจฌเจฃเจพเจเจเจ เจเจเจเจ "เจธเจชเจพเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ" เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเฉ เจเจพเจตเฉเจเฉเฅค เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ:
oc get sparkapplications spark-pi -o yaml -n {project}
เจเฉฐเจฎ เจฆเฉ เจชเฉเจฐเจพ เจนเฉเจฃ 'เจคเฉ, POD "เจฎเฉเจเฉฐเจฎเจฒ" เจธเจฅเจฟเจคเฉ 'เจคเฉ เจเจฒเฉ เจเจพเจตเฉเจเจพ, เจเฉ เจเจฟ "เจธเจชเจพเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ" เจตเจฟเฉฑเจ เจตเฉ เจ เฉฑเจชเจกเฉเจ เจนเฉเจตเฉเจเจพเฅค เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเฉเจเจธ เจจเฉเฉฐ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ เจเจพเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฆเฉเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ (เจเฉฑเจฅเฉ {sparkapplications-pod-name} เจเฉฑเจฒ เจฐเจนเฉ เจเฉฐเจฎ เจฆเฉ เจชเฉเจก เจฆเจพ เจจเจพเจฎ เจนเฉ):
oc logs {sparkapplications-pod-name} -n {project}
เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจตเจฟเจธเจผเฉเจธเจผ เจธเจชเจพเจฐเจเจเฉเจเจฒ เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเฉ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจธเจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจฒเจ, เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจเจธเจฆเฉ เจธเจฐเฉเจค เจเฉเจก เจจเจพเจฒ เจเจฒเฉเจจ เจเจฐเฉ, เจเฉ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ เจ เจคเฉ เจเจธ เจเจชเจฏเฉเจเจคเจพ เจจเฉเฉฐ เจฌเจฃเจพเจ:
git clone https://github.com/GoogleCloudPlatform/spark-on-k8s-operator.git
cd spark-on-k8s-operator/
wget https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
tar -xzf go1.13.3.linux-amd64.tar.gz
sudo mv go /usr/local
mkdir $HOME/Projects
export GOROOT=/usr/local/go
export GOPATH=$HOME/Projects
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
go -version
cd sparkctl
go build -o sparkctl
sudo mv sparkctl /usr/local/bin
เจเจ เจเฉฑเจฒ เจฐเจนเฉ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
sparkctl list -n {project}
เจเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฒเจ เจเฉฑเจ เจตเจฐเจฃเจจ เจเจฐเฉเจ:
vi spark-app.yaml
apiVersion: "sparkoperator.k8s.io/v1beta1"
kind: SparkApplication
metadata:
name: spark-pi
namespace: {project}
spec:
type: Scala
mode: cluster
image: "gcr.io/spark-operator/spark:v2.4.0"
imagePullPolicy: Always
mainClass: org.apache.spark.examples.SparkPi
mainApplicationFile: "local:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar"
sparkVersion: "2.4.0"
restartPolicy:
type: Never
volumes:
- name: "test-volume"
hostPath:
path: "/tmp"
type: Directory
driver:
cores: 1
coreLimit: "1000m"
memory: "512m"
labels:
version: 2.4.0
serviceAccount: spark
volumeMounts:
- name: "test-volume"
mountPath: "/tmp"
executor:
cores: 1
instances: 1
memory: "512m"
labels:
version: 2.4.0
volumeMounts:
- name: "test-volume"
mountPath: "/tmp"
เจเจ sparkctl เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเจฐเจฃเจฟเจค เจเจพเจฐเจ เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ:
sparkctl create spark-app.yaml -n {project}
เจเจ เจเฉฑเจฒ เจฐเจนเฉ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
sparkctl list -n {project}
เจเจ เจฒเจพเจเจ เจเฉเจคเฉ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฆเฉเจเจ เจเจเจจเจพเจตเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
sparkctl event spark-pi -n {project} -f
เจเจฒเฉ เจเฉฑเจฒ เจฐเจนเฉ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
sparkctl status spark-pi -n {project}
เจธเจฟเฉฑเจเฉ เจตเจเฉเจ, เจฎเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ (2.4.5) เจฆเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจฐ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเฉเจเฉ เจเจ เจจเฉเจเจธเจพเจจเจพเจ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพ:
- เจชเจนเจฟเจฒเจพ เจ เจคเฉ, เจธเจผเจพเจเจฆ, เจฎเฉเฉฑเจ เจจเฉเจเจธเจพเจจ เจกเฉเจเจพ เจธเจฅเจพเจจ เจฆเฉ เจเจพเจ เจนเฉเฅค YARN เจฆเฉเจเจ เจธเจพเจฐเฉเจเจ เจเจฎเฉเจเจ เจฆเฉ เจฌเจพเจตเจเฉเจฆ, เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจซเจพเจเจฆเฉ เจตเฉ เจธเจจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจกเฉเจเจพ เจจเฉเฉฐ เจเฉเจก เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเจพ เจธเจฟเจงเจพเจเจค (เจกเจพเจเจพ เจคเฉเจ เจเฉเจก เจฆเฉ เจฌเจเจพเจ)เฅค เจเจธเจฆเฉ เจฒเจ เจงเฉฐเจจเจตเจพเจฆ, เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจจเฉเจกเจพเจ 'เจคเฉ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจธเฉ เจเจฟเฉฑเจฅเฉ เจเจฃเจจเจพเจตเจพเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจกเฉเจเจพ เจธเจฅเจฟเจค เจธเฉ, เจ เจคเฉ เจจเฉเจเจตเจฐเจ เจเฉฑเจคเฉ เจกเฉเจเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจตเจฟเฉฑเจ เจฒเฉฑเจเจฃ เจตเจพเจฒเจพ เจธเจฎเจพเจ เจเจพเจซเจผเฉ เจเฉฑเจ เจเจฟเจ เจธเฉเฅค Kubernetes เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจธเจพเจจเฉเฉฐ เจชเฉเจฐเฉ เจจเฉเฉฑเจเจตเจฐเจ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจเฉฐเจฎ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจกเฉเจเจพ เจจเฉเฉฐ เจฒเจฟเจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจนเฉเฅค เจเฉเจเจฐ เจเจน เจเจพเจซเจผเฉ เจตเฉฑเจกเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจคเจพเจ เจเจพเจธเจ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจเจพเจเจฎ เจเจพเจซเจผเฉ เจตเฉฑเจง เจธเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉ เจ เจธเจฅเจพเจ เจธเจเฉเจฐเฉเจ เจฒเจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจกเจฟเจธเจ เจธเจชเฉเจธ เจฆเฉ เจเจพเจซเจผเฉ เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจฆเฉ เจตเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจธ เจจเฉเจเจธเจพเจจ เจจเฉเฉฐ เจตเจฟเจธเจผเฉเจธเจผ เจธเฉเจซเจเจตเฉเจ เจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ (เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ, เจ เจฒเฉเจเจธเฉเจ) เจตเจฟเฉฑเจ เจกเจพเจเจพ เจธเจฅเจพเจจเจฟเจเจคเจพ เจจเฉเฉฐ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ, เจชเจฐ เจเจธเจฆเจพ เจ เจธเจฒ เจตเจฟเฉฑเจ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจจเฉเจกเจพเจ 'เจคเฉ เจกเฉเจเจพ เจฆเฉ เจเฉฑเจ เจชเฉเจฐเฉ เจเจพเจชเฉ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
- เจฆเฉเจเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจจเฉเจเจธเจพเจจ เจธเฉเจฐเฉฑเจเจฟเจ เจนเฉ. เจกเจฟเจซเฉเจฒเจ เจฐเฉเจช เจตเจฟเฉฑเจ, เจธเจชเจพเจฐเจ เจเจพเจธเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจธเฉฐเจฌเฉฐเจงเฉ เจธเฉเจฐเฉฑเจเจฟเจ-เจธเจฌเฉฐเจงเจค เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจ เจธเจฎเจฐเฉฑเจฅ เจนเจจ, เจเจฐเจฌเฉเจฐเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจ เจงเจฟเจเจพเจฐเจค เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจจเจนเฉเจ เจนเฉ (เจนเจพเจฒเจพเจเจเจฟ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจตเจฟเจเจฒเจชเจพเจ เจจเฉเฉฐ เจตเจฐเจเจจ 3.0.0 เจตเจฟเฉฑเจ เจชเฉเจธเจผ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจเจฟเจธ เจฒเจ เจตเจพเจงเฉ เจเฉฐเจฎ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ), เจ เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจฆเจธเจคเจพเจตเฉเจเจผ เจธเจชเจพเจฐเจ (https://spark.apache.org/docs/2.4.5/security.html) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฟเจฐเจซเจผ YARN, Mesos เจ เจคเฉ เจธเจเฉเจเจกเจ เจฒเฉเจจ เจเจฒเฉฑเจธเจเจฐ เจนเฉ เจฎเฉเฉฑเจ เจธเจเฉเจฐเจพเจ เจตเจเฉเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค เจเจธเฉ เจธเจฎเฉเจ, เจเจชเจญเฉเจเจคเจพ เจเจฟเจธ เจฆเฉ เจ เจงเฉเจจ เจธเจชเจพเจฐเจ เจเจพเจธเจ เจฒเจพเจเจ เจเฉเจคเฉ เจเจ เจนเจจ, เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ - เจ เจธเฉเจ เจธเจฟเจฐเจซ เจเจน เจธเฉเจตเจพ เจเจพเจคเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจพเจ เจเจฟเจธ เจฆเฉ เจคเจนเจฟเจค เจเจน เจเฉฐเจฎ เจเจฐเฉเจเจพ, เจ เจคเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเฉเจเจ เจธเฉเจฐเฉฑเจเจฟเจ เจจเฉเจคเฉเจเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจเฉเจฃเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจธ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจ, เจเจพเจ เจคเจพเจ เจฐเฉเจ เจเจชเจญเฉเจเจคเจพ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเฉ เจเจคเจชเจพเจฆเจ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจจเจนเฉเจ เจนเฉ, เจเจพเจ เจเฉฑเจ เจฌเฉเจคเจฐเจคเฉเจฌ UID เจตเจพเจฒเจพ เจเจชเจญเฉเจเจคเจพ, เจเฉ เจกเฉเจเจพ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจ เจงเจฟเจเจพเจฐเจพเจ เจจเฉเฉฐ เจตเฉฐเจกเจฃ เจตเฉเจฒเฉ เจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเฉฐเจฆเจพ เจนเฉ (เจเจธ เจจเฉเฉฐ PodSecurityPolicies เจฌเจฃเจพ เจเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเจฟเฉฐเจ เจเจฐเจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจ เจจเฉเจธเจพเจฐเฉ เจธเฉเจตเจพ เจเจพเจคเฉ)เฅค เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ, เจนเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจพเจ เจคเจพเจ เจธเจพเจฐเฉเจเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจฐเฉฑเจเฉ, เจเจพเจ เจคเฉเจนเจพเจกเฉ เจธเฉฐเจธเจฅเจพ เจตเจฟเฉฑเจ เจ เจชเจฃเจพเจ เจเจ เจฐเจพเจเจผเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจ เจคเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจธเจชเจพเจฐเจ เจฒเจพเจเจ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจธเฉเจงเฉเฅค
- เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจชเจพเจฐเจ เจจเฉเจเจฐเฉเจเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจ เจงเจฟเจเจพเจฐเจค เจคเฉเจฐ 'เจคเฉ เจ เจเฉ เจตเฉ เจชเฉเจฐเจฏเฉเจเจพเจคเจฎเจ เจฎเฉเจก เจตเจฟเฉฑเจ เจนเฉ เจ เจคเฉ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉเจเจ เจเจเจเจ เจเจฒเจพเจเฉเจฐเจฟเจคเฉเจเจ (เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ, เจกเฉเจเจฐ เจฌเฉเจธ เจเจฟเฉฑเจคเจฐ, เจ เจคเฉ เจฒเจพเจเจ เจธเจเฉเจฐเจฟเจชเจเจพเจ) เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจนเฉ เจธเจเจฆเฉเจเจ เจนเจจเฅค เจ เจคเฉ เจตเจพเจธเจคเจต เจตเจฟเฉฑเจ, เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจธเฉฐเจธเจเจฐเจฃ 2.3.0 เจ เจคเฉ 2.4.5 เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจ เจธเฉ, เจตเจฟเจนเจพเจฐ เจเจพเจซเจผเฉ เจตเฉฑเจเจฐเจพ เจธเฉเฅค
เจเจ เจ เจชเจกเฉเจเจธ เจฆเฉ เจเจกเฉเจ เจเจฐเฉเจ - เจธเจชเจพเจฐเจ (3.0.0) เจฆเจพ เจเฉฑเจ เจจเจตเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจนเจพเจฒ เจนเฉ เจตเจฟเฉฑเจ เจเจพเจฐเฉ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจเจฟเจธ เจจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเฉฑเจคเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจเฉฐเจฎ เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฒเจฟเจเจเจฆเฉเจเจ เจนเจจ, เจชเจฐ เจเจธ เจธเจฐเฉเจค เจชเฉเจฐเจฌเฉฐเจงเจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจฆเฉ เจชเฉเจฐเจฏเฉเจเจพเจคเจฎเจ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจฌเจฐเจเจฐเจพเจฐ เจฐเฉฑเจเจฟเจ เจนเฉเฅค เจธเจผเจพเจเจฆ เจ เจเจฒเฉ เจ เฉฑเจชเจกเฉเจ เจคเฉเจนเจพเจกเฉ เจธเจฟเจธเจเจฎ เจฆเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจฒเจ เจกเจฐเฉ เจฌเจฟเจจเจพเจ เจ เจคเฉ เจเจพเจฐเจเจธเจผเฉเจฒ เจญเจพเจเจพเจ เจจเฉเฉฐ เจธเฉเจคเฉฐเจคเจฐ เจคเฉเจฐ 'เจคเฉ เจธเฉเจงเจฃ เจฆเฉ เจฒเฉเฉ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเฉเจฌเจฐเจจเฉเจเจธ 'เจคเฉ YARN เจจเฉเฉฐ เจเฉฑเจกเจฃ เจ เจคเฉ เจธเจชเจพเจฐเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจจเจพเจฒ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจเจฃเจเฉเฅค
เจ
เฉฐเจค.
เจธเจฐเฉเจค: www.habr.com