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

一、对于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

webp

2.2让yarn与spark进行关联

在yarn点当中点击以下内容

webp

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

webp

webp

webp

重启

三、将统计的结果放到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提供的打包方式

webp

webp

webp

感兴趣可以加Java架构师群获取Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限 都是大牛带飞 让你少走很多的弯路的 群..号是:855801563 对了 小白勿进 最好是有开发经验

注:加群要求

1、具有工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

转载于:https://my.oschina.net/u/3959491/blog/2989425

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值