You need to enable JavaScript to run this app.
导航
快速开始
最近更新时间:2023.08.03 18:50:28首次发布时间:2022.08.19 11:39:52

本文将为您介绍如何快速进入火山引擎 E-MapReduce(EMR)集群中,操作 Spark 服务相关的内容开发。

1 前提条件

  • 已创建好E-MapReduce(简称“EMR”)集群并安装有 Spark 服务,详见:创建集群

  • 集群中需包含OpenLDAP服务并添加有用户,详见:OpenLDAP使用说明

  • Ksana 组件相关功能,仅在 EMR-3.3.0 及之前的集群版本中支持。

2 登录 EMR 集群节点

  1. 集群管理 > 集群列表 > 具体集群名称,进入集群详情 界面.

  2. 导航栏中点击 服务列表,点击 Spark 服务并进入。

  3. 点击emr集群节点 (emr-master-1主机名称)的ECS ID,跳转进入到云服务器的实例界面,点击右上角的 远程连接 按钮,输入集群创建时的root密码,进入远程终端。

3 交互式开发

登陆集群节点后,进入 spark 文件目录

cd /usr/lib/emr/current/spark

3.1 使用 Scala 交互式编程环境

调用 bin 目录下的 spark-shell 脚本启动程序,运行命令模版如下

./bin/spark-shell

3.2 使用 Python 交互式编程环境

调用 bin 目录下的 pyspark 脚本启动程序,运行命令模版如下

./bin/pyspark

3.3 使用 SQL 交互式编程环境

调用 bin 目录下的 spark-sql 脚本启动程序,运行命令模版如下

./bin/spark-sql

4 程序提交

登陆集群节点,进入 spark 文件目录

cd /usr/lib/emr/current/spark

首先需要使用 Spark 的 API 实现一个拥有入口(main)的程序,然后通过 spark-submit 提交
如运行 spark 自带 Pi 示例程序

jar包提交:
./bin/spark-submit --class org.apache.spark.examples.SparkPi examples/jars/spark-examples.jar 10
python file:
./bin/spark-submit examples/src/main/python/pi.py 10

运行成功会返回日志及 application_id 链接
如果要查看具体任务运行情况,可以登 yarn 界面搜索 application_id 查看任务

5 jdbc方式SQL操作

5.1 连接 Ksana for SparkSQL

Ksana for SparkSQL是 EMR 团队自研的 SparkSQL Server,可用在生产环境下,解决了 Spark Thrift Server 的问题,默认开启端口为10005。通过 beeline 连接 Ksana for SparkSQL,部分初始化账户密码可通过集群管理界面的 OpenLDap 的配置中获取。

说明

  • 在 EMR-3.4.0 及以后的版本中,将下线 Ksana 组件相关功能;

  • 在 EMR-3.3.0 及之前的版本中,仍保留 Ksana 组件相关功能,您可创建 EMR-3.3.0 及之前的集群版本,来使用 Ksana 功能。

beeline -u jdbc:hive2://emr-master-1:10005 -n <user> -p <password>

5.2 执行 SparkSQL 语句

0: jdbc:hive2://emr-master-1:10005> show databases;

获取返回结果

+------------+
| namespace  |
+------------+
| default    |
+------------+