大数据应用对接适配问题及解决方案

文章讨论了解决SQLServer中文显示问题、Hive中文注释及表注释、HDFS服务状态切换、Dolphin启动错误、HiveSQL执行卡住、Doris配置、DataX连接问题以及Kafka和HiveKerberos认证等常见大数据技术平台的故障排查和配置方法。
摘要由CSDN通过智能技术生成

=========sqlserver中文显示问号:
ALTER DATABASE 你要更改的数据库的名字 COLLATE Chinese_PRC_CI_AS;
执行失败就重启数据库服务再执行

=========hive字段注释和表注释中文显示问号
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

=========hdfs web显示standby但切换不回来
lsof -i:8020
cd /usr/local/hadoop-3.1.3
sbin/stop-all.sh
lsof -i:8020
kill -9 剩余进程
sbin/start-all.sh
lsof -i:8020
8个正常
查看nn1状态,若还是为standby,则切换
bin/hdfs haadmin -transitionToStandby --forcemanual nn2
注意大写Y
bin/hdfs haadmin -transitionToActive --forcemanual nn1
最后结果:
bin/hdfs haadmin -getServiceState nn1
active
bin/hdfs haadmin -getServiceState nn2
standby

=========dolphin启动报错无可用的master节点
重启dolphin
cd /usr/local/dolphinscheduler-3.1.7/bin/
./stop-all.sh
./start-all.sh

=========hive执行需要计算的sql卡住set mapreduce.job.reduces=
访问8088报错There is no active RM right now. HA Zookeeper Connection State: TERMINATED
1.网上有说设置参数set hive.exec.mode.local.auto=true;
但是执行报错return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=2)
2.!!!!!最终解决方法
1)检查每个节点zookeeper状态./zkServer.sh status
./zkServer.sh stop
./zkServer.sh start
2)jps查看,ResourceManager和NodeManager是否存在
关闭ResourceManager:yarn --daemon stop resourcemanager
再次jps查看,发现resourceManager依然存在。使用kill -9 杀掉,再启动yarn --daemon start resourcemanager
再去访问8088正常。执行sql正常。
可能原因:yarn resourceManager启动状态不正常。

=========doris安装 using ‘ulimit -n 65536’.
[root@localhost bin]# ./start_be.sh --daemon
Please set the maximum number of open file descriptors to be 65536 using ‘ulimit -n 65536’.
[root@localhost bin]# ulimit -n 65536

  • soft nproc 204800
  • hard nproc 204800
  • soft nofile 204800
  • hard nofile 204800

======== zookeeper启动
chown -R dolphinxx /usr/local/zookeeper
cd /usr/local/zookeeper/bin
./zkServer.sh start

========doriswriter no route
开放端口 8030 8040 9030

=======kingbase datax连不上
datax的数据库驱动为8.2.0,需要替换为8.6.0

======Failed to flush data to Doris
1.换行符问题。
2.不为空列有空值

=== datax往hdfs写数== Class org.apache.hadoop.hdfs.server.namenode.ha.AdaptiveFailoverProxyProvider not found===Couldn’t create proxy provider null
dfs配的不对,或没在hosts文件映射或者改成用ip:端口

=datax连接华为hive,jdbc=
Unable to read HiveServer2 configs from ZooKeeper

  1. 没加ZooKeeper依赖
  2. 没把配置文件放resources里

===数据源连接inceptor报bigdata2找不到host
配置服务器bigdata2的hosts映射

华为keberos认证kafka连接报错=======
Failed authentication with 主机名/ip (An error
: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed [Cause
d by GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database
(7) - LOOKING_UP_SERVER)]) occurred when evaluating SASL token received from the Kafka Broker. This may b
e caused by Java’s being unable to resolve the Kafka Broker’s hostname correctly. You may want to try to
adding ‘-Dsun.net.spi.nameservice.provider.1=dns,sun’ to your client’s JVMFLAGS environment. Users must c
onfigure FQDN of kafka brokers when authenticating using SASL and socketChannel.socket().getInetAddress( ).getHostName() must match the hostname in principal/hostname@realm Kafka Client will go to AUTHENTICA
TION_FAILED state.)
需要使用华为的kafka包,若引用了还是不管用,检查是不是没有排除普通的kafka包,例如kafka-clients-2.3.1和kafka-clients-2.8.1-h0.cbu.mrs.321.r13不能同时存在。
还有kafka-streams-examples、kafka-streams、kafka_2.12

== inceptor和开源hive和华为hive一起引入项目报错NoClassDefFoundError: org/apache/hive/service/cli/thrift/TProtocolVersion
inceptor用maven引入。华为hive依赖用scope方式引入!!绝不能用maven下载依赖。否则会覆盖开源hive的版本。

== hdfswriter datax 报错Failed on local exception: java.io.IOException: java.lang.IllegalArgumentExceptio
n: Failed to specify server’s Kerberos principal name; Host Details :xx
1.配置kerberosPrincipal需要写全名 2.hadoopConfig里添加dfs.datanode.kerberos.principal和dfs.namenode.kerberos.principal,这两个参数都在hdfs-site.xml里找。
“kerberosPrincipal”: “rd_hdfs@HADOOP.COM”,
“hadoopConfig”: {
“hadoop.security.authentication”: “Kerberos”,
“hadoop.rpc.protection”: “authentication”,
“dfs.namenode.kerberos.principal”: “hdfs/hadoop.hadoop.com@HADOOP.COM”,
“dfs.namenode.rpc-address.hacluster.41”: “xx01:25000”,
“dfs.client.failover.proxy.provider.hacluster”: “org.apache.hadoop.hdfs.server.namenode.ha.AdaptiveFailoverProxyProvider”,
“dfs.ha.namenodes.hacluster”: “40,41”,
“dfs.namenode.rpc-address.hacluster.40”: “xx02:25000”,
“dfs.nameservices”: “hacluster,nsfed”,
“dfs.datanode.kerberos.principal”: “hdfs/hadoop.hadoop.com@HADOOP.COM”
},

