概念 |
您所在的位置:网站首页 › zeppelin是什么意思 › 概念 |
概念创建XSpark应用初始化配置开始使用XSparkXSpark数据源Spark scala 示例加载第三方依赖Spark SQL 示例定时任务基于XSpark的Python语言支持基于XSpark的R语言支持基于XSpark的机器学习Spark UIXSpark容器监控XSpark邮件告警功能XSpark快捷重启Interpreter功能XSpark 备份/恢复代码备份代码恢复代码Spark-jobserver 使用Rest API 介绍1. Jars1.1 提交Jar1.2 查询Jar2. Contexts2.1 创建Context2.2 查看Context2.3 删除Context3. Jobs3.1 提交Job3.2 获取Jobs3.3 获取Job结果例子:编写Spark-JobServer App附件1. FUSION使用说明概念 资源容器(container): XSpark本身是一个云计算应用,所以资源容器的概念其实就是CPU(规格 & 数量)和内存(大小)。 Zepplin: Zepplin是一个数据可视化工具,可以将计算的结果以多种图表的样式进行展示,例如折线图、直方图图等等。 云存储: 云存储指的是七牛提供的对象存储服务,它是XSpark的数据来源。 !> XSpark 不仅仅支持云存储,也支持其他多种数据源,例如MySQL、HDFS等等。 调度节点(Master): 调度节点是用来管理和分发分布式计算任务,一般来说,当获取较大数据源或计算结果较大时,调度节点配置越高,性能越好;它使用的资源包含在资源容器当中。 计算节点(worker): 计算节点是用来执行分布式计算任务,一般来说,计算节点越多,计算速度越快;它使用的资源也包含在资源容器当中。 创建XSpark应用操作流程: 在七牛控制台最下方的应用市场进入XSpark首页。 然后点击新建部署来创建我们第一个XSpark应用。 填写相应内容之后,点击确定创建,等待系统部署完成。 填写参数说明: 参数 必填 说明 应用名称 是 用来标识该应用的唯一性 应用别名 否 备注标识,支持中文,没有特殊含义 部署区域 是 计算与存储所使用的物理资源所在区域;为了降低成本,请尽量选择离数据源较近的区域操作演示: 操作流程: 部署完成后,我们需要选择此应用的Worker规格以及数量,选择完成后点击提交按钮,等待应用初始化完成即可。 填写参数说明: 参数 必填 说明 Worker规格 是 不同大小的CPU与内存 Worker数量 是 选择的Worker规格使用数量!> Worker的概念: Spark集群的执行节点,用来执行分布式计算任务,一般来说,数量越多执行效率越高,规格与数量的大小与数量和执行效率成正比,请酌情选择。 除Worker外,还有一个Master(调度节点)的概念,调度节点是用来管理和分发分布式计算任务,一般来说,当获取较大数据源或计算结果较大时,调度节点配置越高,性能越好;它使用的资源包含在资源容器当中。 操作演示: 目前XSpark 支持以KODO,FUSION 作为数据源来做数据分析。各数据源以不同的URL Schema来区分。 如: KODO: qiniu://FUSION: fusion://本文档如无特别说明则默认以KODO作为数据源来阐述使用方式。如需使用FUSION, 请跳转附件1 Spark scala 示例操作流程: 点击开始使用,在新弹出的页面上选择XSpark Tutorial进入代码编辑窗口。 在代码编辑窗口中,操作演示所使用的示例是读取七牛对象存储的Bucket中的companies.json文件,然后输出这个文件的所有字段信息。 意思就是,在代码编辑窗口中,我们需要指定一个文件路径,然后就可以对该文件中的数据进行计算,计算的代码由用户自行编写。 操作演示: 操作流程: 点击代码编辑窗口之间的缝隙,可以增加一个新的代码编辑窗口。 我们再顶部打开一个新的代码编辑窗口,然后输入 %spark.dep换行后,即可添加第三方依赖,代码示例如下: z.load("第三方依赖地址")?>我们也支持添加第三方镜像仓库来加速依赖下载,示例如下: z.addRepo("3rdRepo").url("http://maven.aliyun.com/nexus/content/groups/public/")!>注意:如果遇到如下提示,需要停止XSpark已经在运行的任务,才能使用加载第三方依赖功能,停止的方法见下图: Must be used before SparkInterpreter (%spark) initializedHint: put this paragraph before any Spark code and restart Zeppelin/Interpreter操作演示: 操作流程: 我们可以在代码编辑窗口中编写Spark SQL来对数据进行分析。 首先我们需要将读取的文件注册成一张表,示例代码如下: // 首先从对象存储中读取 companies.json文件var dataPath = "qiniu://resourves/companies.json"// 然后使用json的方式来读取文件var table = sqlContext.read.json(dataPath)// 将读取的文件注册为一张表table.registerTempTable("companies")将文件注册成表之后,我们即可编写 SQL 对数据进行分析: %sql select name, sum(number_of_employees) number from companies group by name order by number desc limit 5!> 注意: 编写SQL时, 头部必须包含%sql 操作演示: 操作流程: XSpark使用cron表达式来配置定时任务的执行频率。 点击页面上的时钟图标,来配置定时 快捷选择项中,我们支持1分钟、5分钟、1小时、3小时、6小时、12小时、1天; 也可以手动输入cron表达式自定义定时周期。 建议勾选:auto-restart interpreter on cron execution使得每次运行都是独立的运行环境。 操作演示: 对于有一定经验的Spark开发人员,可以访问SparkUI来看当前运行的任务状态。 XSpark提供了容器级别的CPU,内存,磁盘监控。可以给Spark任务的调优和故障排查提供有力的支持。 邮件告警经常配合定时任务来使用,当任务失败时,会有邮件发送具体的失败信息到指定的邮箱内。 重启Interpretr会初始化Spark解释器。重启Interpreter会结束掉当前正在运行的spark任务,释放资源。 当你需要重新新建另外一个XSpark实例时,而又不想丢弃之前在Zeppelin写了的代码,这时候你应该尝试XSpark提供的代码备份/恢复功能了。当然除此之外,常常备份自己的代码是个好习惯。 备份代码点击备份,它会自动备份您当前实例的所有代码。 恢复时第一步需要选择要恢复的代码来自于哪一个您曾经备份过的XSpark实例, 第二步选择需要恢复的代码。 为了能够在提供让用户自己提交代码,管理任务的目的。我们在XSpark里提供了Restful风格的Spark-jobserver。用户可以通过Spark-jobserver的api在非notebook的情况下使用XSpark集群。 首先我们需要获取到你自己的JobServer地址及使用方式。 API使用方式: http --auth-qiniu=~/.qiniu/your_ak_sk.conf GET $JOBSERVER_REST_URL !> 注意: ~/.qiniu/your_ak_sk.conf是访问七牛服务的ak/sk,需要创建一个your_ak_sk.conf文件,然后把内容替换成你自己的ak/sk. { "access_key": "***************************************", "secret_key": "***************************************", "auth": "qiniu/mac"} $JOBSERVER_REST_URL 替换为你获取的地址注:上面使用到的http命令是httpie的工具。httpie是一个 HTTP 的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。 安装方式: pip install --upgrade https://github.com/kirk-enterprise/httpie/tarball/master Rest API 介绍大体上我们提供了下面几个用于操作Spark任务的api。 1. Jars1.1 提交Jarhttp --auth-qiniu=~/.qiniu/your_ak_sk.conf $JOBSERVER_REST_URL/jars/$JAR_NAME @job-server-tests/target/scala-2.10/job-server-tests_$VER.jar其中:$JAR_NAME 替换成自行定义的jar名字即可 返回值: 200 OK{ "result": "Jar uploaded", "status": "SUCCESS"}1.2 查询Jar http --auth-qiniu=~/.qiniu/your_ak_sk.conf $JOBSERVER_REST_URL/jars返回值: 200 OK{ "test": "2017-06-07T15:18:58.581+08:00",}2. Contexts2.1 创建Contexthttp --auth-qiniu=~/.qiniu/your_ak_sk.conf POST '$JOBSERVER_REST_URL/contexts/$CONTEXT_NAME?num-cpu-cores=4&memory-per-node=512m'其中: $CONTEXT_NAME 替换成你自行定义的context namenum-cpu-cores 配置SparkContext使用cpu核心数memory-per-node 配置每个节点使用的内存大小返回值: 200 OK{ "result": "Context created", "status": "SUCCESS"}2.2 查看Contexthttp --auth-qiniu=~/.qiniu/your_ak_sk.conf GET $JOBSERVER_REST_URL/contexts返回值: 200 OK[ "test-context"]2.3 删除Contexthttp --auth-qiniu=~/.qiniu/your_ak_sk.conf DELETE '$JOBSERVER_REST_URL/contexts/$CONTEXT_NAME'其中:$CONTEXT_NAME为你要删除的Context名称 返回值: 200 OK{ "result": "", "status": "Success"}3. Jobs3.1 提交Jobhttp --auth-qiniu=~/.qiniu/your_ak_sk.conf POST '$JOBSERVER_REST_URL/jobs?appName=$APP_NAME&classPath=$CLASSNAME&sync={true|false}&context=$CONTEXT_NAME' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |