检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Flink Jar 包冲突,导致作业提交失败 Flink Jar作业访问DWS启动异常,提示客户端连接数太多错误 Flink Jar作业运行报错,报错信息为Authentication failed Flink Jar作业设置backend为OBS,报错不支持OBS文件系统 Hadoop
存算分离 用户将数据存储到OBS后,DLI可以直接和OBS对接进行数据分析。存算分离的架构下,使得存储资源和计算资源可以分开申请和计费,降低了成本并提高了资源利用率。
使用须知 Flink作业访问DIS,OBS和SMN数据源,无需创建跨源连接,可以直接访问。 推荐使用增强型跨源连接打通DLI与数据源之间的网络。 跨源分析开发方式 表1提供DLI支持的数据源对应的开发方式。
Flink作业运行异常,如何定位 Flink作业重启后,如何判断是否可以从checkpoint恢复 DLI Flink作业提交运行后(已选择保存作业日志到OBS桶),提交运行失败的情形(例如:jar包冲突),有时日志不会写到OBS桶中 Jobmanager与Taskmanager心跳超时
示例 参考创建OBS表或者创建DLI表中的示例描述创建对应的表。 查看当前所在数据库中的所有表与视图。 1 SHOW TABLES; 查看testdb数据库下所有以test开头的表。 1 SHOW TABLES IN testdb LIKE "test*"; 父主题: 查看表
jobs?
OBS桶 选择OBS桶用于保存用户作业日志信息、checkpoint等信息。如果选择的OBS桶是未授权状态,需要单击“OBS授权”。 保存作业日志 设置是否将作业运行时的日志信息保存到OBS。日志信息的保存路径为:“桶名/jobs/logs/作业id开头的目录”。
但在使用DLI提供的元数据提交SparkSQL作业时,部分直接操作OBS路径的SQL语法暂不支持,详细说明请参考DLI Hudi SQL语法参考。 不支持在HetuEngine中写Hudi表,以及修改Hudi表结构,仅支持读Hudi表。
在OBS管理控制台页面通过配置桶的生命周期规则,可以实现定时删除OBS桶中的对象或者定时转换对象的存储类别。 具体操作请参考通过配置生命周期规则。 如果您的SQL队列已开启作业结果保存至DLI作业桶,请务必在提交SQL作业前配置DLI作业桶信息,否则SQL作业可能会提交失败。
在准备工作中生成的keystore.jks文件需要先放到OBS桶中,然后填入ak和sk以及jks文件的具体位置。最后在“es.net.ssl.keystore.pass”填入进入文件的密钥。
batchRunFlinkJobsResponse = client.batchRunFlinkJobs( new BatchRunFlinkJobsRequest() .withBody(new BatchRunFlinkJobsRequestBody
list jobs.
"auto.purge"='false'时,仅清除元数据,数据文件会移入OBS回收站。默认值为“false”,且不建议用户修改此属性,避免数据删除后无法恢复。
使用由DLI提供的元数据服务时,本命令不支持使用OBS路径。 系统响应 可以检查任务状态是否成功,查看任务日志确认有无异常。 父主题: Hudi DML语法说明
2 编写UDF函数代码 3 调试,编译代码并导出Jar包 4 上传Jar包到OBS OBS控制台 将生成的UDF函数Jar包文件上传到OBS目录下。 5 创建DLI的UDF函数 DLI控制台 在DLI控制台的SQL作业管理界面创建使用的UDF函数。
Jar包的管理方式: 上传OBS管理程序包:提前将对应的jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理程序包:提前将对应的jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包,具体操作请参考创建DLI程序包。
Spark SQL作业开发 使用Spark SQL作业分析OBS数据 介绍使用Spark SQL作业创建OBS表、导入OBS表数据、插入和查询OBS表数据等操作。
("fs.obs.secret.key", sk) sparkSession.conf.set("fs.obs.endpoint", enpoint) sparkSession.conf.set("fs.obs.connecton.ssl.enabled", "false") 通过
while (cur < jobCount) { ListSqlJobsResponse listSqlJobsResponse = dliClient.listSqlJobs(req); List<SqlJob> jobs = listSqlJobsResponse.getJobs
while cur < job_count: list_sql_jobs_response = client.inner_client.list_sql_jobs(req) jobs = list_sql_jobs_response.jobs