== hdfswriter datax 报错找不到org.apache.orc.OrcFil e$WriterOptions.useUTCTimestamp(Z)Lorg/apache/orc/OrcFile
项目是java调用datax。原因是java里引入了hive-exec依赖。和datax里的冲突了,导致有两个org/apache/orc/OrcFile,不知道用哪个。注释掉项目里的hive-exec依赖。

====seatunnel用jdbc插件同步支持的数据源时,报错JDBC-Class not found
已经按文档提示将驱动放入 S E A T N U N N E L H O M E / l i b / 解决:还要将驱动放入 SEATNUNNEL_HOME/lib/ 解决:还要将驱动放入 SEATNUNNELHOME/lib/解决:还要将驱动放入SEATNUNNEL_HOME/plugins/jdbc/lib
没文件夹就自己建上
集群启动,每个节点都要加上。只某个节点加还是偶尔会报这个错误,且报其他错误时还导致日志不详细

=============seatunnel同步数据到oracle ORA-00947: not enough values
插入的数据列数不够

==datax ftpreader总是提示路径不存在或无权限,但实际上文件存在且有权限。原因是链接模式,应为被动PASV
=========使用调度平台类提示 va…,原因是类型不兼容,用字符串或map,不再使用调度平台的实体类
===========ftp有文件但datax读不到,ftp要配成被动模式

=========flinksql master 1 exceeds the maximum number of virtual cores 0 available in the Yarn
yarn application进程太多了拒绝连接
解决:进入yarn application管理页面,找到正在进行的,不用的进程,复制applicationId
进入集群机器 yarn application -kill applicationId

====flinksql One or more required options are missing.
flink sql中建表缺少连接属性,如:schema-name、database-name

======flinksql postgres-cdc NoSuchFieldError: SCAN_INCREMENTAL_SNAPSHOT_BACKFILL_SKIP
换flink-sql-connector-postgres-cdc-3.0.1换成2.4.2.jar
不不不不要加flink-connector-postgres-cdc-2.4.2.jar

======Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/Versioned
ClassNotFoundException: com.fasterxml.jackson.annotation.JsonView
分别加jackson-databind-2.17.1.jar、jackson-core-2.17.1.jar、jackson-annotations-2.17.1.jar

NoClassDefFoundError:org/apache/kafka/connect/data/Schema
加 org.apache.kafka connect-api
org/apache/kafka/common/KafkaException
加kafka-clients-3.5.1.jar

========flinksql postgres PSQLException: ERROR: logical decoding requires wal_level >= logical
编辑postgresql配置文件postgresql.conf
修改修改wal_level = logical

====flinksql postgres Caused by: org.postgresql.util.PSQLException: ERROR: could not access file “decoderbufs”: No such file or directory
原因postgres-cdc没有添加最后一句: ‘debezium.plugin.name’=‘pgoutput’
debezium.plugin.name=‘pgoutput’ 是用来指定 Debezium 的插件为 pgoutput。
在 Debezium 中,插件是用于实现特定数据库连接和数据捕获功能的组件。pgoutput 插件是针对 PostgreSQL 数据库的输出插件,用于将捕获到的数据库更改输出到外部系统或应用程序。
通过指定 debezium.plugin.name=‘pgoutput’,Debezium 将加载 pgoutput 插件,并使用它来连接到 PostgreSQL 数据库,捕获数据变化,并将其输出到指定的目标。

===== Caused by: java.lang.NoSuchMethodError: io.debezium.pipeline.DataChangeEvent.(Lorg/apache/kafka/connect/source/SourceRecord;)V
不不不不不不要加debezium-core-1.9.7.Final.jar

=== Caused by: java.lang.NoSuchMethodError: io.debezium.config.Field.withWidth(Lcom/ververica/cdc/connectors/shaded/org/apache/kafka/common/config/ConfigDef$Width;)Lio/debezium/config/Field;
不不不不不要加debezium-connector-postgres-1.9.7.Final.jar

==========海豚调度dolphinscheduler,任务进程文件夹下某些资源文件无故消失
在代码中没有任何删除操作的情况下,文件突然消失,考虑linux系统的自动清理操作导致的,因为任务进程文件夹位于/tmp下。
根据发行版本不同,linux中/tmp目录的定期清理通常是10天。
查找sudo find /usr/lib/tmpfiles.d/ /etc/tmpfiles.d/ -name ‘tmp.conf’
编辑sudo vim /usr/lib/tmpfiles.d/tmp.conf
在tmp.conf文件中,你会看到类似以下的行,用于定义/tmp目录的清理策略:
d /tmp 1777 root root 10d
这表示/tmp目录会在10天后被清理。你可以将10d更改为你想要的天数,例如30d表示30天后清理。

  1. 如果你想要完全禁用自动清理,你可以将整行注释掉(在行首添加#)
  2. 如你不想让系统自动清理 /tmp内的dolphinscheduler目录,那么增加下面这条内容到配置文件中即可:
    x /tmp/dolphinscheduler

在修改了tmp.conf文件后,你需要重新加载systemd的配置以使更改生效:sudo systemctl daemon-reload

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悢七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值