云服务器内容精选
-
怎么确认当前用户创建的表是v1还是v2表? 1. 使用datasource语法建表: CREATE TABLE IF NOT EXISTS table_name (id STRING) USING parquet; 2. 执行show create table查看TBLPROPERTIES下的"verison"字段的值 "v1"为V1表;"v2"则为V2表。 如需修改V1表为V2表请提交工单联系客户支持获取操作帮助。
-
升级示例 升级Spark引擎和修改数据表时,如新建队列时切换了计算资源类型可能会导致计费资源的费用变化。 如果原队列使用的是弹性资源池类型的计算资源,那么新建队列不涉及计算资源的费用变化。 如果原队列使用的是非弹性资源池的类型的计算资源,那么使用弹性资源池资源新建队列后计算资源的费用将发生变化,具体情况以计算资源的价格详情为准。 示例1:使用SQL队列,将Spark版本从Spark 2.4.x升级至Spark 3.3.1对数据表的版本有影响吗? 不需要,Spark 2.4.x的SQL队列支持V1表和V2表,因此升级Spark版本只需要考虑Spark版本对SQL语法的兼容性。 示例2:使用通用队列,将Spark版本从Spark 2.4.x升级至Spark 3.3.1对数据表的版本有影响吗? Spark 2.4.x通用队列支持V1表和V2表,但Spark3.3.x通用队列不支持V1表。 因此如需将Spark版本从Spark 2.4.x升级至Spark 3.3.1需经过以下步骤: 将Spark 2.4.x的V1表修改为V2表。 升级Spark 2.4.x的V2表升级为Spark 3.3.1的V2表。 同时还需考虑Spark jar作业API语法的兼容性。 表3 DLI 各Spark版本对V1、V2表兼容列表 表类型 Spark2.4 通用队列 Spark3.3 通用队列 V1表 √ 部分支持 V2表 √ √ 示例3:使用通用队列,怎样将Spark 2.3.2的V1表升级为Spark 3.3.1的V2表? Spark 2.3.2通用队列不支持V2表,Spark 3.3.1通用队列不支持V1表: 将Spark 2.3.2的V1表升级至Spark 2.4.5的V1表。 将Spark 2.4.5的V1表修改为V2表。 升级Spark 2.4.5的V2表升级为Spark 3.3.1的V2表。 同时还需考虑Spark jar作业API语法的兼容性。 表4 DLI各Spark版本对V1、V2表兼容列表 表类型 Spark2.3 通用队列 Spark2.4 通用队列 Spark3.3 通用队列 V1表 √ √ 部分支持 V2表 × √ √
-
DLI各Spark版本对V1、V2表兼容性 表1 DLI各Spark版本对V1、V2表兼容列表 表类型 Spark2.3 SQL队列 Spark2.3 通用队列 Spark2.4 SQL队列 Spark2.4 通用队列 Spark3.1 SQL队列 Spark3.1 通用队列 Spark3.3 SQL队列 Spark3.3 通用队列 V1表 √ √ √ √ √ √ √ 部分支持 V2表 × × √ √ × × √ √ 表2 Spark3.3 通用队列语法支持列表 表类型 select create table create table like CTAS insert into insert overwrite load data alter table set location truncate table V1表 √ √ √ × × × × × × V2表 √ √ √ √ √ √ √ √ √
-
什么是DLI datasourcev1表和DLI datasourcev2表? DLI datasource v1表(以下简称V1表):DLI的Datasource表格式,建表/插入/truncate命令使用DLI自定义的command,表的数据路径为$tablepath/UUID/数据文件。 图1 DLI datasource v1表 DLI datasource v2表(以下简称V2表):spark开源的Datasource表,建表/插入/truncate命令使用spark开源的command,表的数据路径为$tablepath/数据文件。 图2 DLI datasource v2表
-
工具介绍 在Hadoop大规模生产集群中,由于HDFS的元数据都保存在NameNode的内存中,集群规模受制于NameNode单点的内存限制。如果HDFS中有大量的小文件,会消耗NameNode大量内存,还会大幅降低读写性能,延长作业运行时间。因此,小文件问题是制约Hadoop集群规模扩展的关键问题。 本工具主要有如下两个功能: 扫描表中有多少低于用户设定阈值的小文件,返回该表目录中所有数据文件的平均大小。 对表文件提供合并功能,用户可设置合并后的平均文件大小。
-
解决方法 应用无法访问到SparkUI的IP:PORT。可能有以下原因: 可能原因一:集群节点与客户端节点网络不通。 解决方法: 查看客户端节点“/etc/hosts”文件中是否配置集群节点映射,在客户端节点执行命令: ping sparkui的IP 如果ping不通,检查映射配置与网络设置。 可能原因二:客户端节点防火墙未关闭。 解决方法: 执行如下命令可查看是否关闭: systemctl status firewalld(不同的操作系统查询命令不一致,此命令以CentOS为例) 如下图所示:dead表示关闭。 防火墙开则影响通信,执行如下命令关闭防火墙: service firewalld stop(不同的操作系统查询命令不一致,此命令以CentOS为例) 可能原因三:端口被占用,每一个Spark任务都会占用一个SparkUI端口,默认为22600,如果被占用则依次递增端口重试。但是有个默认重试次数,为16次。16次重试都失败后,会放弃该任务的运行。 查看端口是否被占用: ssh -v -p port username@ip 如果输出“Connection established”,则表示连接成功,端口已被占用。 Spark UI端口范围由配置文件spark-defaults.conf中的参数“spark.random.port.min”和“spark.random.port.max”决定,如果该范围端口都已被占用,则 导致无端口可用从而连接失败。 解决方法:调节重连次数spark.port.maxRetries=50,并且调节executor随机端口范围spark.random.port.max+100 可能原因四:客户端Spark配置参数错误。 解决方法: 在客户端节点执行命令cat spark-env.sh,查看SPARK_LOCAL_HOSTNAME,是否为本机IP。 该问题容易出现在从其他节点直接复制客户端时,配置参数未修改。 需修改SPARK_LOCAL_HOSTNAME为本机IP。 注:如果集群使用EIP通信,则需要设置以下参数。 spark-default.conf中添加spark.driver.host = EIP(客户端节点弹性公网IP) spark-default.conf中添加spark.driver.bindAddress=本地IP spark-env.sh中修改SPARK_LOCAL_HOSTNAME=EIP(客户端节点弹性公网IP) 可能原因五:代码问题。 解决方法: Spark在启动任务时会在客户端创建sparkDriverEnv并绑定DRIVER_BIND_ADDRESS,该逻辑并没有走到服务端,所以该问题产生的原因也是客户端节点操作系统环境问题导致sparkDriver获取不到对应的主机IP。 可以尝试执行export SPARK_LOCAL_HOSTNAME=172.0.0.1或者设置spark.driver.bindAddress=127.0.0.1,使提交任务driver端可以加载到loopbackAddress,从而规避问题。
-
问题 安装集群外客户端或使用集群外客户端时,有时会出现连接Spark任务端口失败的问题。 异常信息:Failed to bind SparkUi Cannot assign requested address: Service ‘sparkDriver’ failed after 16 retries (on a random free port)! Consider explicitly setting the appropriate binding address for the service ‘sparkDriver’ (for example spark.driver.bindAddress for SparkDriver) to the correct binding address.
-
前提条件 配置前,请先购买OBS桶或并行文件系统。大数据场景推荐使用并行文件系统,并行文件系统(Parallel File System)是 对象存储服务 (Object Storage Service,OBS)提供的一种经过优化的高性能文件系统,提供毫秒级别访问时延,以及TB/s级别带宽和百万级别的IOPS,能够快速处理高性能计算(HPC)工作负载。 并行文件系统的详细介绍和使用说明,请参见《并行文件系统特性指南》。
-
(推荐)方案1:使用临时AK/SK 建议使用临时AK/SK,获取方式可参见 统一身份认证 服务_获取临时AK/SK。 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 表1 DLI获取访问凭据相关开发指南 类型 操作指导 说明 FLink作业场景 Flink Opensource SQL使用DEW管理访问凭据 Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导,将Flink作业的输出数据写入到Mysql或DWS时,在connector中设置账号、密码等属性。 Flink Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Flink作业委托临时凭证 DLI提供了一个通用接口,可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 本操作介绍获取Flink作业委托临时凭证的操作方法。 Spark作业场景 Spark Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Spark作业委托临时凭证 本操作介绍获取Spark Jar作业委托临时凭证的操作方法。
-
方案2:Spark Jar作业设置获取AK/SK 获取结果为AK/SK时,设置如下: 代码创建SparkContext val sc: SparkContext = new SparkContext() sc.hadoopConfiguration.set("fs.obs.access.key", ak) sc.hadoopConfiguration.set("fs.obs.secret.key", sk) 代码创建SparkSession val sparkSession: SparkSession = SparkSession .builder() .config("spark.hadoop.fs.obs.access.key", ak) .config("spark.hadoop.fs.obs.secret.key", sk) .enableHiveSupport() .getOrCreate() 获取结果为AK/SK和Securitytoken时,鉴权时,临时AK/SK和Securitytoken必须同时使用,设置如下: 代码创建SparkContext val sc: SparkContext = new SparkContext() sc.hadoopConfiguration.set("fs.obs.access.key", ak) sc.hadoopConfiguration.set("fs.obs.secret.key", sk) sc.hadoopConfiguration.set("fs.obs.session.token", sts) 代码创建SparkSession val sparkSession: SparkSession = SparkSession .builder() .config("spark.hadoop.fs.obs.access.key", ak) .config("spark.hadoop.fs.obs.secret.key", sk) .config("spark.hadoop.fs.obs.session.token", sts) .enableHiveSupport() .getOrCreate()
-
操作步骤 (可选)在公有云管理控制台上方的“服务列表”中选择“大数据”中的“ 数据湖探索 ”,单击右上角的“常用链接”下载DLI JDBC驱动(例如:dli-jdbc-1.1.0-jar-with-dependencies-jdk1.7.jar)。具体操作请参考下载JDBC驱动包。 JDBC认证方式支持AK/SK方式和Token方式,建议采用AK/SK方式。 询问永洪客服,获取永洪SaaS生产环境用户账号和密码。 登入永洪SaaS生产环境,输入用户账号和密码。
-
提交命令 假设用例代码打包后的jar包名为spark-hbaseContext-test-1.0.jar,并将jar包放在客户端“$SPARK_HOME”目录下,以下命令均在“$SPARK_HOME”目录执行,Java接口对应的类名前有Java字样,请参考具体样例代码进行书写。 yarn-client模式: java/scala 版本(类名等请与实际代码保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode client --class com.huawei.bigdata.spark.examples.hbasecontext.JavaHBaseBulkDeleteExample SparkOnHbaseJavaExample-1.0.jar bulktable python版本(文件名等于实际保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode client --jars SparkOnHbaseJavaExample-1.0.jar HBaseBulkDeleteExample.py bulktable yarn-cluster模式: java/scala 版本(类名等请与实际代码保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode cluster --class com.huawei.bigdata.spark.examples.hbasecontext.JavaHBaseBulkDeleteExample SparkOnHbaseJavaExample-1.0.jar bulktable python版本(文件名等于实际保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode cluster --jars SparkOnHbaseJavaExample-1.0.jar HBaseBulkDeleteExample.py bulktable
-
Python样例代码 下面代码片段仅为演示,具体代码参见SparkOnHbasePythonExample中HBaseBulkDeleteExample文件: def main(args: Array[String]) { # -*- coding:utf-8 -*- """ 【说明】 由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现 """ from py4j.java_gateway import java_import from pyspark.sql import SparkSession # 创建SparkSession spark = SparkSession\ .builder\ .appName("JavaHBaseBulkDeleteExample")\ .getOrCreate() # 向sc._jvm中导入要运行的类 java_import(spark._jvm, 'com.huawei.bigdata.spark.examples.hbasecontext.JavaHBaseBulkDeleteExample') # 创建类实例并调用方法,传递sc._jsc参数 spark._jvm.JavaHBaseBulkDeleteExample().execute(spark._jsc, sys.argv) # 停止SparkSession spark.stop()
-
打包项目 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中编包并运行Spark程序。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“$SPARK_HOME” )下。 若运行“Spark on HBase”样例程序,需要在Spark客户端的“spark-defaults.conf”配置文件中将配置项“spark.yarn.security.credentials.hbase.enabled”设置为“true”(该参数值默认为“false”,改为“true”后对已有业务没有影响。如果要卸载HBase服务,卸载前请将此参数值改回“false”),将配置项“spark.inputFormat.cache.enabled”设置为“false”。
-
打包项目 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“$SPARK_HOME” )下。 若运行“Spark on HBase”样例程序,需要在Spark客户端的“spark-defaults.conf”配置文件中将配置项“spark.yarn.security.credentials.hbase.enabled”设置为“true”(该参数值默认为“false”,改为“true”后对已有业务没有影响。如果要卸载HBase服务,卸载前请将此参数值改回“false”),将配置项“spark.inputFormat.cache.enabled”设置为“false”。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格