gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

NodeManager出现DBException导致无法启动

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  
  • 作者: east
  • ( 页面62 )
bug清单 2月 28,2021

NodeManager出现DBException导致无法启动

NodeManager出现DBException导致无法启动

现象描述

NodeManager无法启动。NodeManager日志中显示如下错误信息。

org.fusesource.leveldbjni.internal.NativeDB$DBException: Corruption: 1 missing files;

可能原因

当“yarn.nodemanager.recovery.enabled”=“true”时,并且由于磁盘空间不足或文件句柄用尽,使“levelDB”作为NodeManager恢复被损坏时,会发生此异常情况。

处理步骤

  1. 删除在“yarn-site.xml”中“{yarn.nodemanager.recovery.dir}/yarn-nm-state”所指定的文件夹。 其产生结果如下:
    • 对于已经在这个节点上完成的应用程序,其日志聚合可能会受影响。您需要手动删除已完成应用残留的文件或文件夹。进入{yarn.nodemanager.log-dirs}参数指定的路径,删除应用ID对应的文件夹。
    • 在此节点上已本地化的临时文件和container临时文件不会被清理。您需要手动删除已完成应用残留的文件和文件夹。进入{yarn.nodemanager.local-dirs}参数指定的路径,删除应用ID对应的文件夹。
    • 由于Container-tokens在NodeManager停用之后没有刷新,当前container可能会失败。
  2. 启动NodeManager。
作者 east
bug清单 2月 28,2021

Hive 执行动态插入分区时,在MapReduce日志中报“java.lang.OutOfMemoryError: GC overhead limit exceeded”错误

执行动态插入分区时,在MapReduce日志中报“java.lang.OutOfMemoryError: GC overhead limit exceeded”错误

现象描述

在HiveServer服务正常的情况下,执行动态插入分区时,在MapReduce日志中报“java.lang.OutOfMemoryError: GC overhead limit exceeded”错误。

可能原因

产生OOM的原因是单个任务处理的分区数过多,需要针对具体场景,减少单个task处理的分区数。

定位思路

参照如下样例进行操作。

样例建表语句如下:

create table test(id int )partitioned by (dt int);

create table test1(id int, dt int);

正常的动态插入分区语句为:

insert overwrite table test partition (dt) select id, dt from test;

处理步骤

  1. 由于dt是分区字段,减少单个task处理分区数的办法是,将分区字段distribute到不同的task来处理。 修改后的语句: insert overwrite table test partition (dt) select id, dt from test1 distribute by dt;
  2. 当distribute by的分区字段存在倾斜时,比如值为NULL的占了很大部分,那么还可以将其打散处理。 存在倾斜字段为NULL时的优化后语句: insert overwrite table test partition (dt) select id, dt from test1 distribute by nvl(dt,round(rand()*50)); 说明: nvl函数是一个将null转换为需要的值的hive内置udf。内置udf的使用,可参考https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF。其中rand返回一个0-1之间的随机数,乘以一个常数50(也可以是其他数字,根据自己任务的并发度合理选取,以能在合理的时间处理完为宜)。 然后通过round函数取整,就能够将值为NULL的分区,分散到多个不同的task中处理。
作者 east
bug清单 2月 28,2021

Hive TEXTFILE类型文件ARC4压缩Select时乱码

TEXTFILE类型文件ARC4压缩Select时乱码

现象描述

Hive查询结果表做压缩存储(ARC4),对结果表做select * 查询时返回结果为乱码。

可能原因

TEXTFILE文件非块文件,使用ARC4按条加密后,读取文件会异常,无法解析内容,导致乱码。

定位思路

  1. 设置压缩类:org.apache.hadoop.io.encryption.arc4.ARC4BlockCodec,按块对TEXTFILE类型文件加密。
  2. 正常设置耗时1分钟以内。

处理步骤

  1. 查询出乱码以后,在beeline客户端执行以下命令。 set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.encryption.arc4.ARC4BlockCodec; set hive.exec.compress.output=true; 输入admin用户的密码完成登录。
  2. 重新导入数据到结果表。 insert overwrite table tbl_result select * from tbl_source;
  3. 执行select命令检查内容是否为乱码。 select * from tbl_result; 没有乱码证明问题得到解决。
作者 east
bug清单 2月 28,2021

Hive客户端连接失败,提示“Read timed out”

客户端连接失败,提示“Read timed out”

现象描述

安全版本的集群中,HiveServer服务正常的情况下,使用Shell客户端或二次开发工具登录HiveServer失败,日志异常提“Read timed out”示关键字,具体信息如下:

