详情页标题前

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS

详情页1

简介

CDH(Cloudera’s Distribution, including Apache Hadoop)是业界流行的 Hadoop 发行版本。本文指导如何在 CDH 环境下通过 HDFS 协议访问对象存储(Cloud Object Storage,COS)存储桶,以实现大数据计算与存储分离,提供灵活及低成本的大数据解决方案。注意 通过 HDFS 协议访问 COS 存储桶,需要先开启元数据加速能力。当前 COS 对大数据组件支持情况如下:

组件名称 CHDFS 大数据组件支持情况 服务组件是否需要重启
Yarn 支持 重启 NodeManager
Yarn 支持 重启 NodeManager
Hive 支持 重启 HiveServer 及 HiveMetastore
Spark 支持 重启 NodeManager
Sqoop 支持 重启 NodeManager
Presto 支持 重启 HiveServer 及 HiveMetastore 和 Presto
Flink 支持
Impala 支持
EMR 支持
自建组件 后续支持
HBase 不推荐

版本依赖

本文依赖的组件版本如下:CDH 5.16.1Hadoop 2.6.0

使用方法

存储环境配置

1. 登录 CDH 管理页面。2. 在系统主页,选择配置 > 服务范围 > 高级,进入高级配置代码段页面,如下图所示:

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS

3. Cluster-wide Advanced Configuration Snippet(Safety Valve) for core-site.xml 的代码框中,填入 COS 大数据服务配置。

<property><name>fs.AbstractFileSystem.ofs.impl</name><value>com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter</value></property><property><name>fs.ofs.impl</name><value>com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter</value></property><!--本地 cache 的临时目录, 对于读写数据, 当内存 cache 不足时会写入本地硬盘, 这个路径若不存在会自动创建--><property><name>fs.ofs.tmp.cache.dir</name><value>/data/emr/hdfs/tmp/chdfs/</value></property><!--appId-->      <property><name>fs.ofs.user.appid</name><value>1250000000</value></property>

以下为必选的配置项(需添加到 core-site.xml 中),其他配置可参见 在计算集群中挂载 COS 存储桶

配置项 含义
fs.ofs.user.appid 1250000000 用户 appid
fs.ofs.tmp.cache.dir /data/emr/hdfs/tmp/chdfs/ 本地 cache 的临时目录
fs.ofs.impl com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter chdfs 对 FileSystem 的实现类,固定为 com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
fs.AbstractFileSystem.ofs.impl com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter chdfs 对 AbstractFileSystem 的实现类,固定为 com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter

4. 对 HDFS 服务进行操作,单击部署客户端配置,此时以上 core-site.xml 配置会更新到集群里的机器上。5. 将最新的 客户端安装包 放置到 CDH HDFS 服务的 jar 包路径下,请根据实际值进行替换,示例如下:

cp chdfs_hadoop_plugin_network-2.0.jar /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop-hdfs/

注意 在集群中的每台机器都需要在相同的位置放置 SDK 包。

数据迁移

使用 Hadoop Distcp 工具将 CDH HDFS 数据迁移到 COS 存储桶中,详情请参见 Hadoop 文件系统与 COS 之间的数据迁移

大数据套件使用 CHDFS

MapReduce

操作步骤1. 按照 数据迁移 章节,配置好 HDFS 的相关配置,并将 COS 的 客户端安装包,放置到 HDFS 相应的目录。2. 在 CDH 系统主页,找到 YARN,重启 NodeManager 服务(TeraGen 命令可以不用重启,但是 TeraSort 由于业务内部逻辑,需要重启 NodeManger,建议都统一重启 NodeManager 服务)。示例下面以 Hadoop 标准测试中的 TeraGen 和 TeraSort 为例:

hadoop jar ./hadoop-mapreduce-examples-2.7.3.jar teragen -Dmapred.map.tasks=4 1099 ofs://examplebucket-1250000000/teragen_5/
hadoop jar ./hadoop-mapreduce-examples-2.7.3.jar terasort -Dmapred.map.tasks=4 ofs://examplebucket-1250000000/teragen_5/ ofs://examplebucket-1250000000/result14

说明ofs:// schema后面请替换为用户 CHDFS 的挂载点路径。

Hive

MR 引擎

操作步骤1. 按照 数据迁移 章节,配置好 HDFS 的相关配置,并且将COS 的 客户端安装包,放置到 HDFS 相应的目录。2. 在 CDH 主页面,找到 HIVE 服务, 重启 Hiveserver2 及 HiverMetastore 角色。示例某用户的真实业务查询,例如执行 Hive 命令行,创建一个 Location,作为在 CHDFS 上的分区表:

CREATE TABLE `report.report_o2o_pid_credit_detail_grant_daily`(  `cal_dt` string,  `change_time` string,  `merchant_id` bigint,  `store_id` bigint,  `store_name` string,  `wid` string,  `member_id` bigint,  `meber_card` string,  `nickname` string,  `name` string,  `gender` string,  `birthday` string,  `city` string,  `mobile` string,  `credit_grant` bigint,  `change_reason` string,  `available_point` bigint,  `date_time` string,  `channel_type` bigint,  `point_flow_id` bigint)PARTITIONED BY (  `topicdate` string)ROW FORMAT SERDE  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'STORED AS INPUTFORMAT  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'    OUTPUTFORMAT  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'LOCATION  'ofs://examplebucket-1250000000/user/hive/warehouse/report.db/report_o2o_pid_credit_detail_grant_daily'TBLPROPERTIES (  'last_modified_by'='work',  'last_modified_time'='1589310646',  'transient_lastDdlTime'='1589310646')

