halcon实例实战第二版_Spark实战第二版(涵盖Spark3.0)第六章 部署应用程序(完结)

关注公众号: 登峰大数据 ,阅读Spark实战第二版(完整中文版),系统学习Spark3.0大数据框架! 如果您觉得作者翻译的内容有帮助,请分享给更多人。您的分享,是作者翻译的动力! 172d7f0983c0cbe44913aa191d8b17eb.png 6.4 在集群上运行应用程序

在了解了Spark如何工作的所有关键概念、学习如何与它交互、构建所有这些jar并深入研究Maven之后,您终于可以在集群上运行应用程序了。没有开玩笑!

在第6.3节中,您构建了两个可以执行的工件:
  • 将提交给Spark的uber JAR
  • 来自编译源的JAR

让我们部署并执行它们。执行方式的选择取决于如何构建应用程序。

6.4.1 提交uber JAR

第一个选择是运行通过spark-submit构建的uber JAR。这是在6.3.1节准备的uber JAR。除了你的JAR之外,你不需要任何东西。

要将您的uber JAR上传到服务器:

$ cd /opt/apache-spark/bin

然后将应用程序jar提交给master:

$ ./spark-submit \    --class net.jgp.books. spark.ch05.lab210.➥ piComputeClusterSubmitJob.PiComputeClusterSubmitJobApp \    --master "spark://un:7077" \     /spark-chapter05-1.0.0-SNAPSHOT.JAR

Spark输出内容是冗长的,但通过日志,您将看到您的消息:

...About to throw 100000 darts, ready? Stay away from the target!...2018-08-20 11:52:14 INFO SparkContext:54 - Added JAR file:/home/jgp/.m2/repository/net/jgp/books/spark-chapter05/1.0.0-SNAPSHOT/spark-chapter05-1.0.0-SNAPSHOT.JAR➥  at spark://un.oplo.io:42805/JARs/spark-chapter05-1.0.0-SNAPSHOT.JAR➥ with timestamp 1534780334746...2018-08-20 11:52:14 INFO StandaloneAppClient$ClientEndpoint:54 - Executor➥ added: app-20180820115214-0006/2 on➥ worker-20180819144804-10.0.100.83-44763 (10.0.100.83:44763)➥ with 4 core(s)...Initial dataframe built in 3005 msThrowing darts done in 49 ms...Analyzing result in 2248 msPi is roughly 3.14448 ...
6.4.2运行应用程序

运行应用程序的第二种选择是直接通过Maven运行它。这是第6.3.2节中本地编译的继续。

转到你的源代码所在的目录:

$ cd ~/net.jgp.books.spark.ch05

然后运行以下操作:

$ mvn clean install exec:exec[INFO] Scanning for projects......[INFO] --- exec-maven-plugin:1.6.0:exec (default-cli) @ spark-chapter05 ---About to throw 100000 darts, ready? Stay away from the target!Session initialized in 1744 msInitial dataframe built in 3078 msThrowing darts done in 23 msAnalyzing result in 2438 msPi is roughly 3.14124...[INFO] BUILD SUCCESS ...

您已经通过两种方式成功地执行了应用程序。让我们来看看幕后发生了什么。

6.4.3 Spark用户界面

在6.2节中,当您构建集群时,看到Spark有一个用户界面,可以在master节点的端口8080(默认情况下)上访问它。现在已经运行了第一个应用程序,你可以查看这些界面,它们显示集群和应用程序的状态,包括正在运行和已完成的应用程序状态。

打开Spark的web界面(在本例中是http://un:8080)。图6.7显示了运行几个测试后的界面。

当您刷新屏幕时,应用程序将移动到已完成的应用程序部分。如果单击该链接,您将访问执行的详细信息,包括标准输出和标准错误输出。如果您查看日志文件,如图6.8所示,您将发现关于应用程序执行的更多信息。

在这里,您可以看到到master的连接是成功的,executor开始工作。

32a8c3c85267c960c0de41ea8bbd5f66.png

图6.7 Spark的用户界面显示你的应用程序运行以及集群的状态

34f3f4cc56e1d940d0f513547b59b0b3.png

图6.8 分析worker的节点日志可以获得宝贵的调试信息。

本章总结
  • Spark支持三种执行模式:本地模式、集群模式和交互模式。

  • 本地模式允许开发人员在几分钟内开始Spark开发。

  • 集群模式用于生产。

  • 您可以提交作业来触发或连接到master服务器。

  • 驱动程序应用程序是main()方法所在的地方。

  • master节点知道所有的worker节点。

  • 计算的执行发生在worker节点上。

  • Spark以集群模式将应用程序JAR分发到每个worker节点。

  • CICD(持续集成和持续交付)是一种鼓励频繁集成和交付的敏捷方法。

  • Spark提供了一个web界面来分析作业和应用程序的执行。

  • 我的职业生涯是从VB3开发者开始的。

第七章 从文件接入数据

本章涵盖了
  • 解析器的常见行为

  • 从CSV, JSON, XML和文本文件接入数据

  • 理解单行和多行JSON记录之间的区别

  • 理解对大数据特定文件格式的需求

接入数据是大数据处理管道的第一步。您必须将数据装载到Spark实例中,无论它是在本地模式还是集群模式下。正如您现在所知道的,Spark中的数据是暂时的,这意味着当您关闭Spark时,所有数据都消失了。本章您将学习如何从标准文件(包括CSV、JSON、XML和文本)导入数据。

在本章中,在学习了各种解析器之间的常见行为之后,您将使用虚构的数据集来说明特定的情况,以及来自开放数据平台的数据集。开始用这些数据集进行分析是很诱人的。当您看到显示在屏幕上的数据时,您将开始思考,“如果我将这个数据集与另一个数据集连接会发生什么?”如果我开始聚合这个领域…“你将在第11章到第15章和第17章学习如何执行这些操作,但首先你需要将所有的数据输入Spark!

(未完待续......)  欢迎关注公众号,及时获得最新翻译内容:

fec55187a549a4fe0d22d8656bfb2808.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值