华为云用户手册

  • 前提条件 已安装客户端时: 已安装HDFS客户端。 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。 未安装客户端时: Linux环境已安装JDK,版本号需要和IDEA导出Jar包使用的JDK版本一致。 当Linux环境所在主机不是集群中的节点时,需要在Linux环境所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
  • 已安装客户端时编译并运行程序 进入样例工程本地根目录,在Windows命令提示符窗口中执行下面命令进行打包。 mvn -s "{maven_setting_path}" clean package 上述打包命令中的{maven_setting_path}为本地Maven的“settings.xml”文件路径。 打包成功之后,在工程根目录的target子目录下获取打好的jar包,例如“HDFSTest-XXX.jar”,jar包名称以实际打包结果为准。 将导出的Jar包上传至Linux客户端运行环境的任意目录下,例如“/opt/client”。 配置环境变量: cd /opt/client source bigdata_env 运行此样例代码需要设置运行用户,设置运行用户有两种方式,添加环境变量HADOOP_USER_NAME或者修改代码设置运行用户。若在没有修改代码的场景下,执行以下语句添加环境变量: export HADOOP_USER_NAME=test 用户可向管理员咨询运行用户。test在这里只是举例,若需运行Colocation相关操作的样例代码,则此用户需属supergroup用户组。 执行如下命令,运行Jar包。 hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.HdfsExample hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.ColocationExample 在运行com.huawei.bigdata.hdfs.examples.ColocationExample时,HDFS的配置项“fs.defaultFS”不能配置为“viewfs://ClusterX”。
  • 未安装客户端时编译并运行程序 进入工程本地根目录,在Windows命令提示符窗口中执行下面命令进行打包。 mvn -s "{maven_setting_path}" clean package 上述打包命令中的{maven_setting_path}为本地Maven的“settings.xml”文件路径。 打包成功之后,在工程根目录的target子目录下获取打好的jar包。 将导出的Jar包上传至Linux运行环境的任意目录下,例如“/optclient”。 将工程中的“lib”文件夹和“conf”文件夹上传至和Jar包相同的Linux运行环境目录下,例如“/opt/client”(其中“lib”目录汇总包含了工程中依赖的所有的Jar包,“conf”目录包含运行jar包所需的集群相关配置文件,请参考准备运行环境)。 运行此样例代码需要设置运行用户,设置运行用户有两种方式,添加环境变量HADOOP_USER_NAME或者修改代码设置运行用户。若在没有修改代码的场景下,执行以下语句添加环境变量: export HADOOP_USER_NAME=test 用户可向管理员咨询运行用户。test在这里只是举例,若需运行Colocation相关操作的样例代码,则此用户需属supergroup用户组。 执行如下命令运行Jar包。 java -cp HDFSTest-XXX.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.HdfsExample java -cp HDFSTest-XXX.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.ColocationExample 在运行com.huawei.bigdata.hdfs.examples.ColocationExample:时,HDFS的配置项“fs.defaultFS”不能配置为“viewfs://ClusterX”。
  • 准备运行环境 进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。 如果使用Linux环境调测程序,需在准备安装集群客户端的Linux节点并获取相关配置文件。 在节点中安装客户端,例如客户端安装目录为“/opt/hadoopclient”。客户端安装可参考配置Flink应用安全认证。 客户端机器的时间与集群的时间要保持一致,时间差小于5分钟。 集群的Master节点或者Core节点使用客户端可参考集群内节点使用 MRS 客户端,MRS集群外客户端的安装操作可参考集群外节点使用MRS客户端。 确保Flink客户端的“flink-conf.yaml”配置文件中的认证相关配置项已经配置正确,请参考配置Flink应用安全认证章节的步骤5。 安全模式下需要将客户端安装节点的业务IP地址以及Manager的浮动IP地址追加到“flink-conf.yaml”文件中的“jobmanager.web.allow-access-address”配置项中,IP地址之间使用英文逗号分隔。 登录 FusionInsight Manager页面,下载集群客户端软件包至主管理节点并解压,然后以root用户登录主管理节点,进入集群客户端解压路径下,复制“FusionInsight_Cluster_1_Services_ClientConfig\Flink\config”路径下的所有配置文件至客户端节点,放置到与准备放置编译出的jar包同目录的“conf”目录下,用于后续调测,例如“/opt/hadoopclient/conf”。 例如客户端软件包为“FusionInsight_Cluster_1_Services_Client.tar”,下载路径为主管理节点的“/tmp/FusionInsight-Client”: cd /tmp/FusionInsight-Client tar -xvf FusionInsight_Cluster_1_Services_Client.tar tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar cd FusionInsight_Cluster_1_Services_ClientConfig scp Flink/config/* root@客户端节点IP地址:/opt/hadoopclient/conf 准备MRS应用开发用户时获取的keytab文件也放置于该目录下,主要配置文件说明如表2所示。 表2 配置文件 文件名称 作用 core-site.xml 配置Flink详细参数。 hdfs-site.xml 配置HDFS详细参数。 yarn-site.xml 配置Yarn详细参数。 flink-conf.yaml Flink客户端配置文件。 user.keytab 对于Kerberos安全认证提供用户信息。 krb5.conf Kerberos Server配置信息。 检查客户端节点网络连接。 在安装客户端过程中,系统会自动配置客户端节点“hosts”文件,建议检查“/etc/hosts”文件内是否包含集群内节点的主机名信息,如未包含,需要手动复制解压目录下的“hosts”文件中的内容到客户端所在节点的hosts文件中,确保本地机器能与集群各主机在网络上互通。 (可选)若运行Python作业,需额外配置如下:(适用于MRS 3.3.0及以后版本) 使用root用户登录flink客户端安装节点,使用如下命令确认环境已成功安装Python 3.7及以后版本。 python3 -V 进入python3安装路径,安装路径如“/srv/pyflink-example”,执行以下命令安装virtualenv。 cd /srv/pyflink-example virtualenv venv --python=python3.x source venv/bin/activate 执行以下命令将客户端安装目录下的“Flink/flink/opt/python/apache-flink-*.tar.gz”文件复制到“/srv/pyflink-example”。 cp 客户端安装目录/Flink/flink/opt/python/apache-flink-*.tar.gz /srv/pyflink-example 执行以下命令安装依赖包,显示如下表示安装成功。 python -m pip install apache-flink-libraries-*.tar.gz python -m pip install apache-flink-版本号.tar.gz ... Successfully built apache-flink Installing collected packages: apache-flink Attempting uninstall: apache-flink Found existing installation: apache-flink x.xx.x Uninstalling apache- flink-x.xx.x: Successfully uninstalled apache-flink-x.xx.x Successfully installed apache-flink-x.xx.x
  • 准备开发环境 在进行应用开发时,要准备的开发和运行环境如表1所示。 表1 开发环境 准备项 说明 操作系统 开发环境:Windows系统,支持Windows 7以上版本。 运行环境:Linux系统。 如需在本地调测程序,运行环境需要和集群业务平面网络互通。 安装JDK 开发和运行环境的基本配置,版本要求如下: 服务端和客户端仅支持集群自带的OpenJDK,不允许替换。 对于客户应用需引用SDK类的Jar包运行在客户应用进程中的: X86客户端: Oracle JDK:支持1.8版本; IBM JDK:支持1.8.0.7.20和1.8.0.6.15版本。 ARM客户端: OpenJDK:支持1.8.0_272版本(集群自带JDK,可通过集群客户端安装目录中“JDK”文件夹下获取)。 毕昇JDK:支持1.8.0_272版本。 说明: 基于安全考虑,服务端只支持TLS V1.2及以上的加密协议。 IBM JDK默认只支持TLS V1.0,若使用IBM JDK,请配置启动参数“com.ibm.jsse2.overrideDefaultTLS”为“true”,设置后可以同时支持TLS V1.0/V1.1/V1.2,详情可参考https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls。 毕昇JDK详细信息可参考https://www.hikunpeng.com/zh/developer/devkit/compiler/jdk。 安装和配置IDEA 用于开发Flink应用程序的工具。版本要求:2019.1或其他兼容版本。 安装Scala Scala开发环境的基本配置。 版本要求: MRS 3.2.0以前版本要求2.11.7。 MRS 3.2.0至MRS 3.5.0版本要求2.12.7。 安装Scala插件 Scala开发环境的基本配置。版本要求:1.5.4。 安装Maven 开发环境的基本配置。用于项目管理,贯穿软件开发生命周期。 准备开发用户 参考准备MRS应用开发用户进行操作,准备用于应用开发的集群用户并授予相应权限。 7-zip 用于解压“*.zip”和“*.rar”文件,支持7-Zip 16.04版本。 Python3 用于运行Flink Python作业。版本要求:Python3.7至Python3.10版本。
  • Kafka开发应用时,需要准备的开发和运行环境如表1所示: 表1 开发环境 准备项 说明 操作系统 开发环境:Windows系统,支持Windows 7以上版本。 运行环境:Windows系统或Linux系统。 如需在本地调测程序,运行环境需要和集群业务平面网络互通。 安装和配置IntelliJ IDEA 开发环境的基本配置。版本要求:JDK使用1.8版本,IntelliJ IDEA使用2019.1或其他兼容版本。 说明: 若使用IBM JDK,请确保IntelliJ IDEA中的JDK配置为IBM JDK。 若使用Oracle JDK,请确保IntelliJ IDEA中的JDK配置为Oracle JDK。 若使用Open JDK,请确保IntelliJ IDEA中的JDK配置为Open JDK。 安装JDK 开发和运行环境的基本配置。版本要求如下: 服务端和客户端仅支持自带的OpenJDK,版本为1.8.0_272,不允许替换。 对于客户应用需引用SDK类的Jar包运行在客户应用进程中的: X86客户端: Oracle JDK:支持1.8版本 IBM JDK:支持1.8.5.11版本 TaiShan客户端: OpenJDK:支持1.8.0_272版本 说明: 基于安全考虑,服务端只支持TLS V1.2及以上的加密协议。 IBM JDK默认只支持TLS V1.0,若使用IBM JDK,请配置启动参数“com.ibm.jsse2.overrideDefaultTLS”为“true”,设置后可以同时支持TLS V1.0/V1.1/V1.2,详情参见https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls。 安装Maven 开发环境的基本配置。用于项目管理,贯穿软件开发生命周期。 7-zip 用于解压“*.zip”和“*.rar”文件,支持7-Zip 16.04版本。
  • Kafka样例工程简介 MRS样例工程获取地址为https://github.com/huaweicloud/huaweicloud-mrs-example,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。 当前MRS提供以下Kafka相关样例工程: 表1 Kafka相关样例工程 样例工程位置 描述 kafka-examples 单线程生产数据,相关样例请参考使用Producer API向安全Topic生产消息。 单线程消费数据,相关样例请参考使用Consumer API订阅安全Topic并消费。 多线程生产数据,相关样例请参考使用多线程Producer发送消息。 多线程消费数据,相关样例请参考使用多线程Consumer消费消息。 基于KafkaStreams实现WordCount,相关样例请参考使用KafkaStreams统计数据 父主题: Kafka开发指南(普通模式)
  • 代码样例 通过SpringBoot实现Kafka生产消费的样例代码如下: @RestController public class MessageController { private final static Logger LOG = LoggerFactory.getLogger(MessageController.class); @Autowired private KafkaProperties kafkaProperties; @GetMapping("/produce") public String produce() { Producer producerThread = new Producer(); producerThread.init(this.kafkaProperties); producerThread.start(); String message = "Start to produce messages"; LOG.info(message); return message; } @GetMapping("/consume") public String consume() { Consumer consumerThread = new Consumer(); consumerThread.init(this.kafkaProperties); consumerThread.start(); LOG.info("Start to consume messages"); // 等到180s后将consumer关闭,实际执行过程中可修改 try { Thread.sleep(consumerThread.getThreadAliveTime()); } catch (InterruptedException e) { LOG.info("Occurred InterruptedException: ", e); } finally { consumerThread.close(); } return String.format("Finished consume messages"); } }
  • 操作步骤 获取“huawei-spring-boot-kafka-examples-*.jar”。 在样例代码的“springboot/kafka-examples/kafka-springboot-examples”目录下找到pom文件,在此文件同级目录使用maven install工具编译SpringBoot样例,此时会生成一个target文件夹,在target文件夹中得到“huawei-spring-boot-kafka-examples-*.jar”。 在Windows或Linux上创建一个目录作为运行目录。 Windows环境:创建路径“D:\Spring”, 将“huawei-spring-boot-kafka-examples-*.jar”和“application.properties”上传到当前路径下。 Linux环境:创建路径“/opt/spring”,将“huawei-spring-boot-kafka-examples-*.jar”和“application.properties”上传到当前路径下。 执行命令启动SpringBoot。 Windows环境:打开Windows cmd工具,在目录“D:\Spring”执行: java -jar huawei-spring-boot-kafka-examples-*.jar Linux环境:在目录“/opt/spring”下执行: java -jar huawei-spring-boot-kafka-examples-*.jar 生产数据。 Windows环境:使用浏览器访问链接:http://SpringBoot启动时绑定的IP地址:Springboot启动时绑定的端口/produce,生产数据到Broker。结果如下: 图1 生产数据 Linux环境:通过执行curl命令访问SpringBoot。 curl http://SpringBoot启动时绑定的IP地址:Springboot启动时绑定的端口/produce 消费数据。 Windows环境:使用浏览器访问链接:http://SpringBoot启动时绑定的IP地址:Springboot启动时绑定的端口/consume,从Broker消费数据。结果如下: 图2 消费数据 Linux环境:通过执行curl命令访问SpringBoot。 curl http://SpringBoot启动时绑定的IP地址:Springboot启动时绑定的端口/consume
  • 华为云CDN启用新版OBS委托授权的公告 华为云CDN于北京时间2025年4月2日开始启用新版的OBS委托授权功能,相对于旧版,新版收缩了部分权限,新旧版功能权限对比请参见表1。 如果您已经启用了旧版的OBS委托授权,目前有收缩权限的需求,请参考如何用新版OBS委托授权的权限替换旧版完成设置。 表1 OBS委托授权权限对比 版本 开启委托后CDN获取的权限 旧版 IAM 服务系统策略“Tenant Guest”的全部权限,权限详情请参见IAM权限管理。 新版 获取对象内容、获取对象元数据:obs:object:GetObject。
  • 操作场景 Ranger管理员可通过Ranger为Spark2x用户进行相关的权限设置。 Spark2x开启或关闭Ranger鉴权后,需要重启Spark2x服务。 需要重新下载客户端,或手动刷新客户端配置文件“客户端安装目录/Spark2x/spark/conf/spark-defaults.conf”: 开启Ranger鉴权:spark.ranger.plugin.authorization.enable=true,同时需要修改参数“spark.sql.authorization.enabled”值为“true”。 关闭Ranger鉴权:spark.ranger.plugin.authorization.enable=false Spark2x中,spark-beeline(即连接到JD BCS erver的应用)支持Ranger的IP过滤策略(即Ranger权限策略中的Policy Conditions),spark-submit与spark-sql不支持。
  • 注意事项 Flume可靠性保障措施有哪些? Source&Channel、Channel&Sink之间的事务机制。 Sink Processor支持配置failover、load_blance机制,例如负载均衡示例如下,详细参考http://flume.apache.org/releases/1.9.0.html。 server.sinkgroups=g1 server.sinkgroups.g1.sinks=k1 k2 server.sinkgroups.g1.processor.type=load_balance server.sinkgroups.g1.processor.backoff=true server.sinkgroups.g1.processor.selector=random Flume多agent聚合级联时的注意事项? 级联时需要使用Avro或者Thrift协议进行级联。 聚合端存在多个节点时,连接配置尽量配置均衡,不要聚合到单节点上。
  • 常用Sink配置 HDFS Sink HDFS Sink将数据写入Hadoop分布式文件系统(HDFS)。常用配置如下表所示: 表10 HDFS Sink常用配置 参数 默认值 描述 channel - 与之相连的channel。 type hdfs hdfs sink的类型,必须设置为hdfs。 hdfs.path - HDFS上数据存储路径,必须以“hdfs://hacluster/”开头。 monTime 0(不开启) 线程监控阈值,更新时间超过阈值后,重新启动该Sink,单位:秒。 hdfs.inUseSuffix .tmp 正在写入的hdfs文件后缀。 hdfs.rollInterval 30 按时间滚动文件,单位:秒,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 hdfs.rollSize 1024 按大小滚动文件,单位:bytes,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 hdfs.rollCount 10 按Event个数滚动文件,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 说明: 参数“rollInterval”、“rollSize”和“rollCount”可同时配置,三个参数采取优先原则,哪个参数值先满足,优先按照哪个参数进行压缩。 hdfs.idleTimeout 0 自动关闭空闲文件超时时间,单位:秒。 hdfs.batchSize 1000 批次写入HDFS的Event个数。 hdfs.kerberosPrincipal - 认证HDFS的Kerberos principal,普通模式集群不配置,安全模式集群必须配置。 hdfs.kerberosKeytab - 认证HDFS的Kerberos keytab,普通模式集群不配置,安全模式集群中,用户必须对jaas.cof文件中的keyTab路径有访问权限。 hdfs.fileCloseByEndEvent true 收到源文件的最后一个Event时是否关闭hdfs文件。 hdfs.batchCallTimeout - 批次写入HDFS超时控制时间,单位:毫秒。 当不配置此参数时,对每个Event写入HDFS进行超时控制。当“hdfs.batchSize”大于0时,配置此参数可以提升写入HDFS性能。 说明: “hdfs.batchCallTimeout”设置多长时间需要考虑“hdfs.batchSize”的大小,“hdfs.batchSize”越大,“hdfs.batchCallTimeout”也要调整更长时间,设置过短时间容易导致写HDFS失败。 serializer.appendNewline true 将一个Event写入HDFS后是否追加换行符('\n'),如果追加该换行符,该换行符所占用的数据量指标不会被HDFS Sink统计。 hdfs.filePrefix over_%{basename} 数据写入hdfs后文件名的前缀。 hdfs.fileSuffix - 数据写入hdfs后文件名的后缀。 hdfs.inUsePrefix - 正在写入的hdfs文件前缀。 hdfs.fileType DataStream hdfs文件格式,包括“SequenceFile”、“DataStream”以及“CompressedStream”。 说明: “SequenceFile”和“DataStream”不压缩输出文件,不能设置参数“codeC”,“CompressedStream”压缩输出文件,必须设置“codeC”参数值配合使用。 hdfs.codeC - 文件压缩格式,包括gzip、bzip2、lzo、lzop、snappy。 hdfs.maxOpenFiles 5000 最大允许打开的hdfs文件数,当打开的文件数达到该值时,最早打开的文件将会被关闭。 hdfs.writeFormat Writable 文件写入格式,“Writable”或者“Text”。 hdfs.callTimeout 10000 写入HDFS超时控制时间,单位:毫秒。 hdfs.threadsPoolSize - 每个HDFS sink用于HDFS io操作的线程数。 hdfs.rollTimerPoolSize - 每个HDFS sink用于调度定时文件滚动的线程数。 hdfs.round false 时间戳是否四舍五入。若设置为true,则会影响所有基于时间的转义序列(%t除外)。 hdfs.roundUnit second 时间戳四舍五入单位,可选为“second”、“minute”或“hour”,分别对应为秒、分钟和小时。 hdfs.useLocalTimeStamp true 是否启用本地时间戳,建议设置为“true”。 hdfs.closeTries 0 hdfs sink尝试关闭重命名文件的最大次数。默认为0表示sink会一直尝试重命名,直至重命名成功。 hdfs.retryInterval 180 尝试关闭hdfs文件的时间间隔,单位:秒。 说明: 每个关闭请求都会有多个RPC往返Namenode,因此设置的太低可能导致Namenode超负荷。如果设置0,如果第一次尝试失败的话,该Sink将不会尝试关闭文件,并且把文件打开,或者用“.tmp”作为扩展名。 hdfs.failcount 10 数据写入hdfs失败的次数。该参数作为sink写入hdfs失败次数的阈值,当超过该阈值后上报数据传输异常告警。 Avro Sink Avro Sink把events转化为Avro events并发送到配置的主机的监测端口。常用配置如下表所示: 表11 Avro Sink常用配置 参数 默认值 描述 channel - 与之相连的channel。 type - avro sink的类型,必须设置为avro。 hostname - 绑定的主机名/IP。 port - 监测端口,该端口需未被占用。 batch-size 1000 批次发送的Event个数。 client.type DEFAULT 客户端实例类型,根据所配置的模型实际使用到的通信协议设置。该值可选值包括: DEFAULT,返回AvroRPC类型的客户端实例。 OTHER,返回NULL。 THRIFT,返回Thrift RPC类型的客户端实例。 DEFAULT_LOADBALANCING, 返回LoadBalancing RPC 客户端实例。 DEFAULT_FAILOVER, 返回Failover RPC 客户端实例。 ssl false 是否使用SSL加密。设置为true时还必须指定“密钥(keystore)”和“密钥存储密码(keystore-password)”。 truststore-type JKS Java信任库类型,“JKS”或“PK CS 12”。 说明: JKS的密钥库和私钥采用不同的密码进行保护,而PKCS12的密钥库和私钥采用相同密码进行保护。 truststore - Java信任库文件。 truststore-password - Java信任库密码。 keystore-type JKS ssl启用后密钥存储类型。 keystore - ssl启用后密钥存储文件路径,开启ssl后,该参数必填。 keystore-password - ssl启用后密钥存储密码,开启ssl后,该参数必填。 connect-timeout 20000 第一次连接的超时时间,单位:毫秒。 request-timeout 20000 第一次请求后一次请求的最大超时时间,单位:毫秒。 reset-connection-interval 0 一次断开连接后,等待多少时间后进行重新连接,单位:秒。默认为0表示不断尝试。 compression-type none 批数据压缩类型,“none”或“deflate”,“none”表示不压缩,“deflate”表示压缩。该值必须与AvroSource的compression-type匹配。 compression-level 6 批数据压缩级别(1-9),数值越高,压缩率越高。 exclude-protocols SSLv3 排除的协议列表,用空格分开。默认排除SSLv3协议。 HBase Sink HBase Sink将数据写入到HBase中。常用配置如下表所示: 表12 HBase Sink常用配置 参数 默认值 描述 channel - 与之相连的channel。 type - hbase sink的类型,必须设置为hbase。 table - HBase表名称。 columnFamily - HBase列族。 monTime 0(不开启) 线程监控阈值,更新时间超过阈值后,重新启动该Sink,单位:秒。 batchSize 1000 批次写入HBase的Event个数。 kerberosPrincipal - 认证HBase的Kerberos principal,普通模式集群不配置,安全模式集群必须配置。 kerberosKeytab - 认证HBase的Kerberos keytab,普通模式集群不配置,安全模式集群中,flume运行用户必须对jaas.cof文件中的keyTab路径有访问权限。 coalesceIncrements true 是否在同一个处理批次中,合并对同一个hbase cell多个操作。设置为true有利于提高性能。 Kafka Sink Kafka Sink将数据写入到Kafka中。常用配置如下表所示: 表13 Kafka Sink常用配置 参数 默认值 描述 channel - 与之相连的channel。 type - kafka sink的类型,必须设置为org.apache.flume.sink.kafka.KafkaSink。 kafka.bootstrap.servers - Kafka 的bootstrap 地址端口列表。如果集群安装有kafka并且配置已经同步,服务端可以不配置此项,默认值为Kafka集群中所有的broker列表,客户端必须配置该项,多个用逗号分隔。端口和安全协议的匹配规则必须为:21007匹配安全模式(SASL_PLAINTEXT),9092匹配普通模式(PLAINTEXT)。 monTime 0(不开启) 线程监控阈值,更新时间超过阈值后,重新启动该Sink,单位:秒。 kafka.producer.acks 1 必须收到多少个replicas的确认信息才认为写入成功。0表示不需要接收确认信息,1表示只等待leader的确认信息。-1表示等待所有的relicas的确认信息。设置为-1,在某些leader失败的场景中可以避免数据丢失。 kafka.topic - 数据写入的topic,必须填写。 flumeBatchSize 1000 批次写入Kafka的Event个数。 kafka.security.protocol SASL_PLAINTEXT Kafka安全协议,普通模式集群下须配置为“PLAINTEXT”。端口和安全协议的匹配规则必须为:21007匹配安全模式(SASL_PLAINTEXT),9092匹配普通模式(PLAINTEXT)。 ignoreLongMessage false 是否丢弃超大消息的开关。 messageMaxLength 1000012 Flume写入Kafka的消息的最大长度。 defaultPartitionId - 用于指定channel中的events被传输到哪一个Kafka partition ID ,此值会被partitionIdHeader覆盖。默认情况下,如果此参数不设置,会由Kafka Producer's partitioner 进行events分发(可以通过指定key或者kafka.partitioner.class自定义的partitioner)。 partitionIdHeader - 设置时,对应的Sink 将从Event 的Header中获取使用此属性的值命名的字段的值,并将消息发送到主题的指定分区。 如果该值无对应的有效分区,则会发生EventDeliveryException。 如果Header 值已经存在,则此设置将覆盖参数defaultPartitionId。 Other Kafka Producer Properties - 其他Kafka配置,可以接受任意Kafka支持的生产配置,配置需要加前缀 .kafka。 Thrift Sink Thrift Sink把events转化为Thrift events并发送到配置的主机的监测端口。常用配置如下表所示: 表14 Thrift Sink常用配置 参数 默认值 描述 channel - 与之相连的channel。 type thrift thrift sink的类型,必须设置为thrift。 hostname - 绑定的主机名/IP。 port - 监测端口,该端口需未被占用。 batch-size 1000 批次发送的Event个数。 connect-timeout 20000 第一次连接的超时时间,单位:毫秒。 request-timeout 20000 第一次请求后一次请求的最大超时时间,单位:毫秒。 kerberos false 是否启用Kerberos认证。 client-keytab - 客户端使用的keytab文件地址,flume运行用户必须对认证文件具有访问权限。 client-principal - 客户端使用的安全用户的Principal。 server-principal - 服务端使用的安全用户的Principal。 compression-type none Flume发送数据的压缩类型,“none”或“deflate”,“none”表示不压缩,“deflate”表示压缩。 maxConnections 5 Flume发送数据时的最大连接池大小。 ssl false 是否使用SSL加密。 truststore-type JKS Java信任库类型。 truststore - Java信任库文件。 truststore-password - Java信任库密码。 reset-connection-interval 0 一次断开连接后,等待多少时间后进行重新连接,单位:秒。默认为0表示不断尝试。
  • 常用Channel配置 Memory Channel Memory Channel使用内存作为缓存区,Events存放在内存队列中。常用配置如下表所示: 表6 Memory Channel常用配置 参数 默认值 描述 type - memory channel的类型,必须设置为memory。 capacity 10000 缓存在channel中的最大Event数。 transactionCapacity 1000 每次存取的最大Event数。 说明: 此参数值需要大于source和sink的batchSize。 事务缓存容量必须小于或等于Channel缓存容量。 channelfullcount 10 channel full次数,达到该次数后发送告警。 keep-alive 3 当事务缓存或Channel缓存满时,Put、Take线程等待时间。单位:秒。 byteCapacity JVM最大内存的80% channel中最多能容纳所有event body的总字节数,默认是 JVM最大可用内存(-Xmx )的80%,单位:bytes。 byteCapacityBufferPercentage 20 channel中字节容量百分比(%)。 File Channel File Channel使用本地磁盘作为缓存区,Events存放在设置的dataDirs配置项文件夹中。常用配置如下表所示: 表7 File Channel常用配置 参数 默认值 描述 type - file channel的类型,必须设置为file。 checkpointDir ${BIGDATA_DATA_HOME}/hadoop/data1~N/flume/checkpoint 说明: 此路径随自定义数据路径变更。 检查点存放路径。 dataDirs ${BIGDATA_DATA_HOME}/hadoop/data1~N/flume/data 说明: 此路径随自定义数据路径变更。 数据缓存路径,设置多个路径可提升性能,中间用逗号分开。 maxFileSize 2146435071 单个缓存文件的最大值,单位:bytes。 minimumRequiredSpace 524288000 缓冲区空闲空间最小值,单位:bytes。 capacity 1000000 缓存在channel中的最大Event数。 transactionCapacity 10000 每次存取的最大Event数。 说明: 此参数值需要大于source和sink的batchSize。 事务缓存容量必须小于或等于Channel缓存容量。 channelfullcount 10 channel full次数,达到该次数后发送告警。 useDualCheckpoints false 是否备份检查点。设置为“true”时,必须设置backupCheckpointDir的参数值。 backupCheckpointDir - 备份检查点路径。 checkpointInterval 30000 检查点间隔时间,单位:秒。 keep-alive 3 当事务缓存或Channel缓存满时,Put、Take线程等待时间。单位:秒。 use-log-replay-v1 false 是否启用旧的回复逻辑。 use-fast-replay false 是否使用队列回复。 checkpointOnClose true channel关闭时是否创建检查点。 Memory File Channel Memory File Channel同时使用内存和本地磁盘作为缓存区,消息可持久化,性能优于File Channel,接近Memory Channel的性能。此Channel目前处于试验阶段,可靠性不够高,不建议在生产环境使用。常用配置如下表所示: 表8 Memory File Channel常用配置 参数 默认值 描述 type org.apache.flume.channel.MemoryFileChannel memory file channel的类型,必须设置为“org.apache.flume.channel.MemoryFileChannel”。 capacity 50000 Channel缓存容量:缓存在Channel中的最大Event数。 transactionCapacity 5000 事务缓存容量:一次事务能处理的最大Event数。 说明: 此参数值需要大于source和sink的batchSize。 事务缓存容量必须小于或等于Channel缓存容量。 subqueueByteCapacity 20971520 每个subqueue最多保存多少byte的Event,单位:byte。 Memory File Channel采用queue和subqueue两级缓存,event保存在subqueue,subqueue保存在queue。 subqueue能保存多少event,由“subqueueCapacity”和“subqueueInterval”两个参数决定,“subqueueCapacity”限制subqueue内的Event总容量,“subqueueInterval”限制subqueue保存Event的时长,只有subqueue达到“subqueueCapacity”或“subqueueInterval”上限时,subqueue内的Event才会发往目的地。 说明: “subqueueByteCapacity”必须大于一个batchsize内的Event总容量。 subqueueInterval 2000 每个subqueue最多保存一段多长时间的Event,单位:毫秒。 keep-alive 3 当事务缓存或Channel缓存满时,Put、Take线程等待时间。 单位:秒。 dataDir - 缓存本地文件存储目录。 byteCapacity JVM最大内存的80% Channel缓存容量。 单位:bytes。 compression-type None 消息压缩格式:“none”或“deflate”。“none”表示不压缩,“deflate”表示压缩。 channelfullcount 10 channel full次数,达到该次数后发送告警。 Memory File Channel配置样例: server.channels.c1.type = org.apache.flume.channel.MemoryFileChannel server.channels.c1.dataDir = /opt/flume/mfdata server.channels.c1.subqueueByteCapacity = 20971520 server.channels.c1.subqueueInterval=2000 server.channels.c1.capacity = 500000 server.channels.c1.transactionCapacity = 40000 Kafka Channel Kafka Channel使用Kafka集群缓存数据,Kafka提供高可用、多副本,以防Flume或Kafka Broker崩溃,Channel中的数据会立即被Sink消费。 表9 Kafka channel 常用配置 Parameter Default Value Description type - kafka channel的类型,必须设置为 “org.apache.flume.channel.kafka.KafkaChannel”。 kafka.bootstrap.servers - Kafka的bootstrap地址端口列表。 如果集群已安装Kafka并且配置已经同步,则服务端可以不配置此项,默认值为Kafka集群中所有的broker列表。客户端必须配置该项,多个值用逗号分隔。端口和安全协议的匹配规则必须为:21007匹配安全模式(SASL_PLAINTEXT),9092匹配普通模式(PLAINTEXT)。 kafka.topic flume-channel channel用来缓存数据的topic。 kafka.consumer.group.id flume 从kafka中获取数据的组标识,此参数不能为空。 parseAsFlumeEvent true 是否解析为Flume event。 migrateZookeeperOffsets true 当Kafka没有存储offset时,是否从ZooKeeper中查找,并提交到Kafka。 kafka.consumer.auto.offset.reset latest 当没有offset记录时从什么位置消费,可选为“earliest”、“latest”或“none”。“earliest”表示将offset重置为初始点,“latest”表示将offset置为最新位置点,“none”表示若没有offset则发生异常。 kafka.producer.security.protocol SASL_PLAINTEXT Kafka生产安全协议。端口和安全协议的匹配规则必须为:21007匹配安全模式(SASL_PLAINTEXT),9092匹配普通模式(PLAINTEXT)。 说明: 若该参数没有显示,请单击弹窗左下角的"+"显示全部参数。 kafka.consumer.security.protocol SASL_PLAINTEXT 同上,但用于消费。端口和安全协议的匹配规则必须为:21007匹配安全模式(SASL_PLAINTEXT),9092匹配普通模式(PLAINTEXT)。 pollTimeout 500 consumer调用poll()函数能接受的最大超时时间,单位:毫秒。 ignoreLongMessage false 是否丢弃超大消息。 messageMaxLength 1000012 Flume写入Kafka的消息的最大长度。
  • 操作场景 该任务指导用户使用Flume服务端从本地采集静态日志保存到HDFS上“/flume/test”目录下。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Spooldir Source+Memory Channel+HDFS Sink。
  • 操作场景 该任务指导用户使用Flume服务端从Kafka的Topic列表(test1)采集日志保存到HDFS上“/flume/test”目录下。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Kafka Source+Memory Channel+HDFS Sink.
  • 操作场景 HBase可以通过对HFile中的data block编码,减少Key-Value中Key的重复部分,从而减少空间的使用。目前对data block的编码方式有:NONE、PREFIX、DIFF、FAST_DIFF和ROW_INDEX_V1,其中NONE表示不使用编码。另外,HBase还支持使用压缩算法对HFile文件进行压缩,默认支持的压缩算法有:NONE、GZ和SNAPPY,其中NONE表示HFile不压缩。 这两种方式都是作用在HBase的列簇上,可以同时使用,也可以单独使用。
  • Sqoop1.4.7适配步骤 下载开源sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz包(下载地址http://archive.apache.org/dist/sqoop/1.4.7/)。 将下载的sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz包放入已安装MRS客户端的节点的“/opt/Bigdata/client”目录并解压。 tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 从MySQL官网下载MySQL jdbc驱动程序“mysql-connector-java-xxx.jar”,具体MySQL jdbc驱动程序选择参见下表。 表1 版本信息 jdbc驱动程序版本 MySQL版本 Connector/J 5.1 MySQL 4.1、MySQL 5.0、MySQL 5.1、MySQL 6.0 alpha Connector/J 5.0 MySQL 4.1、MySQL 5.0 servers、distributed transaction (XA) Connector/J 3.1 MySQL 4.1、MySQL 5.0 servers、MySQL 5.0 except distributed transaction (XA) Connector/J 3.0 MySQL 3.x、MySQL 4.1 将MySQL 驱动包放入Sqoop的lib目录下(/opt/Bigdata/client/sqoop-1.4.7.bin__hadoop-2.6.0/lib)并修改jar包的属组和权限,参考图1的omm:wheel 和755的属组和权限。 图1 MySQL 驱动包的属组和权限 使用MRS客户端中Hive的lib目录下(/opt/Bigdata/client/Hive/Beeline/lib)的jackson开头的jar包替换Sqoop的lib下的相应jar包。 图2 jackson开头的jar 将MRS Hive客户端中(/opt/Bigdata/client/Hive/Beeline/lib)的jline的包,拷贝到Sqoop的lib下。 执行vim $JAVA_HOME/jre/lib/security/java.policy增加如下配置: permission javax.management.MBeanTrustPermission "register"; 执行如下命令,进入Sqoop的conf目录并增加配置: cd /opt/Bigdata/client/sqoop-1.4.7.bin__hadoop-2.6.0/conf cp sqoop-env-template.sh sqoop-env.sh 执行vim sqoop-env.sh 设置Sqoop的环境变量,Hadoop、Hive的目录根据实际目录修改。 export HADOOP_COMMON_HOME=/opt/Bigdata/client/HDFS/hadoop export HADOOP_MAPRED_HOME=/opt/Bigdata/client/HDFS/hadoop export HIVE_HOME=/opt/Bigdata/MRS_1.9.X/install/FusionInsight-Hive-3.1.0/hive(请按照实际路径填写) export HIVE_CONF_DIR=/opt/Bigdata/client/Hive/config export HCAT_HOME=/opt/Bigdata/client/Hive/HCatalog 图3 设置Sqoop的环境变量 编写Sqoop脚本。 例如: /opt/Bigdata/FusionInsight_Current/1_19_SqoopClient/install/FusionInsight-Sqoop-1.4.7/bin/sqoop import --connect jdbc:mysql://192.168.0.183:3306/test --driver com.mysql.jdbc.Driver --username 'root' --password 'xxx' --query "SELECT id, name FROM tbtest WHERE \$CONDITIONS" --hcatalog-database default --hcatalog-table test --num-mappers 1
  • 操作场景 该任务指导用户使用Flume服务端从本地采集静态日志保存到Kafka的Topic列表(test1)。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Spooldir Source+Memory Channel+Kafka Sink.
  • 操作场景 该任务指导用户使用Flume客户端从本地采集静态日志保存到HBase表:flume_test。该场景介绍的是多级agent串联操作。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置可以只用一个Flume场景,例如Server:Spooldir Source+File Channel+HBase Sink。
  • 新建流表 访问Flink WebUI,请参考访问FlinkServer WebUI界面。 单击“流表管理”进入流表管理页面。 单击“新建流表”,在新建流表页面参考表1填写信息,单击“确定”,完成流表创建。创建完成后,可在对应流表的“操作”列对流表进行编辑、删除等操作。 图1 新建流表 表1 新建流表信息 参数名称 参数描述 备注 流/表名称 流/表的名称。 例如:flink_sink 描述 流/表的描述信息。 - 映射表类型 Flink SQL本身不带有数据存储功能,所有涉及表创建的操作,实际上均是对于外部数据表、存储的引用映射。 类型包含Kafka、HDFS。 - 类型 包含数据源表Source,数据结果表Sink。不同映射表类型包含的表如下所示。 Kafka:Source、Sink HDFS:Source、Sink - 数据连接 选择数据连接。 - Topic 读取的Kafka的topic,支持从多个Kafka topic中读取,topic之间使用英文分隔符进行分隔。 “映射表类型”选择“Kafka”时存在此参数。 - 文件路径 要传输的HDFS目录或单个文件路径。 “映射表类型”选择“HDFS”时存在此参数。 例如: “/user/sqoop/ ”或“/user/sqoop/example.csv” 编码 选择不同“映射表类型”对应的编码如下: Kafka:CSV、JSON HDFS:CSV - 前缀 “映射表类型”选择“Kafka”,且“类型”选择“Source”,“编码”选择“JSON”时含义为:多层嵌套json的层级前缀,使用英文逗号(,)进行分隔。 例如:data,info表示取嵌套json中data,info下的内容,作为json格式数据输入 分隔符 选择不同“映射表类型”对应的含义为:用于指定CSV字段分隔符。当数据“编码”为“CSV”时存在此参数。 例如:“,” 行分隔符 文件中的换行符,包含“\r”、“\n”、“\r\n”。 “映射表类型”选择“HDFS”时存在此参数。 - 列分隔符 文件中的字段分隔符。 “映射表类型”选择“HDFS”时存在此参数。 例如:“,” 流/表结构 填写流/表结构,包含名称,类型。 - Proctime 指系统时间,与数据本身的时间戳无关,即在Flink算子内计算完成的时间。 “类型”选择“Source”时存在此参数。 - Event Time 指事件产生的时间,即数据产生时自带时间戳。 “类型”选择“Source”时存在此参数。 -
  • Sqoop常用命令介绍 表1 Sqoop常用命令介绍 命令 说明 import 数据导入到集群。 export 集群数据导出。 codegen 获取数据库中某张表数据生成Java并打包jar。 create-hive-table 创建Hive表。 eval 执行SQL并查看结果。 import-all-tables 导入某个数据库下的所有表到HDFS中。 job 生成一个sqoop任务。 list-databases 列举数据库名。 list-tables 列举表名。 merge 将HDFS不同目录下的数据合在一起并存放到指定目录。 metastore 启动元数据库,记录sqoop job的元数据。 help 打印帮助信息。 version 打印版本信息。
  • 公用参数介绍 表2 公用参数介绍 分类 参数 说明 连接数据库 --connect 连接关系型数据库的URL。 --connection-manager 指定连接管理类。 --driver jdbc 连接驱动包。 --help 帮助信息。 --password 连接数据库密码。 --username 连接数据库的用户名。 --verbose 在控制台打印详细信息。 import参数 --fields-terminated-by 设定字段分隔符,和Hive表或HDFS文件保持一致。 --lines-terminated-by 设定行分隔符,和Hive表或HDFS文件保持一致。 --mysql-delimiters MySQL默认分隔符设置。 export参数 --input-fields-terminated-by 字段分隔符。 --input-lines-terminated-by 行分隔符。 hive参数 --hive-delims-replacement 用自定义的字符替换数据中的\r\n等字符。 --hive-drop-import-delims 在导入数据到Hive时,去掉\r\n等字符。 --map-column-hive 生成Hive表时可以更改字段的数据类型。 --hive-partition-key 创建分区。 --hive-partition-value 导入数据库指定分区。 --hive-home 指定Hive安装目录。 --hive-import 表示操作是从关系型数据库导入到Hive中。 --hive-overwrite 覆盖Hive已有数据。 --create-hive-table 创建Hive表,默认false,如果目标表不存在,则会创建目标表。 --hive-table 指定Hive表。 --table 关系型数据库表名。 --columns 指定需要导入的关系型数据表字段。 --query 指定查询语句,将查询结果导入。 hcatalog参数 --hcatalog-database 指定hive库,使用hcatalog方式导入Hive库。 --hcatalog-table 指定hive表,使用hcatalog方式导入Hive表。 其他参数 -m或--num-mappers 后跟数字,表示sqoop任务的分片数。 --split-by 按照某一字段进行分片,配合-m。 --target-dir 指定HDFS临时目录。 --null-string string 类型为null时替换字符串。 --null-non-string 非string类型为null时替换字符串。 --check-column 增量判断的字段。 --incremental append或lastmodified 增量导入参数。 append:追加,比如对大于last-value指定的值之后的记录进行追加导入。 lastmodified:最后的修改时间,追加last-value指定的日期之后的记录。 --last-value 指定一个值,用于标记增量导入。 --input-null-string 替换null字符串,如果没有指定,则字符串null将被使用。 --input-null-non-string 替换非String的null字符串,如果没有指定,则字符串null将被使用。
  • 前提条件 MRS 3.1.0及之后版本在创建集群时已勾选Sqoop组件。 安装客户端,具体请参考安装客户端(3.x及之后版本)。 例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。 客户端目录/Sqoop/sqoop/lib下已有对应驱动包(例mysql驱动包mysql-connector-java-5.1.47.jar),如果没有请参考Sqoop1.4.7适配MRS 3.x集群章节中的步骤3下载对应MySQL包。
  • Sqoop使用样例 sqoop import(MySQL到HDFS) sqoop import --connect jdbc:mysql://10.10.231.134:3306/test --username root --password xxx --query 'SELECT * FROM component where $CONDITIONS and component_id ="MRS 1.0_002"' --target-dir /tmp/component_test --delete-target-dir --fields-terminated-by "," -m 1 --as-textfile sqoop export (OBS到MySQL) sqoop export --connect jdbc:mysql://10.10.231.134:3306/test --username root --password xxx --table component14 --export-dir obs://obs-file-bucket/xx/part-m-00000 --fields-terminated-by ',' -m 1 sqoop import(MySQL到OBS) sqoop import --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --table component --target-dir obs://obs-file-bucket/xx --delete-target-dir --fields-terminated-by "," -m 1 --as-textfile sqoop import(MySQL到Hive外obs表) sqoop import --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --table component --hive-import --hive-table component_test01 --fields-terminated-by "," -m 1 --as-textfile
  • 导入或导出数据时缺少MySQL驱动包 若执行sqoop import或sqoop export命令报错“Could not load db driver class: com.mysql.jdbc.Driver”,如图1所示,则表示缺少MySQL驱动包,需在MySQL官网下载对应MySQL驱动包,解压并上传至“客户端安装目录/Sqoop/sqoop/lib”目录下,再执行Sqoop导入或导出数据命令即可。 图1 缺少MySQL驱动包报错
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“KAFKA”区域的组件插件名称如“Kafka”。 单击“Add New Policy”,添加Kafka权限控制策略。 根据业务需求配置相关参数。 表1 Kafka权限参数 参数名称 描述 Policy Type Access。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 topic 配置当前策略适用的topic名,可以填写多个值。这里支持通配符,例如:test、test*、*。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外,例外条件优先级高于正常条件。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户。 单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Publish:生产权限。 Consume:消费权限。 Describe:查询权限。 Create: 创建主题权限。 Delete: 删除主题权限。 Describe Configs:查询配置权限。 Alter:修改topic的partition数量的权限。 Alter Configs:修改配置权限。 Select/Deselect All:全选/取消全选。 如需添加多条权限控制规则,可单击按钮添加。 如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类型,拒绝条件的优先级高于“Allow Conditions”中配置的允许条件。 例如为用户“testuser”添加“test”主题的生产权限,配置如下: 图1 Kafka权限参数 表2 设置权限 任务场景 角色授权操作 设置Kafka管理员权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Select/Deselect All”。 设置用户对Topic的创建权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式创建Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式创建Topic。 注意:目前Kafka只支持"--bootstrap-server"方式创建Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的删除权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Delete”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式删除Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式删除Topic。 注意:目前Kafka只支持对"--bootstrap-server"方式删除Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的查询权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”和“Describe Configs”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式查询Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式查询Topic。 注意:目前Kafka只支持对"--bootstrap-server"方式查询Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的生产权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Publish”。 设置用户对Topic的消费权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Consume”。 说明: 因为消费Topic时,涉及到Offset的管理操作,必须同时开启ConsumerGroup的“Consume”权限,详见“设置用户对ConsumerGroup Offsets 的提交权限” 设置用户对Topic的扩容权限(增加分区) 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter”。 设置用户对Topic的配置修改权限 当前Kafka内核暂不支持基于“--bootstrap-server”的Topic参数修改行为,故当前Ranger不支持对此行为的鉴权操作。 设置用户对Cluster的所有管理权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Kafka Admin”。 设置用户对Cluster的创建权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - cluster”的策略,单击按钮编辑策略。 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 说明: 对于Cluster的Create操作鉴权主要涉及以下两个场景: 集群开启了“auto.create.topics.enable”参数后,客户端向服务的还未创建的Topic发送数据的场景,此时会判断用户是否有集群的Create权限 对于用户创建大量Topic的场景,如果授予用户Cluster Create权限,那么该用户可以在集群内部创建任意Topic 设置用户对Cluster的配置修改权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter Configs”。 说明: 此处的配置修改权限,指的是Broker、Broker Logger的配置权限。 当授予用户配置修改权限后,即使不授予配置查询权限也可查询配置详情(配置修改权限高于且包含配置查询权限)。 设置用户对Cluster的配置查询权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”和 “Describe Configs”。 说明: 此处查询指的是查询集群内的Broker、Broker Logger信息。该查询不涉及Topic。 设置用户对Cluster的Idempotent Write权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Idempotent Write”。 说明: 此权限会对用户客户端的Idempotent Produce行为进行鉴权。 设置用户对Cluster的分区迁移权限管理 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter”。 说明: Cluster的Alter权限可以对以下三种场景进行权限控制: Partition Reassign场景下,迁移副本的存储目录。 集群里各分区内部leader选举。 Acl管理(添加或删除)。 其中1和2都是集群内部Controller与Broker间、Broker与Broker间的操作,创建集群时,默认授予内置kafka用户此权限,普通用户授予此权限没有意义。 3涉及Acl的管理,Acl设计的就是用于鉴权,由于目前kafka鉴权已全部托管给Ranger,所以这个场景也基本不涉及(配置后亦不生效)。 设置用户对Cluster的Cluster Action权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Cluster Action”。 说明: 此权限主要对集群内部副本主从同步、节点间通信进行控制,在集群创建时已经授权给内置kafka用户,普通用户授予此权限没有意义。 设置用户对TransactionalId的权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - transactionalid”的策略,单击按钮编辑策略。 在“transactionalid”配置事务ID。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Publish”和 "Describe"。 说明: “Publish”权限主要对用户开启了事务特性的客户端请求进行鉴权,例如事务开启、结束、提交offset、事务性数据生产等行为。 “Describe”权限主要对于开启事务特性的客户端与Coordinator的请求进行鉴权。 建议在开启事务特性的场景下,给用户同时授予“Publish”和“Describe”权限。 设置用户对DelegationToken的权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - delegationtoken”的策略,单击按钮编辑策略。 在“delegationtoken”配置delegationtoken。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“ Describe”。 说明: 当前Ranger对DelegationToken的鉴权控制仅限于对查询的权限控制,不支持对DelegationToken的create、renew、expire操作的权限控制。 设置用户对ConsumerGroup Offsets 的查询权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”。 设置用户对ConsumerGroup Offsets 的提交权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Consume”。 说明: 当给用户授予了ConsumerGroup的“Consume”权限后,用户会同时被授予“Describe”权限。 设置用户对ConsumerGroup Offsets 的删除权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Delete”。 说明: 当给用户授予了ConsumerGroup的“Delete”权限后,用户会同时被授予“Describe”权限。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • CDN受到恶意攻击会计费吗? 遭受攻击消耗的流量或带宽会按CDN的计费规则计费。 当 域名 遭受攻击影响到CDN其他用户或者CDN自身安全时,CDN封禁加速域名,最终域名状态调整为“停用”,停止 CDN加速 服务。域名停用后将无法正常访问,但域名配置信息仍会保留,待攻击停止后可联系客服申请解除封禁。 应对办法 应对办法 说明 配置访问控制 给域名配置访问控制功能(包括Referer防盗链、IP黑白名单、URL鉴权等),以避免产生不必要的流量带宽消耗。详细设置请参见访问控制。 配置CDN联动 CES 配置CDN联动CES功能,通过对接CES( 云监控服务 )实现实时查看账号下加速域名的基础数据(流量、带宽、状态码等)、设置告警等功能,当监控指标触发您设置的告警条件时,会以邮箱、短信等方式发送告警,方便您及时发现潜在的风险。 配置用量封顶 配置用量封顶功能,当用户的访问带宽达到设置的值后,CDN会停用您的加速域名,以免产生过高的账单。 配置请求限速 配置请求限速功能,当单个请求达到限速条件后终端用户的访问速度会被限制,一定程度上减少突发高带宽风险。 配置可用额度预警 配置可用额度预警功能,当账户可用额度低于一定金额时,系统会发送短信提醒。 为了确保统计数据的完整性和账单的准确性,CDN产品账单生成时间会存在延时,因此实际计费时间晚于对应的CDN资源消耗时间,无法通过账单来实时反馈资源消费情况,这是由于CDN产品自身的分布式节点特性导致,也是业界通用的处理方法。 父主题: 购买计费
  • CDN权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问CDN时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ECS服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CDN支持的API授权项请参见权限及授权项说明。 策略是以JSON格式描述权限集的语言。默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。IAM系统预置了各服务的常用权限,例如管理员权限、只读权限,您可以直接使用这些系统策略。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局项目中设置策略,访问CDN时,不需要切换区域。 如表1所示,包括了CDN的所有系统策略。
  • CDN与其他服务间依赖关系 CDN对其他云服务有诸多依赖关系,因此在您开启IAM系统策略授权后,在CDN Console控制台的各项功能需要配置相应的服务权限后才能正常查看或使用,前提条件如下: 依赖服务的权限配置均基于您已设置了IAM系统策略授权的CDN FullAccess或CDN ReadOnlyAccess策略权限。 如果IAM用户需要在CDN Console控制台拥有相应功能的查看或使用权限,请确认已经对该用户所在的用户组设置了CDN Administrator、CDN FullAccess或CDN ReadOnlyAccess策略的集群权限,再按如下表3增加依赖服务的权限。 表3 CDN Console中依赖服务的角色或策略 Console控制台功能 依赖服务 需配置角色/策略 OBS委托授权 统一身份认证 服务 IAM 创建委托:iam:agencies:createAgency 查询指定条件下的委托列表:iam:agencies:listAgencies 查询委托详情:iam:agencies:getAgency 为委托授予项目服务权限:iam:permissions:grantRoleToAgencyOnProject 查询委托是否拥有项目服务权限:iam:permissions:checkRoleForAgencyOnProject 查询项目列表:iam:projects:listProjects 查询权限列表:iam:roles:listRoles 源站配置 源站是OBS桶域名 对象存储服务 OBS 列举全部桶:obs:bucket:ListAllMyBuckets SCM证书 云证书管理服务 CCM 查询证书列表:scm:cert:list 导出证书:scm:cert:download 按照标签筛选域名 标签管理服务 TMS 查询预定义标签:tms:predefineTags:list 企业项目 企业管理 查询企业项目详情:eps:enterpriseProjects:get 查询企业项目列表:eps:enterpriseProjects:list
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全