CDH 集群 使用 JindoFS SDK 访问 OSS

高斋晓开卷,独共圣人语。这篇文章主要讲述CDH 集群 使用 JindoFS SDK 访问 OSS相关的知识,希望能为你提供帮助。
CDH 集群 使用 JindoFS SDK 访问 OSSCDH(Cloudera\'s Distribution, including Apache Hadoop)是众多Hadoop发行版本中的一种,本文以CDH 5.16.2为例介绍如何配置CDH支持使用JindoFS SDK访问OSS。
步骤 1. 安装 jar 包
下载最新的jar包 jindofs-sdk-x.x.x.jar (下载页面),将sdk包安装到hadoop的classpath下。

cp ./jindofs-sdk-*.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib/jindofs-sdk.jar

2. 配置 JindoFS OSS 实现类
通过集群管理工具Cloudera Manager增加JindoFS OSS 实现类配置,并根据Cloudera Manager提示重启集群和部署客户端配置。
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

若没有Cloudera Manager管理的集群,可以配置core-site.xml中。
< configuration> < property> < name> fs.AbstractFileSystem.oss.impl< /name> < value> com.aliyun.emr.fs.oss.OSS< /value> < /property> < property> < name> fs.oss.impl< /name> < value> com.aliyun.emr.fs.oss.JindoOssFileSystem< /value> < /property> < /configuration>

3. 配置 OSS Access Key
通过集群管理工具Cloudera Manager增加OSS的Access Key、Access Key Secret、Endpoint等配置,并根据Cloudera Manager提示重启集群和部署客户端配置。
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

若没有Cloudera Manager管理的集群,可以配置core-site.xml中。
< configuration> < property> < name> fs.jfs.cache.oss.accessKeyId< /name> < value> xxx< /value> < /property> < property> < name> fs.jfs.cache.oss.accessKeySecret< /name> < value> xxx< /value> < /property> < property> < name> fs.jfs.cache.oss.endpoint< /name> < !-- ECS 环境推荐使用内网 OSS Endpoint,即 oss-cn-xxx-internal.aliyuncs.com --> < value> oss-cn-xxx.aliyuncs.com< /value> < /property> < /configuration>

JindoFS还支持更多的OSS AccessKey的配置方式,详情参考JindoFS SDK OSS AccessKey 配置。
4. 使用 JindoFS SDK 访问 OSS
用Hadoop Shell访问OSS,下面列举了几个常用的命令。
  • put 操作
hadoop fs -put < path> oss://< bucket> /

  • ls 操作
hadoop fs -ls oss://< bucket> /

  • mkdir 操作
hadoop fs -mkdir oss://< bucket> /< path>

  • rm 操作
hadoop fs rm oss://< bucket> /< path>

CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

5. 参数调优
JindoFS SDK包含一些高级调优参数,配置方式以及配置项参考文档 JindoFS SDK 配置项列表 【注:3.0 以下版本此 参考配置项列表】
6.spark、hive、impala加入此包
复制此包到cdh6.3.0的hadoop的lib文件夹下面 cp jindofs-sdk-3.7.2.jar /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hadoop/lib/jindofs-sdk.jar 进入到saprk的jars包建立软链接 cd/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/spark/jars ln -s ../../../lib/hadoop/lib/jindofs-sdk.jar jindofs-sdk.jar 进入到impala的jars包建立软链接 cd /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/impala/lib ln -s ../../../lib/hadoop/lib/jindofs-sdk.jar jindofs-sdk.jar 进入到hive的jars包建立软链接 cd/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hive/lib/ ln -s ../../../lib/hadoop/lib/jindofs-sdk.jar jindofs-sdk.jar

注意:以上每台cdh机器都需要操作

7.进入hdfs配置搜core-site.xml 的群集范围高级配置代码段(安全阀)
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片


8.进入hive配置搜core-site.xml 的群集范围高级配置代码段(安全阀)
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

9.进入yarn搜core-site.xml 的 YARN 服务高级配置代码段(安全阀)
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片

以上配置完之后重启整个集群。
注意:
1.重启的时候,先确认一下hdfs的namenode活动和yarn的ResourceManager活动的是哪一台。
2.重启的时候要每个组件每个组件的重启,防止全集群重启影响到任务挂起。
3.生产环境重启前要与开发确认,是否有任务在执行。
以下是通过JindoFS SDK
【CDH 集群 使用 JindoFS SDK 访问 OSS】
CDH 集群 使用 JindoFS SDK 访问 OSS

文章图片


    推荐阅读