org.apache.hadoop.hive.ha.client.HAConnectMonitor.<init>(HAConnectMonitor.java:54) 
 at org.apache.hadoop.hive.ha.client.HATTransport.open(HATTransport.java:158) 
 at org.apache.hadoop.hive.jdbc.ha.HAHiveConnection.<init>(HAHiveConnection.java:60) 
 ... 6 more 
 Caused by: java.net.SocketTimeoutException: Read timed out
 at java.net.SocketInputStream.socketRead0(Native Method) 
 at java.net.SocketInputStream.read(SocketInputStream.java:152) 
 at java.net.SocketInputStream.read(SocketInputStream.java:122) 
 at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127)

可能原因

网络原因导致Hive客户端连接HiveServer时,Socket超时,连接失败。

定位思路

  1. Hive客户端连接HiveServer时,是建立Socket连接,当网络丢包时,就有可能导致Socket超时,使Hive客户端连接HiveServer失败。
  2. 执行ping命令检查客户端到HiveServer所在节点的网络连通性与稳定性。
  3. 当网络经过排查和修复达到稳定后,正常连接耗时在1分钟以内。

处理步骤

  1. 在客户端所在机器上,执行ping HiveServer所在节点IP地址命令检查Hive客户端与集群网络质量。 如果执行命令后,如果网络不通或者延迟较大,证明网络状况较差。 请联系网络管理员排查网络问题,以保证满足业务使用。
  2. 增加网络闪断的保护,使用Hive客户端的应用层,增加连接失败重试机
作者 east
bug清单 2月 28,2021

由于datanodeUuid值不一致导致DataNode数据目录出现Failure

由于datanodeUuid值不一致导致DataNode数据目录出现Failure

现象描述

在“dfs.datanode.data.dir”中添加新目录后,发现老的目录出现failure。

由于datanodeUuid值不一致导致DataNode数据目录出现Failure

可能原因

新老目录下“VERSION”文件里的“datanodeUuid”值不一致。

定位思路

查看DataNode的日志文件,检查是否有InconsistentFSStateException异常信息,是否显示“datanodeUuid”不一致。

heartbeating to 9-96-101-251/172.18.0.111:25000 | org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /export4/BigData/datanode/dn3 is in an inconsistent state: 
Root /export4/BigData/datanode/dn3: DatanodeUuid=2a8c2266-7d3f-428c-b47f-6c7e2500bdc5, does not match 3d61ca33-c3ba-4c73-998a-7667c747545d from other StorageDirectory. | DataStorage.java:375

处理步骤

  1. 进入“新目录/current/”,查询“VERSION”文件中的“datanodeUuid”值。 #Tue Jul 05 22:23:04 CST 2016 storageID=DS-7c410c98-29bc-49de-b3dd-87cd48d4f7d3 clusterID=myhacluster cTime=0 datanodeUuid=3d61ca33-c3ba-4c73-998a-7667c747545d storageType=DATA_NODE layoutVersion=-56
  2. 进入“老目录/current/”,将“VERSION”文件中的“datanodeUuid”修改成1查询到的“datanodeUuid”值。
  3. 重启DataNode。

参考信息

DataNode启动时,会从数据目录中的“VERSION”文件中读取“datanodeUuid”值,并将该值写入到系统的DataStorage对象中。每个DataNode对应一个“datanodeUuid”值,即同一个DataNode上的所有目录使用同一个“datanodeUuid”值。

该问题中,删除老目录,添加新目录时,“VERSION”文件并没有被拷贝到新目录中,重启DataNode后,新目录中的“VERSION”文件由format操作生成,并自动生成了一个新的“datanodeUuid”值。

将老目录加回到“dfs.datanode.data.dir”中,并且位于新目录之前,重启DataNode后,DataNode会先从老目录中加载“VERSION”文件,读取其中的“datanodeUuid”值,并写入到系统的DataStorage对象中。再从新目录中的“VERSION”文件中读取“datanodeUuid”值并与系统的DataStorage对象中的“datanodeUuid”值作对比时,由于新目录中的“datanodeUuid”值是后来重新生成的,与老目录中的不同,所以系统会抛出“datanodeUuid”不匹配的InconsistentFSStateException异常。

作者 east
bug清单 2月 28,2021

Datanode报InvalidProtocolBufferException异常

Datanode报InvalidProtocolBufferException异常

现象描述

DataNode无法发送block报告给NameNode。以下为DataNode日志信息:

