美文网首页Spark学习之路技术分享
如何学习大数据:spark发布程序

如何学习大数据:spark发布程序

作者: 卿卿老祖 | 来源:发表于2018-12-05 14:27 被阅读5次

    一、对于spark程序只是用于默认的spark包的情况

    直接点击pcakage

    将程序进行在linux当中进行发布

    客户端模式:测试

    spark-submit --class  com.keduox.App \

    --master yarn \

    --deploy-mode client \

    test_submit-1.0-SNAPSHOT.jar

    1、 (在数据量很小的时候)速度快

    2、 依赖于jvm进程来执行的。所以不需要启动hdfs、yarn、spark的。

    集群模式:生产环境、正式环境

    出现异常:Retrying connect to server: master/192.168.200.200:8032.

    表示yarn没有启动:start-yarn.sh

    java.net.ConnectException: Call From master/192.168.200.200 to  master:9000

    表示hdfs没有启动:start-dfs.sh

    发布之后出现错误:

    yarn.ApplicationMaster: SparkContext did not initialize after  waiting for 100000 ms

    将代码中的setMaster(local[*])删除掉--à不推荐这样子使用

    删掉之后,重新打包是可以成功运行。

    没有成功的原因是:因为spark在执行的时候,是采用分布的执行,也就是每一个节点执行的东西只是代表整个程序的一部分。代码当中将输出地写成了file:///keduox/spark_out,看到的情况是一会成功,一会失败。

    建议使用方式:

    如果在一个模块当中有多个spark的程序代码时,建立将setMaster的值设置在properties文件当中。因为我们会经常在local和yarn之前进行切换操作。

    new SparkConf().setMaster("yarn-cluster")

    二、发布到cdh上

    2.1cdh配置spark

    2.2让yarn与spark进行关联

    在yarn点当中点击以下内容

    3、 改变spark任务的默认大小

    重启

    三、将统计的结果放到yarn去运行:

    3.1:直接package

    java.sql.SQLException: No suitable driver 缺少mysql的包

    如果使用的是通过mysql 的方式的话,将无法找到spark默认使用的驱动包。建议在map属性当中加入:"driver" -> "com.mysql.jdbc.Driver"

    java.lang.InstantiationException: org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper

    当我们需要有数据,写入到mysql的时候,也需要指定driver

    val properties = new Properties()

    properties.setProperty("driver","com.mysql.jdbc.Driver")

    --------------------------------------------------------------------------

    spark-submit --class com.keduox.HotCount \

    --master yarn \

    --deploy-mode cluster \

    --jars /keduox/mysql-connector-java-5.1.38.jar \

    hot_sales-1.0-SNAPSHOT.jar

    3.2采用插件方式

    <plugins>

    <plugin>

    <artifactId>maven-assembly-plugin</artifactId>

    <configuration>

    <descriptorRefs>

    <descriptorRef>jar-with-dependencies</descriptorRef>

    </descriptorRefs>

    </configuration>

      </plugin>

    </plugins>

    发布:

    用默认方式打包的话,会将所有的maven中的包全打到jar当中,jar太大了。

    可以在打包的时间,将spark、hadoop、hive的包给他去掉

    在pom.xml文件当中,对于不需要打包的依赖中当入:

    <scope>provided</scope> ---但是要特别注意:打包完了之后,还需要进行编码的话,需要将这个scope去掉,不然代码编译不通过

    3.3可以通过sc的方式加载包

            sc.addJar("")

    3.4 idea提供的打包方式

    END。。。

    来源:成都科多大数据科技有限公司 

    相关文章

      网友评论

        本文标题:如何学习大数据:spark发布程序

        本文链接:https://www.haomeiwen.com/subject/cnhicqtx.html