云服务器内容精选
-
创建LakeFormation数据连接 创建LakeFormation数据连接的功能,需要联系技术支持申请开通白名单。 登录MRS控制台,在导航栏选择“数据连接”。 单击“新建数据连接 ”。 参考表1配置相关参数,单击“确定”完成创建。 表1 配置LakeFormation数据连接 参数 说明 类型 选择“LakeFormation”,当前仅MRS 3.3.0-LTS及之后版本支持连接该类型。 名称 数据连接的名称。 LakeFormation实例 选择LakeFormation实例名称。 该实例需要先在LakeFormation实例创建后在此处引用,具体请参考创建LakeFormation实例。单击“查看LakeFormation实例”查看已创建的实例。 虚拟私有云 需要与待对接的MRS集群在同一虚拟私有云。 子网 选择子网名称。 VPC终端节点 选择VPC终端节点,或单击“创建对应LakeFormation实例的VPC终端节点”进行创建。 选择VPC终端节点后,产生的费用将由VPCEP服务收取。 LakeFormation委托 选择“现有委托”,并选择创建对接LakeFormation权限的委托创建的委托,例如“visit_lakeformation_agency”。 图2 新建LakeFormation数据连接 创建完成后,在“数据连接”页面记录已创建数据连接的ID。
-
创建对接LakeFormation权限的委托 登录华为云管理控制台,选择“统一身份认证服务 IAM”。 在左侧导航栏选择“委托”,单击右上角的“创建委托”,配置相关参数,单击“下一步”。 参数配置如下: 委托名称:例如“visit_lakeformation_agency” 委托类型:选择“普通账号” 委托的账号:输入被委托的华为云账号名称 持续时间:根据实际情况自定义 图1 创建委托 在选择策略界面右上角单击“新建策略”,配置如下信息,单击“下一步”。 策略名称:例如“dev_visit_lakeformation” 策略配置方式:“可视化视图”或“JSON视图” 策略内容: 策略中必须包含“lakeformation:policy:export”和“lakeformation:role:describe”。其他参数按照实际需求进行配置。 可视化视图:“云服务”选择“湖仓构建”;“操作”中选择所需操作权限。其他参数按照实际需求进行配置。 JSON视图,例如配置策略内容如下: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:table:create", "lakeformation:database:alter", "lakeformation:table:alter", "lakeformation:database:drop", "lakeformation:database:create", "lakeformation:role:describe", "lakeformation:policy:create", "lakeformation:policy:export", "lakeformation:function:alter", "lakeformation:function:describe", "lakeformation:table:drop", "lakeformation:catalog:describe", "lakeformation:table:describe", "lakeformation:function:drop", "lakeformation:database:describe", "lakeformation:function:create", "lakeformation:transaction:operate" ] } ] } 勾选新建的策略名称例如“dev_visit_lakeformation”,单击“下一步”。 “设置最小授权范围”根据实际情况选择授权的资源范围,单击“确定”,创建委托。 在“委托”页面,将鼠标移动到新创建的委托名称上,获取具备访问LakeFormation权限的委托ID。
-
创建对接ECS/BMS云服务委托 登录华为云管理控制台,选择“统一身份认证服务”。 在左侧导航栏选择“委托”,单击右上角的“创建委托”,设置相关参数,单击“下一步”。 参数选择如下: 委托名称:例如“lakeformation_test” 委托类型:选择“云服务” 云服务:选择“ECS BMS” 持续时间:根据实际情况自定义 在选择策略界面右上角单击“新建策略”,配置如下信息,单击“下一步”。 策略名称:自定义 策略配置方式:选择JSON视图 策略内容:配置如下信息 { "Version": "1.1", "Statement": [ { "Action": [ "iam:agencies:assume" ], "Resource": { "uri": [ "/iam/agencies/授予给自身账号具备访问LakeFormation权限的委托ID", "/iam/agencies/授予给自身账号具备访问OBS权限的委托ID" ] }, "Effect": "Allow" } ] } 授予给自身账号具备访问LakeFormation权限的委托ID:可参考6获取。 授予给自身账号具备访问OBS权限的委托ID:可参考6获取。 选择新创建的自定义委托名称,单击“下一步”。 “设置最小授权范围”根据实际情况选择授权的资源范围,单击“确定”,创建委托完成。
-
创建对接OBS权限的委托 登录华为云管理控制台,选择“统一身份认证服务”。 在左侧导航栏选择“委托”,单击右上角的“创建委托”,选择相关参数,单击“下一步”。 参数选择如下: 委托名称:例如“visit_obs_agency” 委托类型:选择“普通账号” 委托的账号:输入被委托的华为云账号名称 持续时间:根据实际情况自定义 在选择策略界面右上角单击“新建策略”,配置如下信息,单击“下一步”。 策略名称:例如“dev_visit_obs” 策略配置方式:JSON视图 策略内容:填入如下信息。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:GetBucketLocation", "obs:bucket:ListBucketMultipartUploads", "obs:object:GetObject", "obs:object:ModifyObjectMetaData", "obs:object:DeleteObject", "obs:object:ListMultipartUploadParts", "obs:bucket:HeadBucket", "obs:object:AbortMultipartUpload", "obs:bucket:ListBucket", "obs:object:PutObject" ], "Resource": [ "OBS:*:*:bucket:*", "OBS:*:*:object:*" ] } ] } Resource参数中“bucket”的参数值表示OBS桶名称,“object”的参数值表示OBS对象名称,可根据需要指定名称。配置为“*”表示对所有OBS桶或OBS对象适用此策略。 其他参数按照实际需求进行配置。 勾选新建的策略名称例如“dev_visit_obs”,单击“下一步”。 “设置最小授权范围”根据实际情况选择授权的资源范围,单击“确定”,创建委托。 在“委托”页面,将鼠标移动到新创建的委托名称上,获取具备访问OBS权限的委托ID。
-
约束说明 MRS对接LakeFormation前,需要注意以下约束限制: MRS集群和LakeFormation实例必须同在一个云账户下且属于同一个Region。 LakeFormation侧创建的接入客户端所在虚拟私有云,必须与MRS集群在同一虚拟私有云下。 MRS集群仅支持对接LakeFormation实例中名称为hive的Catalog。 MRS存量集群需要先完成元数据库和权限策略向LakeFormation实例上迁移,再配置对接。 如果需要迁移多个MRS集群中的元数据到同一个LakeFormation实例,MRS集群之间的Database名称不能重复。 MRS对接LakeFormation后,MRS组件功能约束限制: Hive暂不支持临时表功能。 Hive暂不支持跨集群的列加密表功能。 Hive WebHCat暂不支持对接LakeFormation。 Hive创建内表时如果表目录不为空,则禁止创建表。 Hudi表创建前,需要先在LakeFormation上添加Hudi表目录的路径授权,赋予OBS读写权限。 Hudi表不支持在LakeFormation管理面编辑表的字段,只能通过Hudi客户端增删改表的字段。 Flink读写Hudi场景下同步Hive表,仅支持使用hive_sync.mode=jdbc,不支持hms方式。 Spark使用小权限用户登录客户端创建数据库时,如果用户没有default库的OBS路径权限,将提示缺少权限,实际创建数据库成功。 MRS对接LakeFormation后,权限策略约束限制: 通过LakeFormation授权仅支持将LakeFormation角色作为授权主体,不支持IAM用户或IAM用户组作为授权主体。 PolicySync进程不会修改集群内RangerAdmin Hive模块的默认策略,默认策略仍然生效。 PolicySync进程启动后,会与LakeFormation实例的权限进行比对,删除LakeFormation上不存在的非默认策略,请先完成权限策略迁移到LakeFormation实例上。 RangerAdmin WebUI界面的Hive模块,禁止执行添加、删除权限非默认策略的操作,统一在LakeFormation实例的数据权限界面进行授权操作。 MRS集群取消对接LakeFormation后,RangerAdmin的非默认策略不会清理,需要人工进行清理。 Hive暂不支持Grant授权的SQL语句,需统一在LakeFormation实例的数据权限界面进行授权操作。 MRS暂不支持LakeFormation行过滤权限能力。
-
数据库用户 系统数据库用户包含OMS数据库用户、DBService数据库用户。 类别 默认用户 初始密码 描述 密码修改方法 OMS数据库 ommdba MRS 3.2.0之前版本:dbChangeMe@123456 MRS 3.2.0及之后版本:随机密码 OMS数据库管理员用户,用于创建、启动和停止等维护操作。 请参见修改OMS数据库管理员密码。 omm MRS 3.2.0之前版本:ChangeMe@123456 MRS 3.2.0及之后版本:随机密码 OMS数据库数据访问用户。 请参见修改OMS数据库访问用户密码。 DBService数据库 omm MRS 3.2.0之前版本:dbserverAdmin@123 MRS 3.2.0及之后版本:随机密码 DBService组件中GaussDB数据库的管理员用户。 请参见重置DBService数据库omm用户密码。 compdbuser 随机密码 MRS 3.1.2及之后版本中存在,DBService组件中GaussDB数据库的管理员用户,用于业务运维场景。该账户密码首次使用需重置。 请参见修改DBService数据库compdbuser用户密码。 hetu 随机密码 HetuEngine连接DBService数据库hetumeta的用户。 该用户仅在MRS 3.1.2及之后版本中存在。 MRS 3.1.2之前版本:请参见修改组件数据库用户密码。 MRS 3.1.2及之后版本:请参见重置组件数据库用户密码。 hive MRS 3.1.2之前版本:HiveUser@ MRS 3.1.2及之后版本:随机密码 Hive连接DBService数据库hivemeta的用户。 hue MRS 3.1.2之前版本:HueUser@123 MRS 3.1.2及之后版本:随机密码 Hue连接DBService数据库hue的用户。 sqoop MRS 3.1.2之前版本:SqoopUser@ MRS 3.1.2及之后版本:随机密码 Loader连接DBService数据库sqoop的用户。 oozie MRS 3.1.2之前版本:OozieUser@ MRS 3.1.2及之后版本:随机密码 Oozie连接DBService数据库oozie的用户。 rangeradmin MRS 3.1.2之前版本:Admin12! MRS 3.1.2及之后版本:随机密码 Ranger连接DBservice数据库ranger的用户。 kafkaui 随机密码 KafkaUI连接DBService数据库kafka的用户。 该用户仅在MRS 3.1.2及之后版本中存在。 flink 随机密码 Flink连接DBService数据库flink的用户。 该用户仅在MRS 3.1.2及之后版本中存在。 cdl 随机密码 CDL连接DBService数据库cdl的用户。 该用户仅在MRS 3.2.0及之后版本中存在。
-
用户分类 MRS集群提供以下3类用户,请系统管理员定期修改密码,不建议使用默认密码。 本章节介绍MRS集群内的相关默认用户信息。 用户类型 使用说明 系统用户 通过FusionInsight Manager创建,是系统操作运维与业务场景中主要使用的用户,包含两种类型: “人机”用户:用于在FusionInsight Manager的操作运维场景,以及在组件客户端操作的场景。创建此类型用户时需要参考创建用户设置“密码”和“确认密码”。 “机机”用户:用于系统应用开发的场景。 用于OMS系统进程运行的用户。 系统内部用户 集群提供的用于Kerberos认证、进程通信、保存用户组信息和关联用户权限的内部用户。系统内部用户不建议在操作与维护的场景下使用。请通过admin用户操作,或联系系统管理员根据业务需要创建新用户。 数据库用户 用于OMS数据库管理和数据访问的用户。 用于业务组件(Hue、Hive、HetuEngine、Loader、Oozie、Ranger和DBService)数据库的用户。
-
系统用户 需要使用操作系统中root用户,所有节点root用户需设置为统一的密码。 需要使用操作系统中ldap用户,此账号不能删除,否则可能导致集群无法正常工作。密码管理策略由操作系统管理员维护。 类别 用户名称 初始密码 描述 密码修改方法 系统管理员 admin 用户创建集群时自定义 FusionInsight Manager的管理员。 说明: admin用户默认不具备其他组件的管理权限,例如访问组件原生界面时,需要使用具备对应组件管理权限的用户才可以访问到完整内容。 请参见修改admin密码。 节点操作系统用户 ommdba 随机密码 创建系统数据库的用户。在管理节点生成,属于操作系统用户,无需设置为统一的密码。该用户不能用于远程登录。 请参见修改操作系统用户密码。 omm 随机密码 系统的内部运行用户。在全部节点生成,属于操作系统用户,无需设置为统一的密码。
-
在对性能要求比较高的场景下,可以使用Kryo优化序列化性能 Spark提供了两种序列化实现: org.apache.spark.serializer.KryoSerializer:性能好,兼容性差 org.apache.spark.serializer.JavaSerializer:性能一般,兼容性好 使用:conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") 为什么不默认使用Kryo序列化? Spark默认使用的是Java的序列化机制,也就是ObjectOutputStream/ObjectInputStream API来进行序列化和反序列化。但是Spark同时支持使用Kryo序列化库,Kryo序列化类库的性能比Java序列化类库的性能要高很多。官方介 绍,Kryo序列化机制比Java序列化机制,性能高10倍左右。Spark之所以默认没有使用Kryo作为序列化类库,是因为Kryo要求要注册所有需要进行序列化的自定义类型,因此对于开发者来说,这种方式比较麻烦。
-
RDD多次使用时,建议将RDD持久化 RDD在默认情况下的存储级别是StorageLevel.NONE,即既不存磁盘也不放在内存中,如果某个RDD需要多次使用,可以考虑将该RDD持久化,方法如下: 调用spark.RDD中的cache()、persist()、persist(newLevel:StorageLevel)函数均可将RDD持久化,cache()和persist()都是将RDD的存储级别设置为StorageLevel.MEMORY_ONLY,persist(newLevel:StorageLevel)可以为RDD设置其他存储级别,但是要求调用该方法之前RDD的存储级别为StorageLevel.NONE或者与newLevel相同,也就是说,RDD的存储级别一旦设置为StorageLevel.NONE之外的级别,则无法改变。 如果想要将RDD去持久化,那么可以调用unpersist(blocking:Boolean = true),该函数功能如下: 将该RDD从持久化列表中移除,RDD对应的数据进入可回收状态; 将RDD的存储级别重新设置为StorageLevel.NONE。
-
在业务情况允许的情况下使用高性能算子 使用reduceByKey/aggregateByKey替代groupByKey。 所谓的map-side预聚合,说的是在每个节点本地对相同的key进行一次聚合操作,类似于MapReduce中的本地combiner。 map-side预聚合之后,每个节点本地就只会有一条相同的key,因为多条相同的key都被聚合起来了。其他节点在拉取所有节点上的相同key时,就会大大减少需要拉取的数据数量,从而也就减少了磁盘IO以及网络传输开销。通常来说,在可能的情况下,建议使用reduceByKey或aggregateByKey算子来替代掉groupByKey算子。因为reduceByKey和aggregateByKey算子都会使用用户自定义的函数对每个节点本地的相同key进行预聚合。而groupByKey算子是不会进行预聚合的,全量的数据会在集群的各个节点之间分发和传输,性能相对来说比较差。 使用mapPartitions替代普通map。 mapPartitions类的算子,一次函数调用会处理一个partition所有的数据,而不是一次函数调用处理一条,性能相对来说会高一些。 但是有的时候,使用mapPartitions会出现OOM(内存溢出)的问题。因为单次函数调用就要处理掉一个partition所有的数据,如果内存不够,垃圾回收时是无法回收掉太多对象的,很可能出现OOM异常。所以使用这类操作时要慎重! 使用filter之后进行coalesce操作。 通常对一个RDD执行filter算子过滤掉RDD中较多数据后(比如30%以上的数据),建议使用coalesce算子,手动减少RDD的partition数量,将RDD中的数据压缩到更少的partition中去。因为filter之后,RDD的每个partition中都会有很多数据被过滤掉,此时如果照常进行后续的计算,其实每个task处理的partition中的数据量并不是很多,有一点资源浪费,而且此时处理的task越多,可能速度反而越慢。因此用coalesce减少partition数量,将RDD中的数据压缩到更少的partition之后,只要使用更少的task即 可处理完所有的partition。在某些场景下,对于性能的提升会有一定的帮助。 使用repartitionAndSortWithinPartitions替代repartition与sort类操作。 repartitionAndSortWithinPartitions是Spark官网推荐的一个算子,官方建议,如果需要在 repartition重分区之后,还要进行排序,建议直接使用repartitionAndSortWithinPartitions 算子。因为该算子 可以一边进行重分区的shuffle操作,一边进行排序。shuffle与sort两个操作同时进行,比先shuffle再sort来说,性能可能是要高的。 使用foreachPartitions替代foreach。 原理类似于“使用mapPartitions替代map”,也是一次函数调用处理一个partition的所有数据,而不是一次函数调用处理一条数 据。在实践中发现,foreachPartitions类的算子,对性能的提升还是很有帮助的。比如在foreach函数中,将RDD中所有数据写 MySQL,那么如果是普通的foreach算子,就会一条数据一条数据地写,每次函数调用可能就会创建一个数据库连接,此时就势必会频繁地创建和销毁数据库连接,性能是非常低下;但是如果用foreachPartitions算子一次性处理一个partition的数据,那么对于每个 partition,只要创建一个数据库连接即可,然后执行批量插入操作,此时性能是比较高的。
-
Hive JDBC驱动的加载 客户端程序以JDBC的形式连接HiveServer时,需要首先加载Hive的JDBC驱动类org.apache.hive.jdbc.HiveDriver。 故在客户端程序的开始,必须先使用当前类加载器加载该驱动类。 如果classpath下没有相应的jar包,则客户端程序抛出Class Not Found异常并退出。 如下: Class.forName("org.apache.hive.jdbc.HiveDriver").newInstance();
-
关闭数据库连接 客户端程序在执行完HQL之后,注意关闭数据库连接,以免内存泄露,同时这是一个良好的编程习惯。 需要关闭JDK的两个对象statement和connection。 如下: finally { if (null != statement) { statement.close(); } // 关闭JDBC连接 if (null != connection) { connection.close(); } }
-
使用WebHCat的REST接口以Streaming方式提交MR任务的前置条件 本接口需要依赖hadoop的streaming包,在以Streaming方式提交MR任务给WebHCat前,需要将“hadoop-streaming-2.7.0.jar”包上传到HDFS的指定路径下:“hdfs:///apps/templeton/hadoop-streaming-2.7.0.jar”。首先登录到安装有客户端和Hive服务的节点上,以客户端安装路径为“/opt/client”为例: source /opt/client/bigdata_env 使用kinit登录人机用户或者机机用户。 hdfs dfs -put ${BIGDATA_HOME}/FusionInsight_HD_8.1.0.1/FusionInsight-Hadoop-*/hadoop/share/hadoop/tools/lib/hadoop-streaming-*.jar /apps/templeton/ 其中/apps/templeton/需要根据不同的实例进行修改,默认实例使用/apps/templeton/,Hive1实例使用/apps1/templeton/,以此类推。
-
客户端配置参数需要与服务端保持一致 当集群的Hive、YARN、HDFS服务端配置参数发生变化时,客户端程序对应的参数会被改变,用户需要重新审视在配置参数变更之前提交到HiveServer的配置参数是否和服务端配置参数一致,如果不一致,需要用户在客户端重新调整并提交到HiveServer。例如下面的示例中,如果修改了集群中的YARN配置参数时,Hive客户端、示例程序都需要审视并修改之前已经提交到HiveServer的配置参数: 初始状态: 集群YARN的参数配置如下: mapreduce.reduce.java.opts=-Xmx2048M 客户端的参数配置如下: mapreduce.reduce.java.opts=-Xmx2048M 集群YARN修改后,参数配置如下: mapreduce.reduce.java.opts=-Xmx1024M 如果此时客户端程序不做调整修改,则还是以客户端参数有效,会导致reducer内存不足而使MR运行失败。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格