执行 SQL 查询:

select count(1) from report.report_o2o_pid_credit_detail_grant_daily;

观察结果如下:

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS



Tez 引擎

Tez 引擎需要将 COS 的 客户端安装包导入到 Tez 的压缩包内,下面以 apache-tez.0.8.5 为例进行说明:操作步骤1. 找到 CDH 集群安装的 tez 包,然后解压,例如/usr/local/service/tez/tez-0.8.5.tar.gz。2. 将 COS 的 客户端安装包放置到解压后的目录下,然后重新压缩输出一个压缩包。3. 将新的压缩包上传到 tez.lib.uris 指定的路径下(如果之前存在路径则直接替换即可)。4. 在 CDH 主页面,找到 HIVE,重启 hiveserver 和 hivemetastore。

Spark

操作步骤1. 按照 数据迁移 章节,配置好 HDFS 的相关配置,并且将 COS 的 客户端安装包,放置到 HDFS 相应的目录。2. 重启 NodeManager 服务。示例以进行 Spark example word count 测试为例。

spark-submit  --class org.apache.spark.examples.JavaWordCount --executor-memory 4g --executor-cores 4  ./spark-examples-1.6.0-cdh5.16.1-hadoop2.6.0-cdh5.16.1.jar ofs://examplebucket-1250000000/wordcount

执行结果如下:

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS



Sqoop

操作步骤1. 按照 数据迁移 章节,配置好 HDFS 的相关配置,并且将 COS 的 客户端安装包,放置到 HDFS 相应的目录。2. COS 的 客户端安装包还需要放到 sqoop 目录下(例如/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/sqoop/)。3. 重启 NodeManager 服务。示例以导出 MYSQL 表到 COS 为例,可参考 关系型数据库和 HDFS 的导入导出 文档进行测试。

sqoop import --connect "jdbc:mysql://IP:PORT/mysql" --table sqoop_test --username root --password 123  --target-dir ofs://examplebucket-1250000000/sqoop_test

执行结果如下:

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS



Presto

操作步骤1. 按照 数据迁移 章节,配置好 HDFS 的相关配置,并且将 COS 的 客户端安装包,放置到 HDFS 相应的目录。2. COS 的 客户端安装包还需要放到 presto 目录下(例如/usr/local/services/cos_presto/plugin/hive-hadoop2)。3. 由于 presto 不会加载 hadoop common 下的 gson-2...jar,需将 gson-2...jar 也放到 presto 目录下(例如 /usr/local/services/cos_presto/plugin/hive-hadoop2,仅 COS 依赖 gson)。4. 重启 HiveServer、HiveMetaStore 和 Presto 服务。示例以 HIVE 创建 Location 为 COS 的表查询为例:

select * from chdfs_test_table where bucket is not null limit 1;

说明 chdfs_test_table 为 location 是 ofs scheme 的表。查询结果如下:

腾讯云对象存储在 CDH 集群上通过 HDFS 协议访问 COS


对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144846.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云云函数(SCF)SCF + SMS 实现短信验证码功能-云淘科技

    通过手机短信发送验证码,是最普遍、最安全验证用户真实身份的方式。目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。n本文以使用 云函数 开发一个短信验证码登录注册服务为例,帮助您了解如何实现短信验证码功能。除云函数之外,还可通过使用 发送短信接口 实现。 准备工作 已 注册腾讯云 账号,并完成 企业实名认证。已 …

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版事务拆分功能

    TDSQL-C MySQL 版的数据库代理提供事务拆分功能,能够将一个事务中读和写操作拆分到不同的实例上去执行,读请求转发到只读实例,降低主实例负载。说明:显示事务(例如 begin 或者 star transaction )暂时不支持拆分。开启或关闭事务拆分后仅对新连接生效。  背景信息 默认情况下,TDSQL-C MySQL 版数据库代理会将事务内的所…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云容器服务欠费说明同尘科技

    欠费说明 TKE Serverless 集群当前仅对集群内资源进行计费,其中包含后付费资源和预付费资源,从您的账户欠费(账户余额被扣为负值时刻)起:后付费资源(按量计费 Pod)将在下一个计费周期立即停服并释放底层资源。预付费资源(包月超级节点、包月预留券)将不受账户欠费影响,包月超级节点仍可调度 Pod,包月预留券仍可抵扣同地域同规格的按量计费 Pod。 …

    腾讯云 2023年12月9日
  • 腾讯云负载均衡传统型负载均衡概述

    概述 传统型负载均衡配置简单,支持简单的负载均衡场景:传统型公网负载均衡:支持 TCP/UDP/HTTP/HTTPS 协议。传统型内网负载均衡:支持 TCP/UDP 协议。负载均衡有两种实例类型:负载均衡(此前亦被称为“应用型负载均衡”)和传统型负载均衡。负载均衡可覆盖传统型负载均衡的所有功能。从产品功能、产品性能等多方面考虑,建议您使用的实例类型是负载均衡…

    腾讯云 2023年12月9日
  • 阿里云容器服务ACK删除集群实例-云淘科技

    根据集群ID,删除集群实例,并释放集群所有节点资源。 具体的API描述,请参见删除集群。 API请求响应 请求格式 aliyun cs DELETE /clusters/ 响应结果 无。 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时活动1折起,即将结束: 马上收藏同尘科技为腾讯云授权服务中心。 购买腾…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。