import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object MyClusterApp{
def main (arg: Array[String]): Unit = {
val conf = new SparkConf().setAppName("MyClusterApp")
val sc = new SparkContext(conf)
val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
//find the rows that have only one digit in the seventh column in the CSV
val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1)
rdd1.saveAsTextFile("wasbs:///HVACOut")
在 HDInsight Spark 群集中运行该应用程序:
a. 在“包资源管理器”中,右键单击项目名称,然后选择“将 Spark 应用程序提交到 HDInsight”。
b. 在“Spark 提交”对话框中提供以下值,然后选择“提交”:
对于“群集名称”,选择要在其上运行应用程序的 HDInsight Spark 群集。
从 Eclipse 项目或硬盘中选择一个项目。 默认值取决于从包资源管理器右键单击的项。
在“主类名”下拉列表中,提交向导将显示项目中的所有对象名。 选择或输入要运行的对象的名称。 如果从硬盘中选择项目,必须手动输入主类名。
由于本示例中的应用程序代码不需要任何命令行参数,也不需要引用 JAR 或文件,因此可以将其余的文本框留空。
可以使用 HDInsight 工具执行各种操作,包括访问作业输出。
访问作业视图
在“Azure 资源管理器”中依次展开“HDInsight”和 Spark 群集名称,然后选择“作业” 。
选择“作业”节点。 如果 Java 版本低于 1.8,HDInsight 工具会自动提醒你安装 E(fx)clipse 插件。 选择“确定”继续,然后按照向导指示从 Eclipse Marketplace 安装该插件并重启 Eclipse。
从“作业”节点打开作业视图。 在右窗格中,“Spark 作业视图”选项卡显示了群集上运行的所有应用程序。 选择想要查看其详细信息的应用程序的名称。
然后,可以执行以下任一操作:
将鼠标悬停在作业图上。 将显示有关运行作业的基本信息。 选择作业图,可以看到每个作业生成的阶段和信息。
选择“日志”选项卡查看常用的日志,包括“驱动程序 Stderr”、“驱动程序 Stdout”和“目录信息”。
选择窗口顶部的超链接打开 Spark 历史记录 UI 和 Apache Hadoop YARN UI(应用程序级别)。
访问 Spark 历史记录服务器
在“Azure 资源管理器”中,右键单击 Spark 群集名称,然后选择“打开 Spark 历史记录 UI”。 出现提示时,请输入群集的管理员凭据。 预配群集时已指定这些凭据。
在“Spark 历史记录服务器”仪表板中,可以使用应用程序名称查找刚运行完的应用程序。 在上述代码中,已使用 val conf = new SparkConf().setAppName("MyClusterApp")
设置了应用程序名称。 因此,Spark 应用程序名称为“MyClusterApp”。
启动 Apache Ambari 门户
在“Azure 资源管理器”中,右键单击 Spark 群集名称,然后选择“打开群集管理门户(Ambari)”。
出现提示时,请输入群集的管理员凭据。 预配群集时已指定这些凭据。
管理 Azure 订阅
默认情况下,用于 Eclipse 的 Azure 工具包中的 HDInsight 工具将列出所有 Azure 订阅中的 Spark 群集。 如果需要,可以指定想要访问其群集的订阅。
在“Azure 资源管理器”中,右键单击“Azure”根节点,并选择“管理订阅”。
在对话框中,清除不想访问的订阅对应的复选框,然后选择“关闭”。 如果想要从 Azure 订阅注销,可以选择“注销”。
本地运行 Spark Scala 应用程序
可以使用用于 Eclipse 的 Azure 工具包中的 HDInsight 工具在工作站上本地运行 Spark Scala 应用程序。 通常,这些应用程序不需要访问群集资源(如存储容器),并可以在本地运行和测试。
在 Windows 计算机上运行本地 Spark Scala 应用程序时,可能会发生 SPARK-2356 中所述的异常。 发生这些异常的原因是 Windows 中缺少 WinUtils.exe。
若要解决此错误,需要将 Winutils.exe 下载到所需位置(例如 C:\WinUtils\bin),然后添加环境变量 HADOOP_HOME,并将该变量的值设为 C\WinUtils。
运行本地的 Spark Scala 应用程序
启动 Eclipse 并创建项目。 在“新建项目”对话框中做出以下选择,然后选择“下一步”。
在“新建项目”向导中选择“HDInsight 项目”>“Spark on HDInsight 本地运行示例 (Scala)” 。 然后,选择“下一步”。
若要提供项目详细信息,请执行前面部分为 HDInsight Spark 群集设置 Spark Scala 项目中的步骤 3 到步骤 6。
模板将在 src 文件夹下面添加可在计算机上本地运行的示例代码 (LogQuery)。
右键单击“LogQuery.scala”,并选择“运行方式”>“1 Scala 应用程序” 。 “控制台”选项卡上将出现如下所示的输出:
Apache Spark 和 BI:使用 HDInsight 中的 Spark 和 BI 工具执行交互式数据分析
Apache Spark 和机器学习:使用 HDInsight 中的 Spark 结合 HVAC 数据分析建筑物温度
Apache Spark 和机器学习:使用 HDInsight 中的 Spark 预测食品检查结果
使用 HDInsight 中的 Apache Spark 分析网站日志
创建和运行应用程序
使用 Scala 创建独立的应用程序
使用 Apache Livy 在 Apache Spark 群集中远程运行作业
使用用于 IntelliJ 的 Azure 工具包创建和提交 Spark Scala 应用程序
使用 Azure Toolkit for IntelliJ 通过 VPN 远程调试 Apache Spark 应用程序
使用 Azure Toolkit for IntelliJ 通过 SSH 远程调试 Apache Spark 应用程序
在 HDInsight 上的 Apache Spark 群集中使用 Apache Zeppelin 笔记本
在 HDInsight 的 Apache Spark 群集中可用于 Jupyter Notebook 的内核
将外部包与 Jupyter Notebook 配合使用
Install Jupyter on your computer and connect to an HDInsight Spark cluster(在计算机上安装 Jupyter 并连接到 HDInsight Spark 群集)
管理 Azure HDInsight 中 Apache Spark 群集的资源
Track and debug jobs running on an Apache Spark cluster in HDInsight(跟踪和调试 HDInsight 中的 Apache Spark 群集上运行的作业)