一.IDEA打包过程:
1.新建一个测试程序:
package com.sparkcore import org.apache.spark.{SparkConf, SparkContext} import scala.math.random object Test_jar { def main(args: Array[String]): Unit = { val spark = new SparkContext(new SparkConf().setAppName("SparkPi02")) val slices = if (args.length > 0) args(0).toInt else 2 val n = math.min(100000L * slices, Int.MaxValue).toInt val count = spark.parallelize(1 until n, slices).map { i => val x = random * 2 - 1 val y = random * 2 - 1 if (x * x + y * y < 1) 1 else 0 }.reduce(_ + _) println("Pi is roughly" + 4.0 * count / n) spark.stop() } }
2.打包:
file--Project Structure---Artifacts--JAR---From modules with dependencies
下面需要选择要打包的程序:
然后需要:Build--BUild Artifacts
二.集群中提交程序:
进入到spark目录中,在bin下用spark-submit进行提交,具体格式如下:
./bin/spark-submit --class "com.sparkcore.Test_jar" //包名.类名 --master *** // spark://节点名:7077 /home/***/bigdata/***/Code_jar/first-classes.jar //一定是jar包在集群中的绝对路径
常用端口号:
7077:spark基于standalone的提交任务的端口号 50070:HDFS的端口号 8088:yarn的web的端口号 8080:master的web,Tomcat的端口号,sparkweb的端口号 8485:journalnode默认的端口号 9000:非高可用访问数rpc端口 8020:高可用访问数据rpc 8081:worker的web的端口号 18080:historyServer的web的端口号 4040:application的web的端口号 2181:zookeeper的rpc端口号 9083:hive的metastore的端口号 60010:Hbase的webUI的端口号 6379:Redis的端口号 9092:kafka broker的端口
运行结果如下:
8080处的监控信息: