好多人不知道怎么做,转载来的
在集群之外搭建一个节点用于提交spark程序到spark集群
说明:用于提交程序的节点ip: 192.168.1.188 spark集群Master节点ip:192.168.1.73(spark集群和hadoop集群是在一起的)
1.保证该节点和集群的master节点是互通的,在该节点安装和集群同样版本的spark和hadoop程序,
不需要启动,只用于提交作业时在driver端用于获取集群信息
2.配置文件 core-site.xml 修改
ip都改成spark集群Master节点ip(重要),不能写成 主机名,识别不到
(下面的某些配置可能不是必须的)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.73:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop-2.7.7/tmp</value>
</property>
</configuration>
3.配置文件 hdfs-site.xml 修改
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.1.73:50070</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop-2.7.7/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop-2.7.7/hdfs/data</value>
</property>
</configuration>
4. yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.73:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.73:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.73:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.73:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.73:8088</value>
</property>
</configuration>
5.将 core-site.xml和 hdfs-site.xml复制到 spark的conf目录下,
6.配置hadoop环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export SPARK_HOME=/usr/spark-2.3.2-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export HADOOP_HOME=/usr/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
7.无需启动hadoop和spark,此时在我们搭建好的这台节点上打入命令 hadoop fs -ls / 即是 hadoop集群上的hdfs目录
8.spark-submit提交程序 on yarn:
spark-submit --class com.cs.spark.MLXG.NewWordCount \
--master yarn \
--deploy-mode cluster \
--num-executors 1 \
--driver-memory 512m \
--executor-memory 512m \
--total-executor-cores 1 \
/usr/lib/MLXG-0.0.1-jar-with-dependencies.jar
9.有可能还需要提交程序的节点和spark master节点进行免秘钥登录处理