华为云用户手册

  • MRS 3.0.x 表3 MRS 3.0.x版本集群jar版本 组件 组件版本 jar版本 Flink 1.10.0 1.10.0-hw-ei-302002 Hive 3.1.0 3.1.0-hw-ei-302002 Tez 0.9.2 0.9.1.0101-hw-ei-12 Spark 2.4.5 2.4.5-hw-ei-302002 CarbonData 2.0.0 - Hadoop 3.1.1 3.1.1-hw-ei-302002 HBase 2.2.3 2.2.3-hw-ei-302002 ZooKeeper 3.5.6 3.5.6-hw-ei-302002 Hue 4.7.0 - Oozie 5.1.0 5.1.0-hw-ei-302002 Flume 1.9.0 - Kafka 2.4.0 2.4.0-hw-ei-302002 Ranger 2.0.0 - Storm 1.2.0 1.2.1-hw-ei-302002 Phoenix 5.0.0 5.0.0-HBase-2.0-hw-ei-302002 Presto 316 316-hw-ei-302002 scala 2.11 -
  • MRS 2.1.x 表4 MRS 2.1.x版本集群jar版本 组件 组件版本 jar版本 Zookeeper 3.5.1 3.5.1-mrs-2.1 Hadoop 3.1.1 3.1.1-mrs-2.1 HBase 2.1.1 2.1.1-mrs-2.1 Tez 0.9.1 0.9.1.0101-hw-ei-12 Hive 3.1.0 3.1.0-mrs-2.1 Hive_Spark 1.2.1 1.2.1.spark_2.3.2-mrs-2.1 Spark 2.3.2 2.3.2-mrs-2.1 Carbon 1.5.1 - Presto 308 - Kafka 1.1.0 1.1.0-mrs-2.1 KafkaManager 1.3.3.18 - Flink 1.7.0 1.7.0-mrs-2.1 Storm 1.2.1 1.2.1-mrs-2.1 Flume 1.6.0 1.6.0-mrs-2.1 Hue 3.11.0 - Loader(Sqoop) 1.99.7 1.99.7-mrs-2.1 scala 2.11 NA
  • MRS 2.0.x 表5 2.0.x版本集群jar版本 组件 组件版本 jar版本 Zookeeper 3.5.1 3.5.1-mrs-2.0 Hadoop 3.1.1 3.1.1-mrs-2.0 HBase 2.1.1 2.1.1-mrs-2.0 Tez 0.9.1 0.9.1.0101-hw-ei-12 Hive 3.1.0 3.1.0-mrs-2.0 Hive_Spark 1.2.1 1.2.1.spark_2.3.2-mrs-2.0 Spark 2.3.2 2.3.2-mrs-2.0 Carbon 1.5.1 - Presto 308 - Kafka 1.1.0 1.1.0-mrs-2.0 KafkaManager 1.3.3.18 - Storm 1.2.1 1.2.1-mrs-2.0 Flume 1.6.0 1.6.0-mrs-2.0 Hue 3.11.0 - Loader(Sqoop) 1.99.7 1.99.7-mrs-2.0 scala 2.11 -
  • MRS 3.1.0 表2 MRS 3.1.0版本集群jar版本 组件 组件版本 jar版本 Flink 1.12.0 1.12.0-hw-ei-310003 Hive 3.1.0 3.1.0-hw-ei-310003 Tez 0.9.2 0.9.1.0101-hw-ei-12 Spark2x 2.4.5 2.4.5-hw-ei-310003 CarbonData 2.0.1 - Hadoop 3.1.1 3.1.1-hw-ei-310003 HBase 2.2.3 2.2.3-hw-ei-310003 ZooKeeper 3.5.6 3.5.6-hw-ei-310003 Hue 4.7.0 - Oozie 5.1.0 5.1.0-hw-ei-310003 Flume 1.9.0 - Kafka 2.4.0 2.4.0-hw-ei-310003 Ranger 2.0.0 - Phoenix 5.0.0 5.0.0-HBase-2.0-hw-ei-310003 ClickHouse 21.3.4.25 0.3.0 Presto 316 316-hw-ei-310003 scala 2.11 -
  • MRS 3.1.5 表1 MRS 3.1.5版本集群jar版本 组件 组件版本 jar版本 Flink 1.12.2 1.12.2-hw-ei-315008 Hive 3.1.0 3.1.0-hw-ei- 315008 Tez 0.9.2 0.9.1.0101-hw-ei-315008 Spark2x 3.1.1 3.1.1-hw-ei-315008 CarbonData 2.2.0 - Hadoop 3.1.1 3.1.1-hw-ei- 315008 HBase 2.2.3 2.2.3-hw-ei- 315008 ZooKeeper 3.6.3 3.6.3-hw-ei- 315008 Hue 4.7.0 - Oozie 5.1.0 5.1.0-hw-ei-315008 Flume 1.9.0 - Kafka 2.4.0 2.4.0-hw-ei- 315008 Ranger 2.0.0 2.0.0-hw-ei-315008 Phoenix 5.0.0 5.0.0-HBase-2.0-hw-ei-315008 ClickHouse 21.3.4.25 0.3.1-hw-ei-315008 Presto 333 333-hw-ei-315008 scala 2.11 -
  • 处理流程 出现认证失败的原因很多,在不同场景中建议参考以下步骤来排查: 确认本应用所运行设备和集群网络上是否通畅,Kerberos认证所需的各类端口(TCP/UDP)是否可正常访问。 确认各个配置文件是否被正确读取到,路径是否保存正确。 确认用户名和keytab文件是按操作指导得到的。 确认各类配置信息是否已经先设置好了,再发起认证。 确认没有在同一个进程中发起多次认证,即重复调用login()方法。 若还有问题,需联系技术支持人员做进一步分析。
  • 认证失败样例 解决认证出现如下关键字:clock skew too great的问题 检查集群时间。 检查开发环境所在机器的时间,与集群时间的偏差应小于5分钟。 解决认证出现如下关键字:(Receive time out) can not connect to kdc server的问题 要检查“krb5.conf”文件内容是否正确,即是否与集群中的KerberoServer的业务IP配置相同。 检查Kerberos服务是否正常。 检查防火墙是否关闭。 解决客户端应用提交任务到hadoop集群报错,提示Failed to find any Kerberos tgt或者No valid credentials provided的问题 检查是否执行了kinit,若未执行,则先执行kinit认证操作,再提交任务。 多线程场景下,需要在进程的开始处调用hadoop提供的loginfromkeytab函数登录KDC,得到TGT,后续提交任务之前,调用reloginFromKeytab函数刷新该TGT。 //进程入口首次登录,登录成功设置userGroupInformation UserGroupInformation.loginUserFromKeytab(this.userPrincipal,this.keytabFile); //线程提交任务之前: UserGroupInformation.getLoginUser().reloginFromKeytab(); 多个脚本同时使用kinit命令认证同一个用户的场景下,需要在各个脚本中执行kinit命令之前,先执行export KRB5CCNAME=keytab_path命令,确保每个脚本进程中KRB5CCNAME指向的路径不一致。
  • MRS应用开发流程说明 通常MRS应用开发流程如下图所示,各组件应用的开发编译操作可参考组件开发指南对应章节。 图1 MRS应用开发流程 表1 MRS应用开发流程说明 阶段 说明 准备开发环境 在进行应用开发前,需首先准备开发环境,推荐使用IntelliJ IDEA工具,同时本地需完成JDK、Maven等初始配置。 准备连接集群配置文件 应用程序开发或运行过程中,需通过集群相关配置文件信息连接MRS集群,配置文件通常包括用于安全认证的用户文件,可从已创建好的MRS集群中获取相关内容。 用于程序调测或运行的节点,需要与MRS集群内节点网络互通。 配置并导入样例工程 MRS提供了不同组件场景下的多种样例程序,用户可获取样例工程并导入本地开发环境中进行程序学习。 配置安全认证 连接开启了Kerberos认证的MRS集群时,应用程序中需配置具有相关资源访问权限的用户进行安全认证。 根据业务场景开发程序 根据实际业务场景开发程序,调用组件接口实现对应功能。 编译并运行程序 将开发好的程序编译运行,用户可在本地Windows开发环境中进行程序调测运行,也可以将程序编译为Jar包后,提交到Linux节点上运行。
  • 修订记录 发布日期 修改说明 2020-04-20 第16次正式发布: 新增MRS 1.9版本样例代码,详见样例工程获取地址。 新增Alluxio应用开发章节,详见应用开发简介。 2019-11-28 第15次正式发布: 新增Impala应用开发章节,详见应用开发简介。 2019-08-14 第14次正式发布: 新增OpenTSDB应用开发章节,详见应用开发简介。 新增Flink应用开发章节,详见应用开发简介。 2019-04-02 第13次正式发布: 新增如下章节: HBase Phoenix样例代码调测 HBase python样例代码调测 应用开发简介 常用概念 开发流程 开发环境简介 准备环境 准备开发用户 准备JDBC客户端开发环境 准备HCatalog开发环境 典型场景说明 样例代码说明 调测程序 Presto接口 2019-02-01 第12次正式发布: 修改如下章节: 创建表 修改表 使用过滤器Filter 添加二级索引 使用二级索引读取数据 配置HBase文件存储 HFS的JAVA API 2019-01-25 第11次正式发布: 新增如下章节: 编译并运行程序 查看调测结果 JDBC客户端运行及结果查询 2019-01-10 第10次正式发布: 修改如下章节: Phoenix 2018-12-18 第九次正式发布: 修改如下章节: 场景说明 场景说明 场景说明 2018-12-03 第八次正式发布: 修改如下章节: 准备Linux客户端运行环境 2018-10-19 第七次正式发布: 修改如下章节: 使用Scan读取数据 运行SparkStreamingKafka样例工程时报“类不存在”问题 Storm-HDFS开发指引 Storm-OBS开发指引 2018-09-19 第六次正式发布: 新增如下章节: Spark on Yarn的client模式下spark-submit提交任务出现FileNotFoundException异常 2018-06-15 第五次正式发布: 修改如下章节: 获取MRS应用开发样例工程 2018-06-04 第四次正式发布: 翻译答疑过程中发现问题,优化描述。 2018-05-04 第三次正式发布: 修改帮助中心引入的命令换行问题。 2018-04-08 第二次正式发布。 修改如下章节: 获取MRS应用开发样例工程 2018-02-02 第一次正式发布。 父主题: 附录
  • MRS各组件样例工程汇总 样例工程获取地址参见获取MRS应用开发样例工程,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。 MRS样例代码库提供了各组件的基本功能样例工程供用户使用,当前版本各组件提供的样例工程汇总参见表1。 表1 各组件样例工程汇总 组件 样例工程位置 描述 ClickHouse clickhouse-examples 指导用户基于Java语言,实现MRS集群中的ClickHouse的数据表创建、删除以及数据的插入、查询等操作。 本工程中包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据及删除数据表等操作示例。 ClickHouseJDBC-Transaction-JavaExample ClickHouse事务开发代码样例,仅MRS 3.3.0及之后版本支持。 Doris doris-examples/doris-jdbc-example Doris数据读写操作的应用开发示例,仅MRS 3.3.0及之后版本支持。 通过调用Doris接口可实现创建用户表、向表中插入数据、查询表数据、删除表等功能 Flink 开启Kerberos认证集群的样例工程目录“flink-examples/flink-examples-security”。 未开启Kerberos认证集群的样例工程目录为“flink-examples/flink-examples-normal”。 FlinkCheckpointJavaExample Flink异步Checkpoint机制的Java/Scala示例程序。 本工程中,程序使用自定义算子持续产生数据,产生的数据为一个四元组(Long,String,String,Integer)。数据经统计后,将统计结果打印到终端输出。每隔6秒钟触发一次checkpoint,然后将checkpoint的结果保存到HDFS中。 FlinkCheckpointScalaExample FlinkHBaseJavaExample Flink API作业读写HBase数据的Java示例程序。 MRS 3.2.0及之后版本支持。 FlinkKafkaJavaExample Flink向Kafka生产并消费数据的Java/Scala示例程序。 在本工程中,假定某个Flink业务每秒就会收到1个消息记录,启动Producer应用向Kafka发送数据,然后启动Consumer应用从Kafka接收数据,对数据内容进行处理后并打印输出。 FlinkKafkaScalaExample FlinkPipelineJavaExample Flink Job Pipeline的Java/Scala示例程序。 本样例中一个发布者Job自己每秒钟产生10000条数据,另外两个Job作为订阅者,分别订阅一份数据。订阅者收到数据之后将其转化格式,并抽样打印输出。 FlinkPipelineScalaExample FlinkSqlJavaExample 使用客户端通过jar作业提交SQL作业的应用开发示例。 FlinkStreamJavaExample Flink构造DataStream的Java/Scala示例程序。 本工程示例为基于业务要求分析用户日志数据,读取文本数据后生成相应的DataStream,然后筛选指定条件的数据,并获取结果。 FlinkStreamScalaExample FlinkStreamSqlJoinExample Flink SQL Join示例程序。 本工程示例调用flink-connector-kafka模块的接口,生产并消费数据。生成Table1和Table2,并使用Flink SQL对Table1和Table2进行联合查询,打印输出结果。 FlinkRESTAPIJavaExample 本工程示例调用FlinkServer的RestAPI创建租户。 flink-examples/flink-sql 本工程示例使用Flink Jar提交SQL作业。 flink-examples/pyflink-example pyflink-kafka 本工程示例使用Python提交普通作业,提供Python读写Kafka作业的样例。 pyflink-sql 本工程示例使用Python提交SQL作业,提供Python提交SQL作业的样例。 HBase hbase-examples hbase-example HBase数据读写操作及全局二级索引的应用开发示例。通过调用HBase接口可实现以下功能: 创建用户表、导入用户数据、增加用户信息、查询用户信息及为用户表创建二级索引等功能。 MRS 3.3.0及之后版本,可实现创建/删除全局二级索引、修改全局二级索引状态、以及基于全局二级索引查询等功能。 hbase-rest-example HBase Rest接口应用开发示例。 使用Rest接口实现查询HBase集群信息、获取表、操作NameSpace、操作表等功能。 hbase-thrift-example 访问HBase ThriftServer应用开发示例。 访问ThriftServer操作表、向表中写数据、从表中读数据。 hbase-zk-example HBase访问ZooKeeper应用开发示例。 在同一个客户端进程内同时访问MRS ZooKeeper和第三方的ZooKeeper,其中HBase客户端访问MRS ZooKeeper,客户应用访问第三方ZooKeeper。 HDFS 开启Kerberos认证集群的样例工程目录“hdfs-example-security”。 未开启Kerberos认证集群的样例工程目录为“hdfs-example-normal”。 HDFS文件操作的Java示例程序。 本工程主要给出了创建HDFS文件夹、写文件、追加文件内容、读文件和删除文件/文件夹等相关接口操作示例。 hdfs-c-example HDFS C语言开发代码样例。 本示例提供了基于C语言的HDFS文件系统连接、文件操作如创建文件、读写文件、追加文件、删除文件等。 HetuEngine 开启Kerberos认证集群的样例工程目录为“hetu-examples/hetu-examples-security”。 未开启Kerberos认证集群的样例工程目录为“hetu-examples/hetu-examples-normal”。 通过不同方式连接HetuEngine的Java、Python示例程序。 通过HSFabric、HSBroker等连接方式,使用用户名和密码连接到HetuEngine,或通过KeyTab文件认证方式连接HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。 Hive hive-examples hive-jdbc-example Hive JDBC处理数据Java示例程序。 本工程使用JDBC接口连接Hive,在Hive中执行相关数据操作。使用JDBC接口实现创建表、加载数据、查询数据等功能,还可实现在同一个客户端进程内同时访问 FusionInsight ZooKeeper和第三方的ZooKeeper。 hive-jdbc-example-multizk hcatalog-example Hive HCatalog处理数据Java示例程序。 使用HCatalog接口实现通过Hive命令行方式对MRS Hive元数据进行数据定义和查询操作。 python-examples 使用Python连接Hive执行SQL样例。 可实现使用Python对接Hive并提交数据分析任务。 python3-examples 使用Python3连接Hive执行SQL样例。 可实现使用Python3对接Hive并提交数据分析任务。 IoTDB iotdb-examples iotdb-flink-example 通过Flink访问IoTDB数据的示例程序,包括FlinkIoTDBSink和FlinkIoTDBSource。 FlinkIoTDBSink可实现通过Flink job将时序数据写入到IoTDB中。FlinkIoTDBSource则通过Flink job将时序数据从IoTDB读取出来并且打印。 iotdb-jdbc-example IoTDB JDBC处理数据Java示例程序。 本示例演示了如何使用JDBC接口连接IoTDB,并执行IoTDB SQL语句。 iotdb-kafka-example 通过Kafka访问IoTDB数据的示例程序。 本示例演示了如何先将时序数据发送到Kafka,再使用多线程将数据写入到IoTDB中。 iotdb-session-example IoTDB Session处理数据Java示例程序。 本示例演示了如何使用Session方式连接IoTDB,并执行IoTDB SQL语句。 iotdb-udf-exmaple 该样例程序介绍了如何实现一个简单的IoTDB自定义函数(UDF)。 Kafka kafka-examples Kafka流式数据的处理Java示例程序。 本工程基于Kafka Streams完成单词统计功能,通过读取输入Topic中的消息,统计每条消息中的单词个数,从输出Topic消费数据,然后将统计结果以Key-Value的形式输出。 Manager manager-examples FusionInsight Manager API接口调用示例。 本工程调用Manager API接口实现集群用户的创建、修改及删除等操作。 MapReduce 开启Kerberos认证集群的样例工程目录“mapreduce-example-security”。 未开启Kerberos认证集群的样例工程目录为“mapreduce-example-normal”。 MapReduce任务提交Java示例程序。 本工程提供了一个MapReduce统计数据的应用开发示例,实现数据分析、处理,并输出满足用户需要的数据信息。 另外以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。 Oozie 开启Kerberos认证集群的样例工程目录“oozie-examples/ooziesecurity-examples”。 未开启Kerberos认证集群的样例工程目录为“oozie-examples/oozienormal-examples”。 OozieMapReduceExample Oozie提交MapReduce任务示例程序。 本示例演示了如何通过Java API提交MapReduce作业和查询作业状态,对网站的日志文件进行离线分析。 OozieSparkHBaseExample 使用Oozie调度Spark访问HBase的示例程序。 OozieSparkHiveExample 使用Oozie调度Spark访问Hive的示例程序。 Spark 开启Kerberos认证集群的样例工程目录“spark-examples/sparksecurity-examples”。 未开启Kerberos认证集群的样例工程目录为“spark-examples/sparknormal-examples”。 SparkHbasetoCarbonJavaExample Spark同步HBase数据到CarbonData的Java示例程序。 本示例工程中,应用将数据实时写入HBase,用于点查业务。数据每隔一段时间批量同步到CarbonData表中,用于分析型查询业务。 SparkHbasetoHbaseJavaExample Spark从HBase读取数据再写入HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现两个HBase表数据的分析汇总。 SparkHbasetoHbasePythonExample SparkHbasetoHbaseScalaExample SparkHivetoHbaseJavaExample Spark从Hive读取数据再写入到HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现分析处理Hive表中的数据,并将结果写入HBase表。 SparkHivetoHbasePythonExample SparkHivetoHbaseScalaExample SparkJavaExample Spark Core任务的Java/Python/Scala/R示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 SparkRExample示例不支持未开启Kerberos认证的集群。 SparkPythonExample SparkScalaExample SparkRExample SparkLauncherJavaExample 使用Spark Launcher提交作业的Java/Scala示例程序。 本工程应用程序通过org.apache.spark.launcher.SparkLauncher类采用Java/Scala命令方式提交Spark应用。 SparkLauncherScalaExample SparkOnHbaseJavaExample Spark on HBase场景的Java/Scala/Python示例程序。 本工程应用程序以数据源的方式去使用HBase,将数据以Avro格式存储在HBase中,并从中读取数据以及对读取的数据进行过滤等操作。 SparkOnHbasePythonExample SparkOnHbaseScalaExample SparkOnHudiJavaExample Spark on Hudi场景的Java/Scala/Python示例程序。 本工程应用程序使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。 SparkOnHudiPythonExample SparkOnHudiScalaExample SparkOnMultiHbaseScalaExample Spark同时访问两个集群中的HBase的Scala示例程序。 本示例不支持未开启Kerberos认证的集群。 SparkSQLJavaExample Spark SQL任务的Java/Python/Scala示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 SparkSQLPythonExample SparkSQLScalaExample SparkStreamingKafka010JavaExample Spark Streaming从Kafka接收数据并进行统计分析的Java/Scala示例程序。 本工程应用程序实时累加计算Kafka中的流数据,统计每个单词的记录总数。 SparkStreamingKafka010ScalaExample SparkStreamingtoHbaseJavaExample010 Spark Streaming读取Kafka数据并写入HBase的Java/Scala/Python示例程序。 本工程应用程序每5秒启动一次任务,读取Kafka中的数据并更新到指定的HBase表中。 SparkStreamingtoHbasePythonExample010 SparkStreamingtoHbaseScalaExample010 SparkStructuredStreamingJavaExample 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。 SparkStructuredStreamingPythonExample SparkStructuredStreamingScalaExample SparkThriftServerJavaExample 通过JDBC访问Spark SQL的Java/Scala示例程序。 本示例中,用户自定义JD BCS erver的客户端,使用JDBC连接来进行表的创建、数据加载、查询和删除。 SparkThriftServerScalaExample StructuredStreamingADScalaExample 使用Structured Streaming,从kafka中读取广告请求数据、广告展示数据、广告点击数据,实时获取广告有效展示统计数据和广告有效点击统计数据,将统计结果写入kafka中。 StructuredStreamingStateScalaExample 在Spark结构流应用中,跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。 SpringBoot(MRS 3.3.0及之后版本支持) clickhouse-examples clickhouse-rest-client-example SpringBoot连接ClickHouse服务应用开发示例。 本示例中,包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据等操作示例。 doris-examples doris-rest-client-example Doris数据读写操作的SpringBoot应用开发示例。 提供SpringBoot连接Doris的样例程序。 flink-examples flink-dws-read-example GaussDB (DWS) SpringBoot方式连接Flink服务的应用开发示例。 flink-dws-sink-example hbase-examples SpringBoot连接Phoenix应用开发示例。 提供SpringBoot连接HBase与Phoenix的样例程序。 hive-examples hive-rest-client-example SpringBoot连接Hive应用开发示例。 本工程使用SpringBoot方式连接Hive,在Hive中执行创建表、加载数据、查询数据、删除表等操作。 kafka-examples SpringBoot连接Kafka实现Topic生产消费的应用开发示例。
  • 通过HSFabric实现KeyTab文件认证 KeyTab文件认证,需要“jaas-zk.conf”、“krb5.conf”和“user.keytab”文件。 “krb5.conf”和“user.keytab”文件参考MRS应用开发安全认证说明章节获得。 “jaas-zk.conf”文件如下定义,“principal”为MRS应用开发安全认证说明中添加的认证用户名称+@+ 域名 (域名为“krb5.conf”文件中的“default_realm”字段值,例如“HADOOP.COM”),“keyTab”为“user.keytab”文件的路径。 Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/opt/client/user.keytab" principal="hivetest@系统域名" useTicketCache=false storeKey=true debug=true; }; “jaas-zk.conf”配置文件中“keyTab”的路径需根据实际的路径修改。 例如: Windows路径:“D:\\hetu-examples\\hetu-examples-security\\src\\main\\resources\\user.keytab”。 Linux路径:“/opt/client/user.keytab”。 父主题: 准备安全认证
  • MRS组件应用开发快速入门 MRS对外提供了基于组件的应用开发样例工程,以下相关快速入门可指导您创建MRS集群后,获取并导入样例工程,并在本地进行编译调测即可实现相应组件的应用开发: HBase应用开发快速入门可实现HBase表创建、数据插入、索引创建、表删除等操作。 HDFS应用开发快速入门可实现HDFS文件目录创建、文件写入、读取、删除等操作。 Hive JDBC应用开发快速入门可实现使用JDBC连接Hive后,在Hive中执行创建表、插入数据、读取数据等操作。 Hive HCatalog应用开发快速入门可实现使用HCatalog连接Hive后,在Hive中创建表、插入数据、读取数据等操作。 Kafka应用开发快速入门可实现流式数据的处理。 Flink应用开发快速入门可实现Flink DataStream程序处理数据操作。 ClickHouse应用开发快速入门可实现ClickHouse表创建、删除以及数据的插入、查询等操作。 Spark应用开发快速入门可实现从Hive表中读取数据并重新写入HBase表操作。
  • 认证代码实例讲解 package com.huawei.bigdata.hdfs.examples; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.security.UserGroupInformation; public class KerberosTest { private static String PATH_TO_HDFS_SITE_XML = KerberosTest.class.getClassLoader().getResource("hdfs-site.xml") .getPath(); private static String PATH_TO_CORE_SITE_XML = KerberosTest.class.getClassLoader().getResource("core-site.xml") .getPath(); private static String PATH_TO_KEYTAB = KerberosTest.class.getClassLoader().getResource("user.keytab").getPath(); private static String PATH_TO_KRB5_CONF = KerberosTest.class.getClassLoader().getResource("krb5.conf").getPath(); private static String PRNCIPAL_NAME = "develop"; private FileSystem fs; private Configuration conf; /** * initialize Configuration */ private void initConf() { conf = new Configuration(); // add configuration files conf.addResource(new Path(PATH_TO_HDFS_SITE_XML)); conf.addResource(new Path(PATH_TO_CORE_SITE_XML)); } /** * login Kerberos to get TGT, if the cluster is in security mode * @throws IOException if login is failed */ private void login() throws IOException { // not security mode, just return if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) { return; } //security mode System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB); } /** * initialize FileSystem, and get ST from Kerberos * @throws IOException */ private void initFileSystem() throws IOException { fs = FileSystem.get(conf); } /** * An example to access the HDFS * @throws IOException */ private void doSth() throws IOException { Path path = new Path("/tmp"); FileStatus fStatus = fs.getFileStatus(path); System.out.println("Status of " + path + " is " + fStatus); //other thing } public static void main(String[] args) throws Exception { KerberosTest test = new KerberosTest(); test.initConf(); test.login(); test.initFileSystem(); test.doSth(); } } Kerberos认证时需要配置Kerberos认证所需要的文件参数,主要包含keytab路径,Kerberos认证的用户名称,Kerberos认证所需要的客户端配置krb5.conf文件。 方法login()为调用hadoop的接口执行Kerberos认证,生成TGT票据。 方法doSth()调用hadoop的接口访问文件系统,此时底层RPC会自动携带TGT去Kerberos认证,生成ST票据。 以上代码可在安全模式下的HDFS二次开发样例工程中创建KerberosTest.java,运行并查看调测结果,具体操作过程请参考HDFS开发指南(安全模式)。
  • 认证失败样例 解决认证出现如下关键字:clock skew too great的问题 检查集群时间。 检查开发环境所在机器的时间,与集群时间的偏差应小于5分钟。 解决认证出现如下关键字:(Receive time out) can not connect to kdc server的问题 要检查“krb5.conf”文件内容是否正确,即是否与集群中的KerberoServer的业务IP配置相同。 检查Kerberos服务是否正常。 检查防火墙是否关闭。 解决客户端应用提交任务到hadoop集群抛异常,提示Failed to find any Kerberos tgt或者No valid credentials provided的问题 检查是否执行了kinit,若未执行,则先执行kinit认证操作,再提交任务。 多线程场景下,需要在进程的开始处调用hadoop提供的loginfromkeytab函数登录KDC,得到TGT,后续提交任务之前,调用reloginFromKeytab函数刷新该TGT。 //进程入口首次登录,登录成功设置userGroupInformation UserGroupInformation.loginUserFromKeytab(this.userPrincipal,this.keytabFile); //线程提交任务之前: UserGroupInformation.getLoginUser().reloginFromKeytab(); 多个脚本同时使用kinit命令认证同一个用户的场景下,需要在各个脚本中执行kinit命令之前,先执行export KRB5CCNAME=keytab_path命令,确保每个脚本进程中KRB5CCNAME指向的路径不一致。
  • 处理流程 出现认证失败的原因很多,在不同场景中建议参考以下步骤来排查: 确认本应用所运行设备和集群网络上是否通畅,Kerberos认证所需的各类端口(TCP/UDP)是否可正常访问。 确认各个配置文件是否被正确读取到,路径是否保存正确。 确认用户名和keytab文件是按操作指导得到的。 确认各类配置信息是否已经先设置好了,再发起认证。 确认没有在同一个进程中发起多次认证,即重复调用login()方法。 若还有问题,需联系技术支持人员做进一步分析。
  • Hive SQL Hive SQL支持Hive-3.1.0版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。 FusionInsight系统提供的扩展Hive语句如表1所示。 表1 扩展Hive语句 扩展语法 语法说明 语法示例 示例说明 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ...... [TBLPROPERTIES ("groupId"=" group1 ","locatorId"="locator1")] ...; 创建一个hive表,并指定表数据文件分布的locator信息。详细说明请参见使用HDFS Colocation存储Hive表。 CREATE TABLE tab1 (id INT, name STRING) row format delimited fields terminated by '\t' stored as RCFILE TBLPROPERTIES("groupId"=" group1 ","locatorId"="locator1"); 创建表tab1,并指定tab1的表数据分布在locator1节点上。 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ... [TBLPROPERTIES ('column.encode.columns'='col_name1,col_name2'| 'column.encode.indices'='col_id1,col_id2', 'column.encode.classname'='encode_classname')]...; 创建一个hive表,并指定表的加密列和加密算法。详细说明请参见使用Hive列加密功能。 create table encode_test(id INT, name STRING, phone STRING, address STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ('column.encode.indices'='2,3', 'column.encode.classname'='org.apache.hadoop.hive.serde2. SMS 4Rewriter') STORED AS TEXTFILE; 创建表encode_test,并指定插入数据时对第2、3列加密,加密算法类为org.apache.hadoop.hive.serde2.SMS4Rewriter。 REMOVE TABLE hbase_tablename [WHERE where_condition]; 删除hive on hbase表中符合条件的数据。详细说明请参见删除Hive on HBase表中的单行记录。 remove table hbase_table1 where id = 1; 删除表中符合条件“id =1”的数据。 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] STORED AS inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 创建hive表,并设定表可以指定自定义行分隔符。详细说明请参见自定义行分隔符。 create table blu(time string, num string, msg string) row format delimited fields terminated by ',' stored as inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 创建表blu,指定inputformat为SpecifiedDelimiterInputFormat,以便查询时可以指定表的查询行分隔符。 父主题: 对外接口
  • 产品优势 表1 产品优势 开箱即用 一键安装部署即可监控Kubernetes以及各类云产品。 一键接入各种应用组件及告警工具。 低成本 多种指标免费用,覆盖Kubernetes标准组件。 提供全托管式服务,无需另购资源,可降低监控成本,且维护成本几乎为零。 与CCE集成并提供监控服务,容器监控体系创建时间从2天降低至10分钟。一个Prometheus For CCE实例可以上报多个CCE集群数据。 开源兼容 支持自定义多维数据模型、HTTP API模块、PromQL查询。 静态文件配置和动态发现机制发现监控对象,实现轻松迁移及接入。 数据规模无上限 凭借 云存储 能力,数据存储无上限,不再受限于本地容量。云端分布式存储保障数据可靠性。 通过Prometheus实例 for 多账号聚合实例将多个资源账号的指标数据汇聚到一个Prometheus实例,实现统一监控。 高性能 相较开源版本结构更轻量,资源消耗更低。通过单进程一体化Agent监控Kubernetes集群,采集性能提升20倍。 Agent部署在用户侧,保留原生采集能力同时能够最大程度的减少资源的使用。 通过采集存储分离架构,全面提升整体性能。 采集组件优化,提升单副本采集能力,降低资源消耗。 通过多副本横向扩展均衡分解采集任务,实现动态扩缩,解决开源水平扩展问题。 高可用性 双副本:数据采集、处理和存储组件支持多副本横向扩展,核心数据链路高可用。 水平扩展:基于集群规模可直接进行弹性扩容。 父主题: Prometheus监控简介
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和GaussDB(for MySQL)为源且连接方式为输入IP地址的单主灾备任务,在灾备阶段支持修改IP、端口、用户名信息。当业务库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于业务数据库IP地址变化场景,修改前后的IP必须属于同一个 数据实例 ,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空灾备数据库的数据。
  • 网络配置流程 创建VPC对等连接。 同账号建立VPC对等连接的方法,可参考《创建相同账户下的对等连接》。 不同账号建立VPC对等连接的方法,可参考《创建不同账户下的对等连接》。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信,详细操作可参考添加VPC对等连接路由。 在添加对等路由时,建议添加网段路由信息。如果添加点对点路由,DRS任务重建后实例IP会发生改变,此时需要重新添加路由,否则会导致网络不通。 创建DRS实例,并获取DRS实例私有IP地址。 DRS迁移实例创建成功后,界面会显示DRS迁移实例的私有IP地址。 图3 DRS实例私有IP 配置源库所在安全组和源库所在子网的网络ACL。 安全组:增加云数据库安全组入方向规则,放通DRS私网IP作为源地址可以访问云数据库监听端口。 网络ACL:VPC默认没有网络ACL,如果您设置过网络ACL,需要增加入方向规则,允许放通DRS私网IP作为源地址、随机端口作为源端口范围,RDS源数据库的IP作为目的地址、监听端口作为目的端口范围。 配置DRS迁移实例所在安全组和DRS所在子网的网络ACL。 VPC默认没有网络ACL,默认安全组的规则在出方向数据全部放行,DRS迁移实例和目标RDS数据库在相同安全组默认互通,所以在默认场景下无需配置。 如果您设置过网络ACL或安全组,请登录VPC管理控制台进行检查和配置。 安全组:确保DRS私网IP出方向到源数据库的IP、监听端口放通。 网络ACL:确保DRS私网IP、随机端口出方向和源数据库的IP、监听端口放通。 测试连接。 登录DRS控制台,单击已经创建的DRS任务操作列的“编辑”,重新进入“源库及目标库”界面,输入源数据库IP、端口、用户名、密码进行测试连接。
  • 网络配置流程 创建VPC对等连接。 同账号建立VPC对等连接的方法,可参考《创建相同账户下的对等连接》。 不同账号建立VPC对等连接的方法,可参考《创建不同账户下的对等连接》。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信,详细操作可参考添加VPC对等连接路由。 在添加对等路由时,建议添加网段路由信息。如果添加点对点路由,DRS任务重建后实例IP会发生改变,此时需要重新添加路由,否则会导致网络不通。 创建DRS实例,并获取DRS实例私有IP地址。 DRS迁移实例创建成功后,界面会显示DRS迁移实例的私有IP地址。 图3 DRS实例私有IP 配置源库所在安全组和源库所在子网的网络ACL。 安全组:增加云数据库安全组入方向规则,放通DRS私网IP作为源地址可以访问云数据库监听端口。 网络ACL:VPC默认没有网络ACL,如果您设置过网络ACL,需要增加入方向规则,允许放通DRS私网IP作为源地址、随机端口作为源端口范围,RDS源数据库的IP作为目的地址、监听端口作为目的端口范围。 华为云E CS 自建数据库添加白名单。 华为云ECS自建数据库需要添加迁移账号使用DRS私有 IP访问数据库的权限。各种数据库添加白名单的方法不同,请参考各数据库官方文档进行操作。 配置DRS迁移实例所在安全组和DRS所在子网的网络ACL。 VPC默认没有网络ACL,默认安全组的规则在出方向数据全部放行,DRS迁移实例和目标RDS数据库在相同安全组默认互通,所以在默认场景下无需配置。 如果您设置过网络ACL或安全组,请登录VPC管理控制台进行检查和配置。 安全组:确保DRS私网IP出方向到源数据库的IP、监听端口放通。 网络ACL:确保DRS私网IP、随机端口出方向和源数据库的IP、监听端口放通。 测试连接。 登录DRS控制台,单击已经创建的DRS任务操作列的“编辑”,重新进入“源库及目标库”界面,输入源数据库IP、端口、用户名、密码进行测试连接。
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和GaussDB(for MySQL)为源且连接方式为输入IP地址的任务,在增量阶段支持修改IP、端口、用户名信息。当源库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于源库IP地址变化场景,修改前后的IP必须属于同一个数据实例,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空目标数据库的数据。
  • 方法一 在“实时同步管理”页面,选择需要修改同步对象的任务,单击操作列的“编辑”按钮。 图1 编辑实时同步对象 进入“设置同步”页面,修改需要同步的对象,单击“下一步”。 选择对象时可对展开的库进行搜索,搜索支持正则表达式。 当对象名称包含空格时,名称前后的空格不显示,中间如有多个空格只显示一个空格。 选择的同步对象名称中不能包含空格。 在“数据加工”页面,可参考数据加工章节,为新增加表设置相关规则。 任务再编辑时,已经同步的表不支持修改加工规则。 在“预检查”页面,进行同步任务预校验,校验是否可进行。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。 预检查不通过项处理建议请参见《 数据复制服务 用户指南》中的“预检查不通过项修复方法”。 预检查完成后,且所有检查项结果均通过时,单击“下一步”。 所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。 在“任务确认”页面,确认同步任务信息无误后,单击“启动任务”,提交同步任务。 返回“实时同步管理”,在同步任务列表中,当前任务状态显示为“增量同步”,并生成任务状态为“任务变更中”的子任务,待子任务变更完成后,开始对编辑后的同步对象进行增量同步。
  • DRS任务创建后支持修改源或目标数据库吗 DRS在任务创建后、启动前的配置状态时,支持修改源或者目标数据库。 入云链路:支持修改源数据库,不支持修改目标数据库。目标数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 出云链路:支持修改目标数据库信息,不支持修改源数据库。源数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 自建-自建链路:支持修改源和目标数据库信息。 DRS在任务提交启动后,源和目标数据库均不支持更换,仅支持修改数据库连接密码。 父主题: 通用操作
  • 计费标准 表1 按需计费标准 计费项 计费说明 配置费(必选) 指计算和存储资源及数据处理的费用,按照实际使用时长计费,以自然小时为单位整点计费,不足一小时按照实际使用时长计费。 弹性公网IP费用(可选) 指公网访问产生的数据处理和数据流量费用。如果创建公网网络任务,您需要购买弹性公网IP。 华为云DRS配置费用详情,请参见产品价格详情。您可以通过DRS提供的价格计算器,选择您需要的配置规格,来快速计算出参考价格。
  • 基础指标:node-exporter指标 介绍通过中间件Exporter上报到 AOM 的node-exporter指标的类别、名称、含义等信息。 表1 CCE/自建K8s集群容器指标 Job名称 指标 指标含义 node-exporter node_filesystem_size_bytes 挂载的文件系统占用空间 node_filesystem_readonly 只读挂载的文件系统 node_filesystem_free_bytes 挂载的文件系统剩余空间 node_filesystem_avail_bytes 挂载的文件系统可用空间 node_cpu_seconds_total 节点CPU时间 node_network_receive_bytes_total 累积接收数据总量 node_network_receive_errs_total 接收时遇到的错误累积计数 node_network_transmit_bytes_total 累积传输数据总量 node_network_receive_packets_total 接收数据包的累积计数 node_network_transmit_drop_total 传输时丢弃的累积计数 node_network_transmit_errs_total 传输时遇到的错误累积计数 node_network_up 网卡的状态 node_network_transmit_packets_total 传输数据包的累积计数 node_network_receive_drop_total 接收时丢弃的累积计数 go_gc_duration_seconds 数据来自调用debug.ReadGCStats(),调用该函数时,会将传入参数GCStats结构体的PauseQuantile字段设置为5,这样函数将会返回最小、25%、50%、75% 和最大,这5个GC暂停时间百分位数。然后prometheus Go客户端根据返回的GC暂停时间百分位数、以及NumGC和PauseTotal变量创建摘要类型指标。 node_load5 节点5分钟CPU负载 node_filefd_allocated 已分配的文件描述符 node_exporter_build_info NodeExporter构建信息 node_disk_written_bytes_total 写入成功的字节总数 node_disk_writes_completed_total 写入完成的次数 node_disk_write_time_seconds_total 写入花费的总时长 node_nf_conntrack_entries 链接状态跟踪表分配的数量 node_nf_conntrack_entries_limit 链接状态跟踪表总量 node_processes_max_processes PID限制值 node_processes_pids PID个数 node_sockstat_TCP_alloc 已分配的TCP套接字数量 node_sockstat_TCP_inuse 正在使用的TCP套接字数量 node_sockstat_TCP_tw 等待关闭的TCP连接数 node_timex_offset_seconds 时钟时间偏移 node_timex_sync_status 节点时钟同步状态 node_uname_info 节点uname信息 node_vmstat_pgfault /proc/vmstat中的pgfault node_vmstat_pgmajfault /proc/vmstat中的pgmajfault node_vmstat_pgpgin /proc/vmstat中的pgpgin node_vmstat_pgpgout /proc/vmstat中的pgpgout node_disk_reads_completed_total 读取完成的次数 node_disk_read_time_seconds_total 读取花费的总时长 process_cpu_seconds_total 该指标计算使用到utime(Go进程执行在用户态模式下的滴答数)和stime(Go进程执行在内核态时候的滴答数,例如系统调用时),参数的单位为jiffies,jiffy描述了两次系统定时器中断之间的滴答时间。process_cpu_seconds_total等于utime和stime之和除以USER_HZ。即将程序滴答总数除以 Hz(每秒滴答数)得到就是操作系统运行该进程的总时间(以秒为单位)。 node_disk_read_bytes_total 读取成功的字节总数 node_disk_io_time_weighted_seconds_total 执行I/O所花费的加权秒数 node_disk_io_time_seconds_total I/O总耗时 node_disk_io_now 当前运行的I/O数量 node_context_switches_total 上下文切换次数 node_boot_time_seconds 节点开机时间 process_resident_memory_bytes 即RSS(Resident Set Size),指的是常驻内存集,是进程实际使用的内存,他不包括分配但未使用的内存,也不包括换出的内存页面,但包含共享内存。 node_intr_total 节点中断总数 node_load1 节点1分钟CPU负载 go_goroutines 通过runtime.NumGoroutine()调用获取,基于调度器结构sched和全局allglen变量计算得来。由于sched结构体的所有字段可能并发的更改,因此最后会检查计算的值是否小于1,如果小于1,那么返回1。 scrape_duration_seconds 采集scrape target花费的时间 node_load15 节点15分钟CPU负载 scrape_samples_post_metric_relabeling metric被重设标签后,剩余sample数量 node_netstat_Tcp_PassiveOpens 从LISTEN 状态直接转换到SYN-RCVD 状态的TCP连接数 scrape_samples_scraped scrape target暴露的sample数量 node_netstat_Tcp_CurrEstab 当前状态为ESTABLISHED 或CLOSE-WAIT 的TCP 连接数 scrape_series_added scrape target新增加的系列数 node_netstat_Tcp_ActiveOpens 从CLOSED 状态直接转换到SYN-SENT 状态的TCP连接数 node_memory_MemTotal_bytes 节点内存总量 node_memory_MemFree_bytes 节点空闲内存 node_memory_MemAvailable_bytes 节点可用内存 node_memory_Cached_bytes 节点页面缓存中的内存 up scrape target的状态 node_memory_Buffers_bytes 节点缓冲区的内存 父主题: 指标总览
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/v2x-edges/{v2x_edge_id} Content-Type:application/json X-Auth-Token:******** Instance-Id:******** { "name" : "v2xEdge001", "description" : "v2xEdge 001", "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ] }
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 v2x_edge_id String 参数说明:Edge ID,用于唯一标识一个Edge 最小长度:0 最大长度:255 name String 参数说明:名称。 取值范围:长度不低于1不超过128,只允许中文、字母、数字、下划线(_)、连接符(-)的组合。 description String 参数说明:Edge描述。 取值范围:长度不超过255,只允许中文、字母、数字、下划线(_)、中文分号(;)、中文冒号(:)、中文问号(?)、中文感叹号(!)中文逗号(,)、中文句号(。)、英文引号(;)、英文冒号(:)、英文逗号(,)、英文句号(.)、英文问号(?)、英文感叹号(!)、顿号(、)、连接符(-)的组合。 最小长度:0 最大长度:255 esn String 参数说明:设备编码,全局唯一。 取值范围:长度不超过64,只允许字母、数字、以及_等字符的组合。 ip String 参数说明:网络IP,例如127.0.0.1。 port Integer ITS800,ATLAS 端口号 最小值:0 最大值:65535 hardware_type String 参数说明:硬件类型。 取值范围:ITS800 或者 ATLAS server_protocol_type String 参数说明:v2xedge作为服务端的协议类型。 取值范围:http 或者 https 缺省值:http server_cert String 参数说明:v2xedge作为服务端,pem格式的证书。 最小长度:0 最大长度:4096 position_description String 参数说明:安装位置编码,由用户自定义。 取值范围:长度不低于1不超过128,只允许字母、数字、下划线(_)的组合。 location Location object 参数说明:经纬度坐标。 local_rsus Array of strings 参数说明:Edge关联的本地RSU列表。 最大长度:255 数组长度:0 - 32 local_segment_rsus Array of LocalSegmentRsu objects 参数说明:Edge管理的分段所关联的本地RSU列表。 数组长度:0 - 32 edge_general_config EdgeGeneralConfigInResponse object Edge通用配置。 edge_advance_config Object Edge高级配置,Json格式 最大长度:4096 status String "参数说明:状态。 取值范围: UNINSTALLED: 待部署 INSTALLED:部署中 OFFLINE:离线 ONLINE:在线: UPGRADING:升级中 DELETING:删除中 node_id String 边缘管理服务返回的node_id,用于关联EdgeManager的资源 最小长度:0 最大长度:255 created_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 last_modified_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 表9 Location 参数 参数类型 描述 lat Number 参数说明:定义纬度数值,北纬为正,南纬为负,单位°,精度小数点后7位。 最小值:-90 最大值:90 lon Number 参数说明:定义经度数值。东经为正,西经为负。单位°,精度小数点后7位。 最小值:-180 最大值:180 表10 LocalSegmentRsu 参数 参数类型 描述 segment_id String 参数说明:分段Id,填写雷达设备对应序号(sequence_no)。 取值范围:数字字符串。 最小长度:1 最大长度:4 rsu_esn String 参数说明:RSU的设备序列号。 取值范围:只允许长度不小于1、最大为64,字母、数字、下划线(_)的组合。 最小长度:1 最大长度:64 表11 EdgeGeneralConfigInResponse 参数 参数类型 描述 avp_enabled Boolean 参数说明:AVP场景。 rsm_enabled Boolean 参数说明:RSM上报:默认不上报。 time_compensate Boolean 参数说明:时延补偿:是否启动Edge时延补偿功能。 rsi_positioning_enabled Boolean 参数说明:RSI事件定位功能。 log_level String 参数说明:应用日志级别 取值范围:on/off,默认关闭。 缺省值:off road_detection_length Double 参数说明:道路检测长度,单位:米。 最小值:1 最大值:1000 ramp_detection_length Double 参数说明:匝道检测长度,单位:米。 最小值:1 最大值:1000 gat1400_username String 参数说明:edge作为服务端单用户鉴权的用户名。如需配置多套鉴权用户,请使用edge_authentications。不能和edge_authentications同时使用,建议使用edge_authentications。 取值范围:长度不小于8,不大于32,只允许数字字母下划线组合,且不能以数字下划线开头,不能有中文和特殊字符,gat1400用户名不能与gat1400密码相同。 edge_authentications Array of ResponseEdgeAuthentication objects 参数说明:edge作为服务端的多用户鉴权信息,和gat1400_username(单个鉴权用户)不可同时使用,建议使用该字段。 数组长度:0 - 10 user_name String 参数说明:ITS800鉴权用的用户名。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、问号(?)、反引号(')、井号(#)、左小括号(()、右小括号())、点(.)、逗号(,)、与(&)、百分号(%)、At(@)、感叹号(!)、连接符(-)的组合。 表12 ResponseEdgeAuthentication 参数 参数类型 描述 user_name String 参数说明:edge接口鉴权用户名。 取值范围:长度不小于8,不大于32,只允许数字字母下划线组合,且不能以数字下划线开头,不能有中文和特殊字符,用户名不能与密码相同。
  • 响应示例 状态码: 200 OK { "v2x_edge_id" : "ab6cb4ca-bc7a-4b3d-8629-7212c5d9a6b0", "name" : "NAMEMC007", "description" : "test", "esn" : "esn123", "ip" : "127.0.0.1", "port" : "65535", "hardware_type" : "ATLAS", "server_protocol_type" : "http", "server_cert" : null, "position_description" : "K08", "location" : { "lat" : 0, "lon" : 0 }, "local_rsus" : [ ], "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ], "edge_general_config" : { "avp_enabled" : true, "rsm_enabled" : true, "time_compensate" : true, "log_level" : "off", "road_detection_length" : 10, "ramp_detection_length" : 10, "edge_authentications" : [ { "user_name" : "dris_user" } ], "gat1400_username" : null, "user_name" : "dris_user" }, "edge_advance_config" : { "key" : "value", "key1" : { "inner_key1" : "inner_value1" } }, "status" : "INSTALLED", "node_id" : "536434354358674544874543587", "created_time" : "2020-09-01T01:37:01Z", "last_modified_time" : "2020-09-01T01:37:01Z" }
  • 功能介绍 升级边缘应用前需确保: Edge处于在线状态。相关方法请参见:“查询Edge”接口。 待升级的应用版本状态已更新至发布。相关方法请参见:“更新应用版本状态”接口。 如升级边缘应用接口调用成功,稍后边缘设备将会自动升级至新版本无需手动操作。自动安装完成后应用将处于运行中的状态。 关于应用在设备侧升级的耗时问题:   从边缘应用升级成功到处于运行中状态的耗时取决于边缘设备所处的网络状况以及应用镜像包的大小,可通过查询边缘应用获取边缘应用部署状态。相关方法请参见:“查询边缘应用”接口。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 v2x_edge_id String 参数说明:Edge ID,用于唯一标识一个Edge。 最小长度:0 最大长度:255 edge_app_id String 参数说明:用户自定义应用唯一ID。 最小长度:1 最大长度:32 app_version String 参数说明:应用版本,比如1.0.0。 最小长度:1 最大长度:32 status String 参数说明:应用部署状态。 取值范围: UNINSTALLED:待部署 INSTALLED:部署中 OFFLINE:离线 ONLINE:在线 UPGRADING:升级中 DELETING:删除中 RUNNING:运行中
共100000条