华为云用户手册

  • 正确的使用OBS提供的访问控制能力保护数据不泄露、不被篡改 正确的使用OBS提供的访问控制能力,可以有效预防您的数据被异常窃取或者破坏。 建议对不同角色的 IAM 用户仅设置最小权限,避免权限过大导致数据泄露或被误操作 为了更好的进行权限隔离和管理,建议您配置独立的IAM管理员,授予IAM管理员IAM策略的管理权限。IAM管理员可以根据您业务的实际诉求创建不同的用户组,用户组对应不同的数据访问场景,通过将用户添加到用户组并将IAM策略绑定到对应用户组,IAM管理员可以为不同职能部门的员工按照最小权限原则授予不同的数据访问权限,详情请参见部门公共数据权限管理和策略语法。 利用桶策略保护您的数据不被异常读取和操作 仅在资源上配置实际业务处理中所需权限,避免权限配置过大导致数据被错误分享给他人。详情请参见OBS权限控制概述。 OBS的桶策略支持多种Condition条件灵活设置,每一个Condition都是一个新的安全控制维度,建议您通过配置Condition进一步限定数据访问的上下文,如通过拒绝非指定源IP或非指定VPC对桶的访问,限制数据只能被指定客户端访问,避免数据被窃取。详情请参见限制指定IP地址对桶的访问权限、配置双端固定和桶策略参数说明。 建议使用双端固定,即同时设置 VPC终端节点 策略与桶策略,对OBS的资源进行权限控制 设置VPC终端节点策略可以限制VPC中的服务器(E CS /CCE/BMS)访问OBS中的特定资源;同时,设置桶策略可以限定OBS中的桶被特定VPC中的服务器访问,从而在请求来源和被访问资源两个角度保证OBS数据的安全性。详情请参见配置双端固定。 建议将需要公开访问的对象和私有的对象使用不同的桶进行存储,从而简化您的访问控制策略 推荐将需要公开访问的对象和私有的对象使用不同的桶进行存储。公开桶内请勿存放敏感数据,同时请避免私有桶误配置授权公开访问的桶策略导致私有对象泄露,建议存储私有对象的桶通过Condition进一步限制可以访问数据的源端确保数据不被外部攻击者窃取。详情请参见限制指定IP地址对桶的访问权限。 建议使用OBS的数据临时分享功能来快速分享指定数据,无需进行复杂的桶策略编写 当需要将存放在OBS中对象(文件或文件夹)分享给其他用户时,建议使用OBS的数据临时分享功能,分享的URL可指定有效期,过期自动失效,避免数据长期暴露给其他用户导致泄露。详情请参见通过临时URL访问OBS。 开启敏感操作多因子认证保护您的数据不被误删 OBS支持敏感操作保护,开启后执行删除桶等敏感操作时,系统会进行身份验证,进一步保证OBS配置和数据的安全性,对数据的高危操作进行控制。详情请参见敏感操作。
  • 加密存储数据 OBS支持SSE-KMS服务端加密方案,为桶配置SSE-KMS服务端加密能力后,对于上传到桶中的每个对象,OBS都会访问KMS服务获取您指定的KMS密钥进行 数据加密 ,避免数据明文存储。当下载对象时,OBS同样会访问KMS获取对应密钥进行数据解密,整个加解密过程中OBS都不会存储对应密钥。详情请参见配置桶默认加密。 OBS支持SSE-OBS服务端加密方案,为桶配置SSE-OBS服务端加密能力后,对于上传到桶中的每个对象,OBS都会进行数据加密,避免数据明文存储。当下载对象时,OBS会自动帮助用户进行数据解密。详情请参见配置桶默认加密。 除了SSE-KMS和SSE-OBS方案,OBS还支持SSE-C服务端加密方案,您可以在对象上传和下载的请求中携带密钥和加解密算法,OBS使用您提供的密钥和算法对对象数据进行加解密,避免数据明文存储。OBS不存储您提供的加密密钥,如果您丢失加解密密钥,则会无法获取该对象明文数据。详情请参见服务端加密SSE-C方式。
  • 构建数据的恢复、容灾能力避免数据被异常破坏 预先构建数据的容灾和恢复能力,可以有效避免异常数据处理场景下数据误删、破坏的问题。 建议启用多版本获得异常场景数据快速恢复能力 利用多版本控制,您可以在一个桶中保留一个对象的多个版本,在意外操作或应用程序故障时通过历史版本对象快速恢复数据。详情请参见多版本控制。 建议使用跨区域复制构建异地数据容灾能力 有些数据需要异地备份存储,跨区域复制为您提供跨区域数据容灾的能力,满足您将数据复制到异地进行备份的需求。详情请参见跨区域复制。
  • 确保您的数据在传输到OBS过程中不被窃取和篡改 建议使用HTTPS协议访问OBS,确保数据传输过程中不被窃取和破坏 HTTPS(超文本传输安全协议)是一种互联网通信协议,可保护客户端与服务端之间传输的数据的完整性和机密性。建议您使用HTTPS协议进行数据访问。 建议使用桶策略限制对OBS桶的访问必须使用HTTPS协议 为避免客户端误使用HTTP协议进行OBS业务操作,建议通过桶策略中的SecureTransport条件进行限制,限制是否必须使用HTTPS协议发起请求对该桶进行操作。SecureTransport配置为True时,发起的请求必须使用SSL加密。如何配置桶策略中Condition以及SecureTransport条件,详情请参见桶策略参数说明。
  • 背景信息 常见的Web端上传方法是用户通过浏览器上传文件至应用服务器,再由应用服务器上传至OBS,数据需要在应用服务器中转,传输效率较低,且多任务同时上传时应用服务器压力大。 本文介绍一种在Web端利用PostObject接口直传文件至OBS的方法,即使用表单上传方式上传文件至OBS。如图1所示,该方案省去了应用服务器这一步骤,提高了传输效率,不会对服务器产生压力,且服务端签名后直传可以保证传输的安全性。 图1 Web端PostObject直传流程图
  • 操作流程 大数据场景下使用OBS实现存算分离的操作流程如图1所示。 图1 操作流程 配置的核心是完成大数据平台与OBS对接,实现OBS作为大数据的统一 数据湖 存储。本文档提供三种主流大数据平台的对接指导,详情请参见支持的大数据平台简介。 (可选)OBS除了可以与主流大数据平台对接外,还可以直接与开源的大数据组件对接。当您使用开源的大数据组件时,可参考支持的大数据组件简介完成与OBS对接。 (可选)如果您的数据仍存储在本地HDFS,需要先将数据迁移到华为云OBS中。详情请参见迁移HDFS数据至OBS。 父主题: 大数据场景下使用OBS实现存算分离
  • 华为云 MapReduce服务 MRS ) 华为云MapReduce服务(MRS)是华为云提供的大数据服务,可以在华为云上部署和管理Hadoop系统,一键即可部署Hadoop集群。 MRS提供用户完全可控的一站式企业级大数据集群云服务,完全兼容开源接口,结合 华为云计算 、存储优势及大数据行业经验,为客户提供高性能、低成本、灵活易用的全栈大数据平台,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,并具备在后续根据业务需要进行定制开发的能力,帮助企业快速构建海量数据信息处理系统,并通过对海量信息数据实时与非实时的分析挖掘,发现全新价值点和企业商机。 MRS与OBS对接的具体操作,请参见华为云MRS对接OBS。
  • Distcp方式迁移 Hadoop Distcp(Distributed copy)主要是用于Hadoop文件系统内部或之间进行大规模数据复制的工具,它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 配置指南 参考Hadoop对接OBS中hadoop-huaweicloud的安装和配置方法,完成OBS相关配置。 使用示例 以迁移HDFS上的“/data/sample”目录为例,执行以下命令查看HDFS文件系统上此目录下的文件与目录。 hadoop fs -ls hdfs:///data/sample 执行以下命令,将HDFS文件系统上“/data/sample”目录下所有文件与目录迁移到OBS桶“obs-bigdata-posix-bucket”的“data/sample”目录下。 hadoop distcp hdfs:///data/sample obs://obs-bigdata-posix-bucket/data/sample 执行以下命令,查看拷贝的文件。 hadoop fs -ls obs://obs-bigdata-posix-bucket/data/sample
  • 注意事项 flink-obs-fs-hadoop目前仅支持OBS并行文件系统。 为了减少日志输出,在/opt/flink-1.12.1/conf/log4j.properties文件中增加配置: logger.obs.name=com.obs logger.obs.level=ERROR flink-obs-fs-hadoop的实现基于flink的plugin加载机制(flink从1.9开始引入),flink-obs-fs-hadoop必须通过flink的plugin机制进行加载,即将flink-obs-fs-hadoop放入/opt/flink-1.12.1/plugins/obs-fs-hadoop目录下。
  • 对接步骤 配置Druid。 修改配置: conf/druid/single-server/micro-quickstart/_common/common.runtime.properties 将druid-hdfs-storage加入druid.extensions.loadList。 配置Deep storage在OBS中的存储路径。 配置OBSA-HDFS插件。 在官方Github下载OBSA-HDFS插件:下载地址,然后拷贝到extensions/druid-hdfs-storage/ 目录。 在配置目录conf/druid/single-server/micro-quickstart/_common/下增加hdfs-site.xml,配置如下(其中endpoint按照桶所在的实际endpoint填写): 启动Druid服务。
  • 对接步骤 以flume 1.9版本为例。 下载apache-flume-1.9.0-bin.tar.gz。 安装flume。 解压apache-flume-1.9.0-bin.tar.gz到/opt/apache-flume-1.9.0-bin目录。 已部署Hadoop的环境:无需额外操作,部署Hadoop请参见Hadoop对接OBS。 未部署Hadoop的环境: 将hadoop中的相关jar包复制到/opt/apache-flume-1.9.0-bin/lib目录下,包含hadoop-huaweicloud-xxx.jar。 将添加了OBS相关配置的core-site.xml文件复制到/opt/apache-flume-1.9.0-bin/conf目录下。 验证是否对接成功。 示例:以flume内置的StressSource为source,以file为channel,以obs为sink。 创建flume配置文件:sink2obs.properties。 agent.sources = r1 agent.channels = c1 agent.sinks = k1 agent.sources.r1.type = org.apache.flume.source.StressSource agent.sources.r1.channels = c1 agent.sources.r1.size = 1024 agent.sources.r1.maxTotalEvents = 100000 agent.sources.r1.maxEventsPerSecond = 10000 agent.sources.r1.batchSize=1000 agent.sources.r1.interceptors = i1 agent.sources.r1.interceptors.i1.type = host agent.sources.r1.interceptors.i1.useIP = false agent.channels.c1.type = file agent.channels.c1.dataDirs = /data/agent/flume-data agent.channels.c1.checkpointDir = /data/agent/flume-checkpoint agent.channels.c1.capacity = 500000 agent.channels.c1.transactionCapacity = 50000 agent.sinks.k1.channel = c1 agent.sinks.k1.type = hdfs agent.sinks.k1.hdfs.useLocalTimeStamp = true agent.sinks.k1.hdfs.filePrefix = %{host}_k1 agent.sinks.k1.hdfs.path = obs://obs-bucket/flume/create_time=%Y-%m-%d-%H-%M agent.sinks.k1.hdfs.fileType = DataStream agent.sinks.k1.hdfs.writeFormat = Text agent.sinks.k1.hdfs.rollSize = 0 agent.sinks.k1.hdfs.rollCount = 1000 agent.sinks.k1.hdfs.rollInterval = 0 agent.sinks.k1.hdfs.batchSize = 1000 agent.sinks.k1.hdfs.round = true agent.sinks.k1.hdfs.roundValue = 10 agent.sinks.k1.hdfs.roundUnit = minute 执行以下命令,启动flume agent。 ./bin/flume-ng agent -n agent -c conf/ -f conf/sink2obs.properties
  • 启动presto 步骤如下: 启动hive metastore:hive --service metastore & 启动presto server:bin/launcher start (如何关闭presto服务:bin/launcher stop) 启动presto client: 重命名presto-cli-333-executable.jar为presto,放在bin目录下,然后赋予执行权限:chmod +x presto 启动client:./presto --server XX.XX.XX.XX:5050 --catalog hive --schema default
  • Server配置文件 配置属性文件etc/config.properties,包含Presto server的配置。Presto server可以同时为coordinator和worker,但一个大集群里最好就是只指定一台机器为coordinator。 coordinator节点的配置文件 coordinator=true node-scheduler.include-coordinator=true http-server.http.port=5050 discovery-server.enabled=true discovery.uri=http://192.168.XX.XX:5050 query.max-memory=20GB query.max-memory-per-node=1GB query.max-total-memory-per-node=2GB worker节点的配置文件 coordinator=false http-server.http.port=5050 discovery.uri=http://192.168.XX.XX:5050 query.max-memory=20GB query.max-memory-per-node=1GB query.max-total-memory-per-node=2GB 解释: coordinator:是否运行该实例为coordinator(接受client的查询和管理查询执行)。 node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。 http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。 query.max-memory:查询能用到的最大总内存。 query.max-memory-per-node:查询能用到的最大单节点内存。 discovery-server.enabled:Presto使用Discovery服务去找到集群中的所有节点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署,不需要额外的服务,Presto的coordinator内置一个Discovery服务。 discovery.uri:Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。 另外还有以下属性: jmx.rmiregistry.port:指定JMX RMI的注册。JMX client可以连接此端口 jmx.rmiserver.port:指定JMX RMI的服务器。可通过JMX监听。
  • 安装presto server 版本:prestoSQL-333 下载Presto客户端和服务端。 下载客户端 下载服务端 下载hadoop-huaweicloud插件:下载地址。 执行以下命令,解压Presto服务端。 tar –zxvf presto-server-333.tar.gz 在presto根目录/plugin/hive-hadoop2下放入如下两个jar包。 hadoop-huaweicloud-${hadoop.version}-hw-${version}.jar Apache commons-lang-xxx.jar 可从maven中央仓库下载或从hadoop目录中拷贝。
  • 节点配置文件 节点属性文件etc/node.properties,包含每个节点的配置。一个节点是一个Presto实例。这文件一般是在Presto第一次安装时创建的。以下是最小配置: node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/presto/data 解释: node.environment:环境名字,Presto集群中的节点的环境名字都必须是一样的。 node.id:唯一标识,每个节点的标识都必须是唯一的。就算重启或升级Presto都必须还保持原来的标识。 node.data-dir:数据目录,Presto用它来保存log和其他数据 示例: node.environment=presto_cluster node.id=bigdata00 node.data-dir=/home/modules/presto-server-0.215/data #data需要自己手动创建
  • JVM配置文件 JVM配置文件etc/jvm.config,包含启动Java虚拟机时的命令行选项。格式是每一行是一个命令行选项。此文件数据是由shell解析,所以选项中包含空格或特殊字符会被忽略。 以下是参考配置: -server -Xmx16G -XX:-UseBiasedLocking -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+ExitOnOutOfMemoryError -XX:+UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError -XX:ReservedCodeCacheSize=512M -Djdk.attach.allowAttachSelf=true -Djdk.nio.maxCachedBufferSize=2000000 备注:以上参数都是官网参数,实际环境需要调整
  • Catalog配置文件(重点) hive connector配置如下: 在etc目录下创建catalog目录 创建一个hive connector的配置文件:hive.properties # hive.properties #连接名 connector.name=hive-hadoop2 #配置hive metastore连接 hive.metastore.uri=thrift://192.168.XX.XX:9083 #指定hadoop的配置文件,注意core-site.xml需要按照https://github.com/huaweicloud/obsa-hdfs/tree/master/release/doc配置 hive.config.resources=/home/modules/hadoop-2.8.3/etc/hadoop/core-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/hdfs-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml #给删表权限 hive.allow-drop-table=true
  • 对接步骤 以Spark2.3.3为例。 下载spark-2.3.3-bin-without-hadoop.tgz,并解压到/opt/spark-2.3.3。 在/etc/profile文件中增加配置内容: export SPARK_HOME=/opt/spark-2.3.3 export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH 配置spark。 重命名/opt/spark-2.3.3/conf/spark-env.sh.template为spark-env.sh并增加配置: export SPARK_DIST_CLASSPATH=$(hadoop classpath) 更多配置内容请参见Apache Hadoop。 重命名/opt/spark-2.3.3/conf/log4j.properties.template为log4j.properties。 执行以下命令,验证是否对接成功。 $SPARK_HOME/bin/run-example org.apache.spark.examples.JavaWordCount obs://obs-bucket/input/test.txt
  • 约束与限制 不支持以下HDFS语义: Lease Symbolic link operations Proxy users File concat File checksum File replication factor Extended Attributes(XAttrs) operations Snapshot operations Storage policy Quota POSIX ACL Delegation token operations
  • 【附】hadoop-huaweicloud相关配置 配置项 默认值 是否必填 说明 fs.obs.impl org.apache.hadoop.fs.obs.OBSFileSystem 是 - fs.AbstractFileSystem.obs.impl org.apache.hadoop.fs.obs.OBS 是 - fs.obs.endpoint 无 是 华为云OBS的终端节点(Endpoint)。 fs.obs.access.key 无 是 华为云的AK(Access Key Id),需要具备访问OBS对应桶的权限。 fs.obs.secret.key 无 是 华为云的SK(Secret Access Key),需要具备访问OBS对应桶的权限。 fs.obs.session.token 无 否 华为云的securitytoken,需要具备访问OBS对应桶的权限。当使用临时AK/SK时需要。 fs.obs.security.provider 无 否 实现com.obs.services.IObsCredentialsProvider接口的类,用于获取访问OBS的凭证。 fs.obs.connection.ssl.enabled FALSE 否 是否通过HTTPS访问OBS。 fs.obs.threads.keepalivetime 60 否 控制读写线程池参数keepAliveTime。 fs.obs.threads.max 20 否 控制读写线程池参数corePoolSize和maximumPoolSize fs.obs.max.total.tasks 20 否 控制读写线程池参数BlockingQueue的容量,其等于fs.obs.threads.max+fs.obs.max.total.tasks fs.obs.multipart.size 104857600 否 写相关配置,多段上传大小。 fs.obs.fast.upload.buffer disk 否 写相关配置,所有数据在写入OBS前都会先缓存然后再上传到OBS,此参数用于设置缓存方式,取值范围: disk:缓存在磁盘 array:缓存在JVM堆内内存 bytebuffer:缓存在JVM堆外内存 fs.obs.buffer.dir ${hadoop.tmp.dir} 否 写相关配置,当fs.obs.fast.upload.buffer为disk时的缓存目录,支持多目录并以逗号分隔。 fs.obs.bufferdir.verify.enable FALSE 否 写相关配置,当fs.obs.fast.upload.buffer为disk时是否验证缓存目录是否存在以及是否具备写权限。 fs.obs.fast.upload.active.blocks 4 否 写相关配置,每个流操作最大可以使用的缓存个数(通过多段上传线程池最多可以提交的线程任务个数),从而限制每个流操作最大可以使用的缓存空间fs.obs.fast.upload.active.blocks*fs.obs.multipart.size。 fs.obs.fast.upload.array.first.buffer 1048576 否 写相关配置,当fs.obs.fast.upload.buffer为array时,此参数控制JVM堆内缓存初始化大小 fs.obs.readahead.range 1048576 否 写相关配置,预读片段大小。 fs.obs.multiobjectdelete.enable TRUE 否 删除相关配置,删除目录时是否启动批量删除。 fs.obs.delete.threads.max 20 否 删除相关配置,控制线程池参数maximumPoolSize和corePoolSize fs.obs.multiobjectdelete.maximum 1000 否 删除相关配置,批量删除时单次OBS批量删除请求中支持的最多可删除对象的个数,最大值为1000。 fs.obs.multiobjectdelete.threshold 3 否 删除相关配置,批量删除时当对象个数小于此参数值时将不启动批量删除。 fs.obs.list.threads.core 30 否 List相关配置,控制线程池参数corePoolSize fs.obs.list.threads.max 60 否 List相关配置,控制线程池参数maximumPoolSize fs.obs.list.workqueue.capacity 1024 否 List相关配置,控制线程池参数BlockingQueue的容量 fs.obs.list.parallel.factor 30 否 List相关配置,控制并发因子参数。 fs.obs.paging.maximum 1000 否 List相关配置,单次OBS List请求最多返回的对象个数,最大值为1000。 fs.obs.copy.threads.max 40 否 对象桶rename相关配置,对象桶rename目录时copy线程池配置参数maximumPoolSize,corePoolSize的值为此参数的一半,BlockingQueue的容量为1024。 fs.obs.copypart.size 104857600 否 对象桶rename相关配置,单个对象copy时当对象的大小超过了此参数值则进行多段copy,且段大小为此参数值;否则进行简单copy。 fs.obs.copypart.threads.max 5368709120 否 对象桶rename相关配置,单个对象copy时如果进行了多段copy,多段copy线程池配置参数maximumPoolSize,corePoolSize的值为此参数的一半,BlockingQueue的容量为1024。 fs.obs.getcanonicalservicename.enable FALSE 否 控制getCanonicalServiceName()接口的返回值。 TRUE:obs://bucketname FALSE:null fs.obs.multipart.purge FALSE 否 初始化OBSFilesystem时是否清理桶内的多段上传任务。 fs.obs.multipart.purge.age 86400 否 初始化OBSFilesystem时清理桶内多久之前的多段上传任务。 fs.obs.trash.enable FALSE 否 是否开启垃圾回收功能。 fs.obs.trash.dir 无 否 垃圾回收目录。 fs.obs.block.size 134217728 否 块大小。
  • 概述 Hadoop系统提供了分布式存储、计算和资源调度引擎,用于大规模数据处理和分析。OBS服务实现了Hadoop的HDFS协议,在大数据场景中可以替代Hadoop系统中的HDFS服务,实现Spark、MapReduce、Hive等大数据生态与OBS服务的对接,为大数据计算提供“数据湖”存储。 HDFS协议:Hadoop中定义了HDFS协议(通过FileSystem抽象类),其他各类存储系统均可以实现HDFS协议,例如Hadoop中内置的HDFS服务,华为云的 对象存储服务 OBS。
  • 在HDFS集群中增加配置项 在HDFS集群CONFIGS的ADVANCED配置项中增加Custom core-site.xml文件中的配置项,包括:fs.obs.access.key,fs.obs.secret.key,fs.obs.endpoint和fs.obs.impl。 fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint分别为用户的ak、sk和endpoint。访问密钥AK/SK和终端节点Endpoint请根据实际填写,AK/SK获取方式请参见访问密钥(AK/SK),Endpoint获取方式请参见终端节点(Endpoint)和访问 域名 。 fs.obs.impl配置为org.apache.hadoop.fs.obs.OBSFileSystem。 重启HDFS集群。
  • 增加Hive对接OBS的jar包 执行以下命令,在Hive Server节点创建auxlib文件夹。 mkdir /usr/hdp/3.0.1.0-187/hive/auxlib 执行以下命令,将OBSA-HDFS工具的jar包放到auxlib文件夹。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hive/auxlib 重启Hive集群。
  • 更新OBSA-HDFS工具 下载与hadoop版本配套的OBSA-HDFS工具:下载地址。 下载OBSA-HDFS工具的jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)到/mnt/obsjar目录。 hadoop-huaweicloud-x.x.x-hw-y.jar包含义:前三位x.x.x为配套hadoop版本号;最后一位y为OBSA版本号,y值最大为最新版本。如:hadoop-huaweicloud-3.1.1-hw-53.8.jar,3.1.1是配套hadoop版本号,53.8是OBSA的版本号。 如hadoop版本为3.1.x,则选择hadoop-huaweicloud-3.1.1-hw-53.8.jar。 执行以下命令,将OBSA-HDFS工具jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)拷贝到如下目录中。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/share/hst/activity-explorer/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/spark2/jars/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/tez/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/CAPACITY-SCHEDULER{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/FILES{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/WORKFLOW_MANAGER{1.0.0}/WEB-INF/lib/ ln -s /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud.jar
  • 更新OBSA-HDFS工具 下载与hadoop版本配套的OBSA-HDFS工具:下载地址。 并将OBSA-HDFS工具jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)上传到CDH各节点/opt/obsa-hdfs目录中。 hadoop-huaweicloud-x.x.x-hw-y.jar包含义:前三位x.x.x为配套hadoop版本号;最后一位y为OBSA版本号,y值最大为最新版本。如:hadoop-huaweicloud-3.1.1-hw-53.8.jar,3.1.1是配套hadoop版本号,53.8是OBSA的版本号。 如hadoop版本为3.1.x,则选择hadoop-huaweicloud-3.1.1-hw-53.8.jar。 增加hadoop-huaweicloud的jar包。 在CDH集群各节点执行以下命令,命令请根据hadoop-huaweicloud的jar包名字及实际CDH版本进行适配使用。 执行如下命令,将OBSA-HDFS工具的jar包放到/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/目录中。 cp /opt/obsa-hdfs/hadoop-huaweicloud-3.1.1-hw-53.8.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/ 执行如下命令,建立各目录的软连接,将hadoop-huaweicloud的jar包放入如下目录。 ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud-3.1.1-hw-53.8.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-navigator-server/libs/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/common_jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/lib/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-scm-telepub/libs/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop/client/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/spark/jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/impala/lib/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop-mapreduce/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/lib/cdh5/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-scm-telepub/libs/cdh5/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-navigator-server/libs/cdh5/hadoop-huaweicloud.jar
  • 应用场景 随着大数据技术的飞速发展,对数据价值的认识逐渐加深,大数据已经融入到了各行各业。根据相关调查报告数据显示,超过39.6%的企业正在应用大数据并从中获益;超过89.6%的企业已经成立或计划成立相关的大数据分析部门;超过六成的企业在扩大大数据的投入力度。对各行业来讲,大数据的使用能力成为未来取得竞争优势的关键能力之一。 在大数据场景下,数据已成为新资产,智能已成为新生产力。企业迫切需要完成数字化转型,提高生产力,使数据资产发挥最大价值。而传统企业在业务未上云之前,业务部署和数据存储往往都在本地IDC机房的多个集群,且一台服务器同时提供计算和存储能力,这种方式导致的如表1所示的几个关键问题,已成为企业数字化转型的阻碍。 表1 传统企业在大数据场景面临的关键问题 序号 关键问题 详细描述 1 多集群数据共享难 企业数据往往分别存储在IDC多个集群,存在如下问题: 无全局视图,数据只能在集群内部使用。 拷贝是跨集群数据共享的唯一途径,数据拷贝耗时长。 公共数据集多份存储,数据冗余。 2 计算存储资源绑定,导致资源浪费 计算和存储资源无法均衡,当计算和存储需求不一致时,只能等比扩容,势必造成一种资源的浪费。 3 数据三副本存储,利用率低,成本高 Hadoop分布式文件系统(HDFS)使用三副本保存数据,磁盘空间利用率仅33%,单盘利用率低于70%。
  • 方案优势 相比传统企业在本地IDC机房部署大数据业务,华为云数据存算分离方案的主要优势如表2。 表2 华为云大数据存算分离相比传统大数据方案的优势 序号 主要优势 详细描述 1 融合高效,协同分析 通过统一的权限控制,实现多集群间的数据共享。 数据“0”拷贝。 大数据和AI一体化,减少作业耗时。 2 存算分离,资源利用率高 计算存储解耦,支持独立扩容或缩容,计算资源可弹性伸缩,资源利用率提升。 3 数据EC冗余存储,利用率高,成本低 对象存储服务OBS支持利用率最高的分布式数据容错技术Erasure code,磁盘利用率大幅提升,数据存储空间需求远低于三副本。 此外,对象存储服务OBS提供了OBSFileSystem插件(OBSA-HDFS),可与上层大数据平台无缝对接,实现业务零改造。 OBSFileSystem的主要作用:提供HDFS文件系统的相关接口实现,让大数据计算引擎(Hive、Spark等)可以将OBS作为HDFS协议的底层存储。 图2 存算分离方案中的OBSFileSystem OBS服务支持对象存储桶(对象语义)和并行文件系统(POSIX文件语义),在大数据场景下建议选择并行文件系统。并行文件系统支持POSIX文件语义,通过OBSFileSystem封装,相较对象语义增加Rename、Append、hflush/hsync接口,实现完善的HDFS语义,为大数据计算提供了更好的性能。 基于上述优势,华为云存算分离大数据方案相比传统大数据方案,在同样的业务规模下所使用的计算资源、存储资源以及服务器数量都会有明显下降,同时资源利用率也能得到显著提升,可帮助企业降低业务综合成本。
  • 应用场景 一般情况下,用户会通过OBS提供的桶访问域名(例如https://bucketname.obs.cn-north-4.myhuaweicloud.com)或者绑定的自定义域名来访问OBS。 但在某些场景下,用户需要通过固定的IP地址访问OBS,例如:某些企业出于安全考虑,对于可访问的外部地址需要设置黑白名单,而这个时候对于OBS的访问则需要一个固定的IP地址。同样出于安全考虑,华为云OBS桶访问域名通过DNS解析的IP地址是会发生变化的,所以用户无法获取某个桶长期有效的固定IP地址。 此时,可以通过在ECS上搭建Nginx反向代理服务器,来实现通过固定IP地址访问OBS。
  • 方案架构 应用客户端每个请求都将向应用服务器申请预签名URL,该预签名URL有效期由应用服务器管理。具体流程如图1。 图1 移动应用访问OBS数据流程 角色分析如下: 应用客户端:即最终用户手机上的APP,负责向应用服务器申请包含预签名的URL,以及访问OBS完成数据上传或下载。 应用服务器:即提供该Android/iOS应用的开发者开发的APP后台服务,用于管理凭证信息以及发放预签名URL。 OBS:即华为云对象存储,负责处理移动应用的数据请求。 实现流程如下: 移动应用客户端向应用服务器申请一个预签名的URL。 Android和iOS应用使用OBS服务时,不需要存储访问密钥(AK/SK)。应用在上传前必须向用户的应用服务器申请访问OBS的URL,并携带必须信息,包括请求类型、资源路径和资源名称。比如上传操作需要标识该URL为上传请求,需要包含上传的路径以及上传对象的名称;下载操作需要标识该URL为下载请求,需要包含所下载对象的名称。 应用服务器作为可信设备,在应用服务器上存储访问密钥(AK/SK)。应用服务器在验证客户端身份合法之后,使用应用服务器保存的访问密钥(AK/SK)以及客户端访问的资源、操作类型生成预签名URL。举例: https://examplebucket.obs.cn-north-4.myhuaweicloud.com/objectkey?AccessKeyId=AccessKeyID&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D Android/iOS移动应用获取此URL,直接使用该URL操作数据,比如上传或者下载操作。 URL中会包含用户的AK、签名、有效期、资源等信息,任何拿到这个URL的人均可执行这个操作。OBS服务收到这个请求并验证签名后,认为该请求就是签发URL的用户自己在执行操作。例如构造一个携带签名信息的下载对象URL,拿到相应URL的人能下载这个对象,但该URL只在Expires指定的失效时间内有效(如果使用临时访问密钥,有效期为临时访问密钥有效时长和Expires的最小值)。URL中携带签名主要用于在不提供给其他人SK的情况下,让其他人能用预签发的URL来进行身份认证,并执行预定义的操作。
  • 资源和成本规划 最佳实践中涉及的资源如下: 表1 资源说明 资源 资源说明 应用客户端(APP Client) 最终用户手机上的APP,负责向应用服务器申请包含预签名的URL,以及访问OBS完成数据上传或下载。 应用服务器(APP Server) 提供该Android/iOS应用的开发者开发的APP后台服务,用于管理凭证信息以及发放预签名URL。 对象存储服务(OBS) 华为云对象存储服务,负责处理移动应用的数据请求。
共100000条
提示

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