【2019-07-17】jh使用spark on hbase获取

2019-07-17  本文已影响0人  学师大术

版本

70版本 Spark2.1

问题描述

使用spark on hbase特性时候,开启spark.yarn.security.credentials.hbase.enabled=true,无法成功获取到hbase的token,导致访问hbase时候提示token失效。

分析过程

1.首先验证客户端是否正确。客户反馈客户端是重新安装的
2.检查客户端与集群时间差不要过大。
3.检查dns,保证没有dns。

cat /etc/resolv.conf

4.检查使用提交任务用户是否具备hbase和zookeeper。这里的客户端路径为 /opt/hadoopclient/
,实际环境根据情况更改

//加载客户端环境变量
source /opt/hadoopclient/bigdata_env
//1.认证用户zzl,zzl根据你的提交任务更改
kinit zzl
//2.测试能正常访问hbase,进入hbase shell
hbase shell
list
quit
//3.测试正常连接zookeeper,ip换成实际的业务ip
zkCli.sh -server ip:24002
ls /
quit

5.验证提交的token获取情况

//确定使用的是spark2x的客户端
source /opt/hadoopclient/Spark2x/component_env
which spark-submit
//修改客户端的日志级别
vi /opt/hadoopclient/Spark2x/spark/conf/log4j-executor.properties
//将log4j.rootCategory修改成
log4j.rootCategory = DEBUG,sparklog
//提交spark2x任务, /opt/user.keytab是你的keytab路径,zzl是你的用户名,/opt/hadoopclient/是客户端路径
spark-submit --class org.apache.spark.examples.SparkPi  --master yarn --deploy-mode cluster --keytab /opt/user.keytab --principal zzl --conf spark.yarn.security.credentials.hbase.enabled=true /opt/hadoopclient/Spark2x/spark/examples/jars/spark-examples_2.11-2.1.0.jar 10000
//提交一个mr
yarn jar /opt/client/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 2 1

分析token运行日志,在客户端使用命令

hdfs dfs -get /tmp/logs/*/logs/application_1563158517282_0040 .
//验证token获取情况,正常情况:
grep "Attempting to fetch HBase security token" * -a
grep "Get token from HBase:" * -a
grep "Failed to get token from service" * -a
只要前两个有内容,就说明客户端正常。

结论

最后发现是权限问题,导致用户获取token失败。

上一篇下一篇

猜你喜欢

热点阅读