java.lang.IllegalStateException: com.google.protobuf.InvalidProtocolBufferException: 
Protocol message was too large.  May be malicious.  Use CodedInputStream.setSizeLimit() 
to increase the size limit exception

可能原因

此类故障发生在DataNode向NameNode发送block报告时。HDFS是专门为大文件设计的,所以为了防止其用于小文件上,限制了每个卷的block报告的体积。

定位思路

以防这类异常发生,用户可指定多种“dfs.datanode.data.dir”,在多个卷内将block分散开来,block报告消息的体积将会变小。

在运行的环境中遇到此类异常时,Hadoop目前无法做到自动完成上述修复。

处理步骤

  1. 关闭相关的DataNode。
  2. 使用mv命令将block副本和meta对从“dfs.datanode.data.dir”目录移动到新目录下,同时确保块在磁盘间移动时subdir目录的结构始终完全保持不变。 例如,如果block副本和meta对是在“/data/1/dfs/dn/current/BP-1788246909-10.10.1.202-1412278461680/current/finalized/subdir0/subdir1/”目录下,若想要将其移动到“/data/5/disk”下,必须移到相同的子目录结构,即“/data/5/dfs/dn/current/BP-1788246909-10.10.1.202-1412278461680/current/finalized/subdir0/subdir1/”。 如果目录结构发生改变,移动后的DataNode将不能定位副本。
  3. 重启DataNode。
作者 east
bug清单 2月 28,2021

资源异常导致HDFS进入安全模式

资源异常导致HDFS进入安全模式

现象描述

在性能环境上验证性能指标时HDFS进入安全模式。 NameNode日志中出现下列信息:

WARN org.apache.hadoop.hdfs.server.namenode.NameNodeResourceChecker: Space available on volume 'null' is 0, 
WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: NameNode low on available disk space. Entering safe mode.

可能原因

  1. 参数“dfs.namenode.name.dir”配置目录的磁盘空间不足。
  2. 底层网络文件系统出现了不可用的情况导致的,如网络不稳定等。

定位思路

  1. 查看参数“dfs.namenode.name.dir”配置目录的磁盘空间是否足够。
  2. 查看底层网络文件系统是否异常,如网络不稳定等。
  3. 查看NameNode日志中是否出现类似“NameNode low on available disk space. Entering safe mode”的日志。

处理步骤

  1. 查看参数“dfs.namenode.name.dir”配置目录的磁盘空间是否足够。
  2. 修复底层网络文件系统之后(网络稳定之后),手动退出安全模式。执行hdfs dfsadmin -safemode leave命令手动退出安全模式。
作者 east
bug清单 2月 28,2021

Hbase由于网络故障引起的InvalidToken异常

由于网络故障引起的InvalidToken异常

现象描述

安全模式下,在执行Mapreduce或者Spark等程序时,可能出现如下异常导致的任务执行失败:

2015-12-07 12:46:17,607 WARN [htable-pool1-t1] 
org.apache.hadoop.hbase.ipc.AbstractRpcClient: Exception encountered 
while connecting to the server :
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): Unknown master key for token (id=7)

可能原因

由于网络故障导致客户端和服务端的token不一致。

定位思路

无。

处理步骤

  1. 重新启动发生故障的RegionServer和客户端程序。
作者 east
bug清单 2月 28,2021

在hbck命令输出中出现“Found lingering reference file”

在hbck命令输出中出现“Found lingering reference file”

现象描述

残留的引用文件指的是连接hfile的引用文件,这个hfile在HDFS中是不存在。

Hback工具报出以下错误:

hbase/bin> hbase hbck
2016-03-08 17:57:55,858 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
INFO: Watching file:/home/pankaj/v1r2cxx/hbase/hbase/conf/log4j.properties for changes with interval : 60000
HBaseFsck command line options:

