cm 怎么限制hue数据下载_CDH遇到的问题

本文档总结了CDH集群在配置高可用后遇到的一系列问题及解决方案,包括Hive、Impala查询错误、Hue数据下载限制、HBase权限报错、YARN日志查看、SSH执行脚本问题以及CM生成keytab失败等,并提供了详细的解决步骤。
摘要由CSDN通过智能技术生成

CDH添加高hdfs高可用后,hive,impala查询报错

0: jdbc:hive2://localhost:10000/> select count(1) from person;

Error: Error while compiling statement: FAILED: SemanticException Unable to determine if hdfs://bi-master:8020/user/hive/warehouse/gtp.db/person is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://bi-master:8020/user/hive/warehouse/gtp.db/person, expected: hdfs://nameservice1 (state=42000,code=40000)

解决办法:

1.进入Hive服务并停止Hive的所有服务

2.点击 “操作” => "点击“更新Hive Metastore NameNode” =>“重启”

3.重启impala

4.假如有安装hue的话,

hdfs添加HttpFS角色

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

hdfs添加HttpFS.png

hue配置

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

hue指向httpFS.png

这样就能保证hue能找到正确的namenode

CDH集成kerberos后,hbase赋权报语法错误

一般这种情况是因为hbase:acl表丢失了

点击Hbase Web UI入口

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

hbase-web入口.png

查看hbase:acl

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

hbase_acl.png

假如hbase:acl不存在的话, 进入zookeeper相应目录删除/hbase目录

注意:相应的目录得由相应的principal来操作, 否则会报 Authentication isnot valid (zkclient可通过getAcl 查看权限)

解决办法:

1.获取要删除的注册目录的ACL

[root@bi-master ~]# zookeeper-client -server bi-master:2181

Connecting to bi-master:2181

....

[zk: bi-master:2181(CONNECTED) 1]

[zk: bi-master:2181(CONNECTED) 1] ls /

[cluster, controller, brokers, znode001, zookeeper, hadoop-ha, admin, isr_change_notification, dubbo, otter, controller_epoch, consumers, hive_zookeeper_namespace_hive, latest_producer_id_block, config, hbase]

[zk: bi-master:2181(CONNECTED) 2] getAcl /hbase

'world,'anyone

: r

'sasl,'hbase

: cdrwa

2.创建jaas-zk-keytab.conf文件

[root@bi-master ~]# vi /usr/deng_yb/jaas-zk-keytab.conf

Client {

com.sun.security.auth.module.Krb5LoginModule required

useKeyTab=true

keyTab="/opt/cm-5.11.0/run/cloudera-scm-agent/process/1247-hbase-HBASERESTSERVER/hbase.keytab"

storeKey=true

useTicketCache=false

principal="hbase/bi-master@WONHIGH.COM";

};

3.在操作zookeeper前将jaas-zk-keytab.conf加载到环境变量

[root@bi-master ~]# export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=/usr/deng_yb/jaas-zk-keytab.conf"

[root@bi-master ~]# zookeeper-client -server bi-master:2181

[zk: bi-master:2181(CONNECTED) 9] rmr /hbase

4.重启hbase

5.假如还是不行的话,在CM上把hbase服务删除,再重新添加即可

在CM看不到YARN 执行程序(例如spark)的日志

解决办法:

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

yarn_acl管理.png

要么就disableACL管理,要么就yarn.admin.acl=*

关于SSH问题

有这样一个场景,其他机器需要登陆集群执行shell命令,这时候需要用到ssh,举例

#!/bin/sh

.....

for file in `cat $KETTLE_REPOSITORY/gtp/gtp_msck_repair/gtp_tables.txt`

do

sql_msck=" msck repair table $file;"

echo $file

echo $sql_msck

expect<

set timeout 10000

spawn ssh $gtp_user@$gtp_ip "beeline -u 'jdbc:hive2://$gtp_ip:$gtp_port/gtp;principal=$gtp_principal' --hiveconf mapreduce.job.queuename=datacenter -e 'msck repair table $file;' "

expect "password: "

send "$gtp_password\n"

expect eof

exit

END

echo "finish"

done

#简单说下,就是通过ssh,expect远程登陆服务,登陆beeline执行表修复命令

1.当时这个脚本在开发和生产集群能运行,但在测试死活都运行不了,ssh版本和配置都一样,kdc服务正常,HiveServer2服务也正常

2.实在找不到差异的原因,考虑到有可能是命令带 ";" 分号导致的,就把该脚本分成两份

vi /usr/deng_yb/repair.sh

#!/bin/sh

gtp_ip=$1

gtp_port=$2

gtp_principal=$3

table=$4

ssh wms_test@test-gtp-cdh-node01 << eeooff

beeline -u 'jdbc:hive2://${gtp_ip}:${gtp_port}/gtp;principal=${gtp_principal}' --hiveconf mapreduce.job.queuename=datacenter -e 'msck repair table ${table};'

eeooff

原来的脚本改

...

spawn sh /usr/deng_yb/repair.sh $gtp_ip $gtp_port $gtp_principal $table

...

然后这两个脚本就能在任何环境执行了 (虽然方法笨,但胜在解决问题)

关于CM生成keytab问题

配置了KDC HA后,发现在CM上面新添加角色会报类似以下的错误

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

生成keytab失败.png

我们查看kdc日志发现,生成keytab的动作交给了从KDC操作,因为从KDC没有写权限,因此导致失败

查看krb5.conf文件

[realms]

WONHIGH.COM = {

kdc = bi-master

admin_server = bi-master

default_realm = WONHIGH.COM

kdc = bi-slave1

#admin_server = bi-slave1

把admin_server=bi-slave1注释掉即可

sparkstreaming消费kafka信息报错

Exception in thread "streaming-start" java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V

at org.apache.spark.streaming.kafka010.Subscribe.onStart(ConsumerStrategy.scala:85)

at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.consumer(DirectKafkaInputDStream.scala:70)

at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.start(DirectKafkaInputDStream.scala:240)

at org.apache.spark.streaming.DStreamGraph$$anonfun$start$5.apply(DStreamGraph.scala:49)

at org.apache.spark.streaming.DStreamGraph$$anonfun$start$5.apply(DStreamGraph.scala:49)

at scala.collection.parallel.mutable.ParArray$ParArrayIterator.foreach_quick(ParArray.scala:143)

解决办法

spark2配置界面设置kafka客户端版本号

56671bb089e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

kafka设置版本号.png

sqoop导数问题

1.数据库到hive过程中任务执行一半报错

建议先建表,再导入数据,不建议直接在sqoop命令自动建表,hbase同理

字段类型要设计好

2.从关系型数据库到hive,结果列错位,很多列变成NULL

错位是因为oralce表里面某些列包含切分的字符'\t',导致其中一列列切分成两列,从而列错位;

重新定义列分割字符,找个没有在数据中体现的,例如'^'

3.从关系型数据库到hive,结果行数不一样,count出来比原来多

行数变多是因为oracle表里面某些列包含行切分字符'\n';

因为目前的hive版本行切分只支持'\n',所以不能替换,加上--hive-drop-import-delims消除数据里面的'\n'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值