配置Yarn通过Guardian访问OBS
参考配置Guardian服务对接OBS完成Guardian对接OBS后,即可在集群客户端执行Yarn任务访问OBS。
Yarn对接OBS
- 以客户端安装用户登录安装了Yarn客户端的节点。
- 执行以下命令,切换到客户端安装目录。
cd 客户端安装目录
- 执行以下命令配置环境变量。
source bigdata_env
- 如果集群为安全模式,执行以下命令进行用户认证,该用户需具有OBS目录的读写权限。普通模式集群无需执行用户认证。
kinit HDFS组件操作用户
- 在Yarn命令行显式添加要访问的OBS文件系统。
- 使用以下命令访问OBS文件系统。
- 使用以下命令创建OBS文件系统下的目录:
- 执行以下Yarn任务访问OBS:
yarn jar 客户端安装目录/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi -Dmapreduce.job.hdfs-servers=NAMESERVICE -fs obs://OBS并行文件系统名称 1 1
其中“NAMESERVICE”为HDFS文件系统中的NameService,默认为“hdfs://hacluster”,如有多个NameService, 以“,”分隔。
例如:
yarn jar /opt/hadoopclient/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi -Dmapreduce.job.hdfs-servers=hdfs://hacluster -fs obs://bucketname 1 1
OBS文件系统打印大量日志可能导致读写性能受影响,可通过调整OBS客户端日志级别优化,日志调整方式如下:
cd 客户端安装目录/Yarn/config
vi log4j.properties
在文件中添加OBS日志级别配置(应用若使用自带的log4j.properties,添加同样配置即可)
log4j.logger.org.apache.hadoop.fs.obs=WARN
Ranger权限配置
- 登录FusionInsight Manager,选择“系统 > 权限 > 用户组 > 添加用户组”,创建一个空角色的用户组,例如“obs_hadoop1”。
- 选择“系统 > 权限 > 用户 > 添加用户”,创建一个只关联用户组“obs_hadoop1”,关联角色“default”的用户,例如“hadoopuser1”。
- 使用rangeradmin用户登录Ranger管理页面。
- 在首页中单击“EXTERNAL AUTHORIZATION”区域的组件插件名称“OBS”。
- 单击“Add New Policy”,为1新建的用户组添加相应OBS路径的“Read”和“Write”权限。
例如,为用户组“obs_hadoop1”添加“obs://OBS并行文件系统名称/hadoop1”的“Read”和“Write”权限:
图2 为新建用户组赋予OBS路径读和写的权限