Modo de operação da série Spark (três) Configuração do modo Yarn (detalhado)

modo de fio

00_Introdução

O cliente Spark se conecta diretamente ao Yarn, sem a necessidade de construir um cluster Spark. Existem dois modos de yarn-client e yarn-cluster.A principal diferença está no nó em execução do programa Driver.

Cliente Yarn: O programa Driver roda no cliente e é adequado para interação e depuração.Você deseja ver a saída do aplicativo imediatamente.

Yarn-cluster: O programa Driver roda em AP (APPMaster) iniciado por RM (ResourceManager) e é adequado para ambientes de produção.

O modo de operação do fio é mostrado na figura:
Insira a descrição da imagem aqui

01_Configuração

1.1, modifique o arquivo de configuração do Hadoop yarn-site.xml e distribua-o para outros nós.

Porque nosso ambiente de teste tem poucas máquinas virtuais para evitar que tarefas futuras sejam eliminadas acidentalmente.

cd /usr/hadoop/hadoop-2.10.0/etc/hadoop/
vi yarn-site.xml 
#添加以下在configuration标签中间
<!--是否启动一个线程检查每个任务正使用的物理内存量。如果任务使用的内存量超出分配值,则会被中断。默认是true -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
<!--是否启动一个线程检查每个任务正在使用的虚拟内存量。如果任务使用的内存量分配超出分配值,会被选择中断。默认是true-->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
#分发    
scp -r yarn-site.xml slave1:/usr/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r yarn-site.xml slave2:/usr/hadoop/hadoop-2.10.0/etc/hadoop/

1.2, copie faísca e nomeie-o fio-faísca

cp -r spark-2.4.0-bin-hadoop2.7 spark-yarn

1.3, modifique o arquivo spark-env.sh

mv spark-env.sh.template spark-env.sh
for i in *.template; do mv ${i} ${i%.*}; done
HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.10.0/etc/hadoop

1.4, modificar variáveis ​​de ambiente

vi /etc/profile
export SPARK_HOME=/usr/hadoop/spark-yarn
export PATH=$PATH:$SPARK_HOME/sbin:$SPARK_HOME/bin
source /etc/profile

1.5, adicionar serviço de histórico

1.5.1 Configurar env.sh

vi spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://node1:8020/spark-logs-yarn"

1.5.2 Crie um diretório de log, o hadoop deve ser ativado

 bin/hadoop fs -mkdir /spark-logs-yarn

1.5.3 Configurar defaults.conf

vi spark-defaults.conf 
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://node1:8020/spark-logs-yarn

1.6, exemplo

No log do spark-shell, você pode ver que o comando spark-shell --master yarn-client está obsoleto desde o Spark 2.0 e pode ser substituído pelo cliente spark-shell --master yarn --deploy-mode.

Nota:
(1) O cluster HDFS e YARN precisa ser iniciado antes de enviar a tarefa.
(2) Se você tiver alguma dúvida sobre o número da porta de acesso à página hadoopUI, consulte o artigo Big Data Platform-Hadoop Environment Configuration

(1) Na casca

spark-shell --master yarn --deploy-mode client
scala> val rdd=sc.parallelize(1 to 100,5)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24

scala> rdd.count
res0: Long = 100   

(2) Diretamente em fio de faísca

bin/spark-submit \
--master yarn \
--class org.apache.spark.examples.SparkPi \
--deploy-mode client \
./examples/jars/sp,,,,, \ #架包的路径
100

02_Summary

(1) Os modos autônomo e yarn não podem ser configurados no mesmo, a configuração das variáveis ​​de ambiente do spark entrará em conflito e o yarn-UI também não pode ser acessado

(2) O modo Yarn não precisa ser equipado com um cluster de faísca. Ao usá-lo, inicie o hadoop primeiro

Acho que você gosta

Origin blog.csdn.net/qq_46009608/article/details/108911193
Recomendado
Clasificación