云服务器内容精选

  • 【附】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 否 块大小。
  • 约束与限制 不支持以下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系统提供了分布式存储、计算和资源调度引擎,用于大规模数据处理和分析。OBS服务实现了Hadoop的HDFS协议,在大数据场景中可以替代Hadoop系统中的HDFS服务,实现Spark、MapReduce、Hive等大数据生态与OBS服务的对接,为大数据计算提供“ 数据湖 ”存储。 HDFS协议:Hadoop中定义了HDFS协议(通过FileSystem抽象类),其他各类存储系统均可以实现HDFS协议,例如Hadoop中内置的HDFS服务,华为云的 对象存储服务 OBS。
  • 对接步骤 配置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服务。
  • 对接步骤 以logstash-7.10.2为例。 下载logstash-7.10.2-linux-x86_64.tar.gz,并解压到/opt/logstash-7.10.2-linux-x86_64目录。 验证是否对接成功。 示例:以file为源端,以OBS为目的端。 创建配置文件file2obs.conf。参数说明见表1,更多详情请参见这里。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "input": { "file": { "path" : "/opt/nginx/logs/access.log", "start_position" : "beginning" } }, "output": { "s3": { "endpoint" : "obs endpoint",, "bucket" : "obs桶名", "access_key_id" : "ak", "secret_access_key" : "sk", "size_file" : 1048576, "time_file" : 1, "prefix" : "logstash/", "enable_metric" : true } } } 表1 参数说明 参数 说明 endpoint OBS的endpoint,例如 https://obs.cn-north-4.myhuaweicloud.com http://obs.cn-north-4.myhuaweicloud.com access_key_id 具备访问OBS权限的ak。 secret_access_key 具备访问OBS权限的sk。 bucket OBS的桶名称。 size_file 指定文件滚动大小(字节)。当文件大小达到设定的值时,会生成一个新的文件。 time_file 设置文件滚动周期(分钟)。当数据写入达到设定周期时,会生成一个新的文件。 prefix 指定文件存储的目录,例如“logstash/”,此时文件会写入到桶的logstash/目录下(注意路径不要以/开头)。 执行以下命令,运行logstash。 bin/logstash -f ../conf/file2obs.conf
  • 对接步骤 以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.3export 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