2016-03-08 17:57:58,179 INFO  [main] util.HBaseFsck: Checking and fixing region consistency
ERROR: Region { meta => null, hdfs => hdfs://10.10.106.212:8020/hbase/data/default/t1/7fbfdb516dff6013009143c4ba22cb89, deployed => , replicaId => 0 } 
on HDFS, but not listed in hbase:meta or deployed on any region server
2016-03-08 17:57:58,218 INFO  [main] util.HBaseFsck: Computing mapping of all store files

2016-03-08 17:57:58,253 INFO  [main] util.HBaseFsck: Validating mapping using HDFS state
ERROR: Found lingering reference file
hdfs://10.10.106.212:8020/hbase/data/default/t1/7fbfdb516dff6013009143c4ba22cb89/cf1/64d2e118ab1347a59aeb90f206853dc5.8fcda14355e599b20e8ea7f66f86b9d0
Summary:
Table hbase:meta is okay.
    Number of regions: 1
    Deployed on:  host-10-10-106-212,16020,1457430545905
Table hbase:acl is okay.
    Number of regions: 1
    Deployed on:  host-10-10-106-212,16020,1457430545905
Table t1 is okay.
    Number of regions: 2
    Deployed on:  host-10-10-106-212,16020,1457430545905
Table hbase:namespace is okay.
    Number of regions: 1
    Deployed on:  host-10-10-106-212,16020,1457430545905
2 inconsistencies detected.
Status: INCONSISTENT
2016-03-08 17:57:58,418 INFO  [main] client.ConnectionManager$HConnectionImplementation: Closing master protocol: MasterService
2016-03-08 17:57:58,418 INFO  [main] client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x10101ea9abf0181

可能原因

在一个故障场景,子region A在table目录下已经成功创建,但是在创建子region B的过程中region server出故障了。因此split region失败了并且在table目录的文件系统留下一个孤立的子目录。

当打开region,只清理”.split”目录,而不是孤立的子regions,这些孤立的子regions在先前失败的split操作过程中可能被移到table目录。因此将来,如果父region split成功,那么之前失败的子region A的引用hfile将会无效,hback将会报出以上错误。

定位思路

无。

处理步骤

  1. Hback工具提供命令-fixReferenceFiles来使这样残留的引用文件保留在其他位置。由于这会引起其他的不一致,请使用hbck -repair命令来解决这些不一致。 hbase hbck -repair <tableName>
  2. 运行hbck命令来复查-repair命令是否修复了所有的不一致。 hbase hbck 如果hback命令输出结果不一致,请重复1。

参考信息

Hbck命令有很多其他选项,请运行以下命令来获得更详细的用法。

hbase hbck -help

作者 east
bug清单 2月 28,2021

Hbase大量Region处于RIT,HMaster出现异常,日志出现Packet len6080218 is out of range!

大量Region处于RIT,HMaster出现异常,日志出现Packet len6080218 is out of range!

现象描述

大量Region处于RIT,HMaster出现异常,HMaster不停主备倒换,但是无法恢复,日志中打印如下:

Packet len6080218 is out of range!

可能原因

大量Region处于RIT,在读取处于RIT的Region信息时,超出“jute.maxbuffer”默认值,导致读取失败。

定位思路

无。

处理步骤

设置“jute.maxbuffer”的值,该值的设置可以参考以下关系:

1MB理论上最多能容纳6990个Region。

作者 east
bug清单 2月 28,2021

Hbase磁盘故障,RegionServer重启之后,Region offline

磁盘故障,RegionServer重启之后,Region offline

现象描述

磁盘故障,RegionServer重启之后Region offline。

可能原因

磁盘故障,在Region重新分配过程中,被分配的RegionServer重启,Region分配失败,Region offline。

定位思路

排查磁盘故障原因,以及RegionServer被重启的原因。

处理步骤

  1. 排除故障原因,恢复磁盘故障。
  2. 当磁盘故障恢复,HBase健康状态恢复,执行hbase hbck -fixAssignments使Region恢复上线。
作者 east
bug清单 2月 28,2021

Hbase加载数据失败

现象描述

超过32个HFile加载到一个Region下的Family时,出现如下错误信息:

Exception in thread "main" java.io.IOException: Trying to load more than 32 hfiles to one family of one region
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:302)
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:884)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:75)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:890)

可能原因

加载数据时,默认支持的最大Hfile数为32个。当一个Region下的一个Family超过32个HFile时,会出现此错误。

定位思路

无。

处理步骤

  1. 执行LoadIncrementalHFiles命令时添加参数,并给“hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily”参数设置一个最大值。该值表示Family下可生成的最多的HFile的个数。 例如,执行如下命令使系统支持40个HFile。cd <hbase_client>/HBase/hbase bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=40 <hdfs://storefileoutput> <tablename>
作者 east

上一 1 … 61 62 63 … 92 下一个

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
  • C++如何在插件式架构中使用反射实现模块隔离?
  • C++如何追踪内存泄漏(valgrind/ASan等)并定位到业务代码?
  • C++大型系统中如何组织头文件和依赖树?
  • 如何进行AUTOSAR模块的持续集成(CI)部署与版本控制?

文章归档

  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (42)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (484)
    • CDH (6)
    • datax (4)
    • doris (28)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (40)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (9)
    • 运维 (33)
      • Docker (2)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (70)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.