云服务器内容精选

  • 为MRS集群配置委托 配置存算分离支持在新建集群中配置委托实现,也可以通过为已有集群绑定委托实现。本示例以为已有集群配置委托为例介绍。 登录MRS控制台,在导航栏选择“现有集群”。 单击集群名称,进入集群详情页面。 在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“单击同步”进行IAM用户同步。 在集群详情页的“概览”页签,单击“委托”右侧的“管理委托”选择创建ECS委托的委托并单击“确定”进行绑定,或单击“新建委托”进入IAM控制台进行创建后再在此处进行绑定。 图3 绑定委托
  • Hive访问OBS文件系统 用root用户登录集群Master节点,具体请参见登录集群节点。 验证Hive访问OBS。 用root用户登录集群Master节点,执行如下命令: cd /opt/Bigdata/client source bigdata_env source Hive/component_env 查看文件系统mrs-demo01下面的文件列表。 hadoop fs -ls obs://mrs-demo01/ 返回文件列表即表示访问OBS成功。 图5 查看mrs-demo01下的文件列表 执行以下命令进行用户认证(普通模式即未开启Kerberos认证无需执行此步骤)。 kinit hive 输入用户hive密码,默认密码为Hive@123,第一次使用需要修改密码。 执行Hive组件的客户端命令。 beeline 在beeline中直接使用OBS的目录进行访问。例如,执行如下命令创建Hive表并指定数据存储在mrs-demo01文件系统的test_demo01目录中。 create table test_demo01(name string) location "obs://mrs-demo01/test_demo01"; 执行如下命令查询所有表,返回结果中存在表test_demo01,即表示访问OBS成功。 show tables; 图6 查看是否存在表test_demo01 查看表的Location。 show create table test_demo01; 查看表的Location是否为“obs://OBS桶名/”开头。 图7 查看表test_demo01的Location 写入数据。 insert into test_demo01 values('mm'),('ww'),('ww'); 执行select * from test_demo01;查询是否写入成功。 图8 查看表test_demo01中的数据 执行命令!q退出beeline客户端。 重新登录OBS控制台。 单击“并行文件系统”, 选择创建的文件系统名称。 单击“文件”,查看是否存在创建的数据。 图9 查看数据
  • 为MRS集群配置委托 配置存算分离支持在新建集群中配置委托实现,也可以通过为已有集群绑定委托实现。本示例以为已有集群配置委托为例介绍。 登录MRS控制台,在导航栏选择“现有集群”。 单击集群名称,进入集群详情页面。 在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“单击同步”进行IAM用户同步。 在集群详情页的“概览”页签,单击“委托”右侧的“管理委托”选择创建ECS委托的委托并单击“确定”进行绑定,或单击“新建委托”进入IAM控制台进行创建后再在此处进行绑定。 图3 绑定委托
  • Hive访问OBS文件系统 用root用户登录集群Master节点,具体请参见登录集群节点。 验证Hive访问OBS。 用root用户登录集群Master节点,执行如下命令: cd /opt/Bigdata/client source bigdata_env source Hive/component_env 查看文件系统mrs-demo01下面的文件列表。 hadoop fs -ls obs://mrs-demo01/ 返回文件列表即表示访问OBS成功。 图5 查看mrs-demo01下的文件列表 执行以下命令进行用户认证(普通模式即未开启Kerberos认证无需执行此步骤)。 kinit hive 输入用户hive密码,默认密码为Hive@123,第一次使用需要修改密码。 执行Hive组件的客户端命令。 beeline 在beeline中直接使用OBS的目录进行访问。例如,执行如下命令创建Hive表并指定数据存储在mrs-demo01文件系统的test_demo01目录中。 create table test_demo01(name string) location "obs://mrs-demo01/test_demo01"; 执行如下命令查询所有表,返回结果中存在表test_demo01,即表示访问OBS成功。 show tables; 图6 查看是否存在表test_demo01 查看表的Location。 show create table test_demo01; 查看表的Location是否为“obs://OBS桶名/”开头。 图7 查看表test_demo01的Location 写入数据。 insert into test_demo01 values('mm'),('ww'),('ww'); 执行select * from test_demo01;查询是否写入成功。 图8 查看表test_demo01中的数据 执行命令!q退出beeline客户端。 重新登录OBS控制台。 单击“并行文件系统”, 选择创建的文件系统名称。 单击“文件”,查看是否存在创建的数据。 图9 查看数据
  • 入门实践 当完成MRS集群部署后,可以根据自身的业务需求使用MRS提供的一系列常用实践。 表1 MRS常用最佳实践 实践 描述 集群管理 安装并使用MRS集群客户端 在MRS集群创建成功后集群用户需安装MRS集群组件的(不包含Flume)的客户端,通过客户端连接集群内组件。 提交Spark任务到新增Task节点 MRS自定义类型集群可以通过增加Task节点,提升计算能力。集群Task节点主要用于处理数据,不存放持久数据。 通过租户资源绑定新增的Task节点,可实现提交Spark任务到新增的Task节点。 配置MRS集群阈值类告警 MRS集群提供可视化、便捷的监控告警功能。用户可以快速获取集群关键性能指标,并评测集群健康状态。 如果部分阈值类监控告警经评估后对业务影响可忽略、或告警阈值可进行调整,用户也可以根据需要自定义集群监控指标,或屏蔽对应告警,使告警不再上报。 数据分析 使用Spark2x实现车联网车主驾驶行为分析 本实践指导使用Spark实现车主驾驶行为分析。用于了解MRS的基本功能,利用MRS服务的Spark2x组件,对车主的驾驶行为进行分析统计,得到用户驾驶行为的分析结果,分析统计指定时间段内,车主急加速、急减速、空挡滑行、超速、疲劳驾驶等违法行为的次数。 使用Hive加载HDFS数据并分析图书评分情况 本实践指导使用Hive对原始数据进行导入、分析等操作,展示了如何构建弹性、低成本的离线大数据分析。以某图书网站后台用户的点评数据为原始数据,导入Hive表后通过SQL命令筛选出最受欢迎的畅销图书。 使用Hive加载OBS数据并分析企业雇员信息 本实践指导使用Hive对OBS中存储的原始数据进行导入、分析等操作,展示了如何构建弹性、低成本的存算分离大数据分析。以用户开发一个Hive数据分析应用为例,通过客户端连接Hive后,执行HQL语句访问OBS中的Hive数据。进行企业雇员信息的管理、查询。 通过Flink作业处理OBS数据 本实践指导使用MRS集群内置的Flink WordCount作业程序,来分析OBS文件系统中保存的源数据,以统计源数据中的单词出现次数。 MRS支持在大数据存储容量大、计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中,使用MRS集群仅做数据计算处理的存算分离模式。 数据迁移 数据迁移方案介绍 本迁移指导适用于多种不同场景下的HDFS、HBase、Hive数据向MRS集群的迁移工作。 介绍数据迁移前的准备工作、元数据导出、数据拷贝、数据恢复等内容。 Hadoop数据迁移到华为云MRS服务 本实践使用华为云CDM服务将Hadoop集群中的数据(支持数据量在几十TB级别或以下的数据量级)迁移到华为云MRS服务。 HBase数据迁移到华为云MRS服务 本实践使用华为云CDM服务将HBase集群中的数据(支持数据量在几十TB级别或以下的数据量级)迁移到华为云MRS服务。HBase会把数据存储在HDFS上,主要包括HFile文件和WAL文件,由配置项“hbase.rootdir”指定在HDFS上的路径,华为云MRS的默认存储位置是“/hbase”文件夹下。 HBase自带的一些机制和工具命令也可以实现数据搬迁,例如:通过导出Snapshots快照、Export/Import、CopyTable方式等。 Hive数据迁移到华为云MRS服务 本实践使用华为云CDM服务将Hive集群中的数据(支持数据量在几十TB级别或以下的数据量级)迁移到华为云MRS服务。 Hive数据迁移分两部分内容: Hive的元数据信息,存储在MySQL等数据库中。MRS Hive集群的元数据会默认存储到MRS DBService(华为的Gaussdb数据库),也可以选择RDS(MySQL)作为外置元数据库。 Hive的业务数据,存储在HDFS文件系统或OBS对象存储中。 MySQL数据迁移到MRS集群Hive分区表 本实践使用CDM云服务将MySQL数据导入到MRS集群内的Hive分区表中。 Hive提供类SQL查询语言,帮助用户对大规模的数据进行提取、转换和加载,即通常所称的ETL(Extraction,Transformation,and Loading)操作。对庞大的数据集查询需要耗费大量的时间去处理,在许多场景下,可以通过建立Hive分区方法减少每一次扫描的总数据量,这种做法可以显著地改善性能。 MRS HDFS数据迁移到OBS 本实践以MRS HDFS数据迁移到OBS为例,介绍如何通过CDM将文件类数据迁移到文件中。 系统对接 使用DBeaver访问Phoenix 本实践介绍如何使用DBeaver访问Phoenix。 使用DBeaver访问HetuEngine 本实践介绍如何使用DBeaver访问HetuEngine。 Hive对接外置自建关系型数据库 本实践介绍如何使用Hive对接开源MySQL和Postgres数据库。 在已有Hive数据的集群上外置元数据库后,之前的元数据表不会自动同步。因此在安装Hive之初就要确认好元数据是外置数据库还是内置到DBService,如果是外置自建数据库,则需在安装Hive时或者暂无Hive数据时将元数据外置,安装后不允许修改,否则将会造成原有元数据丢失。 Hive对接CSS服务 本实践介绍如何使用Hive对接CSS的Elasticsearch服务。 利用Elasticsearch-Hadoop插件,完成Hive和CSS服务的Elasticsearch直接的数据交互,通过Hive外部表的方式,可以快速将Elasticsearch索引数据映射到Hive表中。
  • 告警解释 系统每一个小时获取指定目录下直接子文件/目录的数量,判断其是否达到HDFS目录最大子文件/目录个数的百分比阈值(默认为“90%”),如果超过该阈值,则触发告警。 当发出告警的目录的子目录/文件数所占百分比低于阈值后,该告警将自动恢复。当监控开关关闭,所有目录对应的该告警都将自动恢复。当从监控列表中移除指定目录时,该目录对应的告警也会自动恢复。 HDFS目录的子文件/目录最大个数由参数“dfs.namenode.fs-limits.max-directory-items”指定,默认值为“1048576”。如果一个目录的子文件/目录数量超过该值,则无法再在该目录下创建新的子文件/目录。 要监控的目录列表由参数“dfs.namenode.directory-items.monitor”指定,默认值为“/tmp,/SparkJobHistory,/mr-history”。 监控开关由参数“dfs.namenode.directory-items.monitor.enabled”指定,默认值为“true”,即该检测默认开启。
  • 线下集群向云迁移 线下集群可以通过如下两种方式将数据迁移至云: 云专线(DC) 为源集群与目标集群之间建立云专线,打通线下集群出口网关与线上VPC之间的网络,然后参考同Region执行Distcp进行拷贝。 数据快递服务(DES) 对于TB或PB级数据上云的场景,华为云提供数据快递服务 DES。将线下集群数据及已导出的元数据拷贝到DES盒子,快递服务将数据递送到华为云机房,然后通过云数据迁移 CDM将DES盒子数据拷贝到HDFS。
  • 不同Region 当源集群与目标集群处于不同Region时,用Distcp工具将源集群数据拷贝到OBS,借助OBS跨区域复制功能(请参见跨区域复制)将数据复制到对应目的集群所在Region的OBS,然后通过Distcp工具将OBS数据拷贝到目的集群的HDFS上。由于执行Distcp无法为OBS上的文件设置权限、属主/组等信息,因此当前场景在进行数据导出时也需要将HDFS的元数据信息进行导出并拷贝,以防HDFS文件属性信息丢失。
  • 告警解释 HDFS的元数据信息存储在NameNode数据目录(由配置项“dfs.namenode.name.dir”指定)中的FsImage文件中。备NameNode会周期将已有的FsImage和JournalNode中存储的Editlog合并生成新的FsImage,然后推送到主NameNode的数据目录。这个周期由HDFS的配置项“dfs.namenode.checkpoint.period”指定,默认为3600秒,即1个小时。如果主NameNode数据目录的FsImage没有更新,则说明HDFS元数据合并功能异常,需要修复。 在主NameNode节点上,系统每5分钟检测其上的FsImage文件的信息。如果在三个合并周期没有新的FsImage文件生成,则系统产生该告警。 当新的FsImage文件生成并成功推送到主NameNode,说明HDFS元数据合并功能恢复正常,告警自动恢复。
  • 参考信息 NameNode JVM参数配置规则 NameNode JVM参数“GC_OPTS”默认值为: -Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djava.io.tmpdir=${Bigdata_tmp_dir} NameNode文件数量和NameNode使用的内存大小成比例关系,文件对象变化时请修改默认值中的“-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M”。参考值如下表所示。 表1 NameNode JVM配置 文件对象数量 参考值 10,000,000 -Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M 20,000,000 -Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G 50,000,000 -Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G 100,000,000 -Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G 200,000,000 -Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G 300,000,000 -Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G
  • 可能原因 Hive服务不可用可能与ZooKeeper、HDFS、Yarn和DBService等基础服务有关,也可能由Hive自身的进程故障引起。 ZooKeeper服务异常。 HDFS服务异常。 Yarn服务异常。 DBService服务异常。 Hive服务进程故障,如果告警由Hive进程故障引发,告警上报时间可能会延迟5分钟左右。 Hive服务和基础服务间的网络通信中断。 Hive的HDFS临时目录权限异常。 Hive节点本地磁盘空间不足。
  • 告警解释 系统每30秒周期性检查DBServer节点的数据库连接数使用率,并把实际数据库连接数使用率和阈值相比较,当数据库连接数的使用率连续5次(可配置,默认值为5)超过设定阈值时,系统将产生此告警,数据库连接数使用率的阈值设为90%(可配置,默认值为90%)。 平滑次数可配置,当平滑次数为1,数据库连接数使用率小于或等于阈值时,该告警恢复;当平滑次数大于1,数据库连接数使用率小于或等于阈值的90%时,该告警恢复。
  • MRS 3.2.0-LTS.1.1补丁基本信息 表8 补丁基本信息 补丁号 MRS 3.2.0-LTS.1.1 发布时间 2023-04-07 安装前处理 如果MRS集群节点故障或者网络不通,需要先隔离该节点,否则补丁会安装失败。 解决的问题 MRS 3.2.0-LTS.1.1 修复问题列表: 解决Hudi性能优化,增加优化参数控制同步Hive schema问题 解决Hudi表包含decimal字段做ddl变更时,执行clustering报错问题 解决MRS 3.1.2版本创建的hudi bucket索引表,在升级后compaction作业失败问题 解决Table can not read correctly when computed column is in the midst问题 解决Hudi的schema evolution和历史版本不兼容问题 解决Fink无法读取低版本Spark用bulk insert方式写入的timestamp类型数据的精度问题 解决mor表delete数据,下游Flink读任务失败问题 解决Flink流写mor开启同步compaction,包含decimal列,Spark添加一列后重启作业,触发compaction执行失败问题 解决Flink写mor表同时sparksql查询,当Flink触发clean后,Spark查询失败问题 解决mor表有rollback,执行cleanData后Flink schedule生成计划,spark run compaction报空指针问题 解决Flink进行批量作业时权限不足导致作业失败问题 解决Flink指定timestamp读Kafka异常的问题 解决Flink写历史版本创建的bucket索引hudi表,索引数据错乱重复fileid问题 解决Flink On HBase当条件为null时,使用错误下推Filter导致漏数问题 解决Flink on hudi解析的时间范围如果超过2262-04-11 23:47:16,则会解析失败,报错overflow问题 解决Spark/Flink写Hudi表,控制归档文件大小的参数不生效问题 解决Spark任务,有多个ddl语句(drop,truncate,create)长时间执行不结束问题 解决Spark建mor表带timestamp,Flink流读数据有误,相差8h问题 解决cow/mor表执行完drop partition后,首次执行delete报错,堆栈异常问题 解决datasource写Hudi表名和同步的Hive表明不一致,写入失败,sql写location指定到一个存量cow表目录,表名不一致,insert成功的问题 CDL链路hudi-dws性能优化 解决CDL升级后业务用户未添加hadoop组,任务启动失败问题 解决CDL hudi-dws链路配置max.commit.number参数时,偶现同步数据丢失问题 解决当CDL存在链接源端库失败的作业,task线程泄漏,导致作业启动超时问题 解决CDL Hudi connector代码中增加hoodie.datasource.hive_sync.skip_sync_schema参数,默认为true,优化元数据同步性能,减少性能毛刺问题 解决CDL读Hudi表出现404失败,找不到rollback.requested问题 解决CDL Task阻塞导致所有任务Task失败问题 解决Yarn的jdbcserver资源超长时间不释放问题 补丁兼容关系 MRS 3.2.0-LTS.1.1补丁包中包含所有MRS 3.2.0-LTS.1版本单点问题修复补丁。 安装补丁的影响 请参考安装补丁的影响。
  • MRS 3.2.0-LTS.1.4补丁基本信息 表5 补丁基本信息 补丁号 MRS 3.2.0-LTS.1.4 发布时间 2023-10-16 安装前处理 如果MRS集群节点故障或者网络不通,需要先隔离该节点,否则补丁会安装失败。 新特性 支持在Hue WebUI中使用HetuEngine SQL编辑器。 运维巡检工具查询优化。 解决的问题 MRS 3.2.0-LTS.1.4修复问题列表: 解决Flink读MySQL作业出现的类冲突问题 解决Flink Server提交SQL作业时解码异常错误 解决DataArts Studio提交Flink SQL作业报StackOverflow错误 解决普通集群使用RestA调用FlinkServer的jobs/action时报错 解决Flink客户端不支持-yD或-D配置keytab和principal的问题 解决HetuEngine查询Flink写入的HudiMOR表数据为空的问题 解决HetuEngine对Hudi的bucket索引mor表和mor_rt表查询失败问题 解决HetuEngine查询Hive的LZ4压缩格式数据失败问题 解决HetuEngine查询Hudi的OBS表失败问题 解决HetuEngine多hashkey时,查询条件包含单个hashkey时,无法查出结果的问题 解决Hudi数据源add columns/drop columns之后Hetu查询失败的问题 解决Hudi在replacement场景下无法正常归档文件问题 解决Hudi在InternalSchema转AvroSchema未去掉元字段导致流任务更新数据失败问题 解决Hudi版本升级后出现Spark读hudi表和run compaction失败问题 解决Hudi SQL执行call run_clustering_Mor后,rt/ro表的log数据丢失问题 解决Hudi ro表compaction期间数据查询不出来问题 解决Hudi表带decimal字段做ddl变更,在执行clustering报错问题 解决Hudi Cow/mor表执行完drop partition后,首次执行delete报堆栈异常的问题 解决Hive on Tez查询Hudi的schema演进表报错,需要适配默认InputFormat切分方式问题 解决Spark/Flink写Hudi表,控制归档文件大小的参数不生效的问题 解决Hudi mor表,log中1900前的timestamp数据错误问题 解决HetuEngine查询Hudi数据重复问题 解决Manager中12小时以上监控数据无法导出的问题 解决Manager中节点磁盘使用率和磁盘读速率无法显示一周数据的问题 解决弹性伸缩场景下操作更新集群拓扑时,全表查询TBL_HISTORY_TOPOLOGY导致controller触发OOM问题 解决弹性伸缩过程中出现Metaspace内存不足触发agent重启的问题 解决弹性伸缩场景下OMA进程异常无法采集指标,导致扩缩容任务异常问题 解决大集群中监控数据丢失问题 解决Manager AD对接后同步用户失败问题 解决集群配置ranger元数据外置后RangerAdmin实例启动失败问题 LakeFormation下移混合云,对接lakeformation,policysync同步策略失败整改 解决Spark JDBC模式执行插入耗时过久的问题 解决Hudi-Connector支持bucket裁剪性能优化问题 补丁兼容关系 MRS 3.2.0-LTS.1.4补丁包中包含所有MRS 3.2.0-LTS.1版本单点问题修复补丁。 安装补丁的影响 请参考安装补丁的影响。
  • MRS 3.2.0-LTS.1.7补丁基本信息 表2 补丁基本信息 补丁号 MRS 3.2.0-LTS.1.7 发布时间 2024-02-21 安装前处理 如果MRS集群节点故障或者网络不通,需要先隔离该节点,否则补丁会安装失败。 解决的问题 MRS 3.2.0-LTS.1.7修复问题列表: 解决Spark子查询当做列字段执行SQL任务时Ranger鉴权报错。 解决Flink写Hudi失败时,作业从checkpoint恢复失败的问题。 补丁兼容关系 MRS 3.2.0-LTS.1.7补丁包中包含所有MRS 3.2.0-LTS.1版本单点问题修复补丁。 安装补丁的影响 请参考安装补丁的影响。