首页 文章 精选 留言 我的

精选列表

搜索[硬件兼容性],共10000篇文章
优秀的个人博客,低调大师

phoenix-5.0.0与CDH6.0.1兼容性导致二级索引不可用问题解决

今天在测试phoenix的二级索引功能时,创建完索引写入数据,出现以下异常: Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 1 action: org.apache.phoenix.hbase.index.builder.IndexBuildingFailureException: Failed to build index for unexpected reason! at org.apache.phoenix.hbase.index.util.IndexManagementUtil.rethrowIndexingException(IndexManagementUtil.java:206) at org.apache.phoenix.hbase.index.Indexer.preBatchMutate(Indexer.java:351) at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$28.call(RegionCoprocessorHost.java:1010) at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$28.call(RegionCoprocessorHost.java:1007) at org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.preBatchMutate(RegionCoprocessorHost.java:1007) at org.apache.hadoop.hbase.regionserver.HRegion$MutationBatchOperation.prepareMiniBatchOperations(HRegion.java:3487) at org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutate(HRegion.java:3896) at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:3854) at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:3785) at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:908) at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicBatchOp(RSRpcServices.java:836) at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:799) at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2551) at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42014) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) Caused by: java.lang.VerifyError: class org.apache.phoenix.hbase.index.covered.data.IndexMemStore$1 overrides final method compare.(Lorg/apache/hadoop/hbase/Cell;Lorg/apache/hadoop/hbase/Cell;)I at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.phoenix.hbase.index.covered.data.IndexMemStore.<init>(IndexMemStore.java:82) at org.apache.phoenix.hbase.index.covered.LocalTableState.<init>(LocalTableState.java:57) at org.apache.phoenix.hbase.index.covered.NonTxIndexBuilder.getIndexUpdate(NonTxIndexBuilder.java:52) at org.apache.phoenix.hbase.index.builder.IndexBuildManager.getIndexUpdate(IndexBuildManager.java:90) at org.apache.phoenix.hbase.index.Indexer.preBatchMutateWithExceptions(Indexer.java:503) at org.apache.phoenix.hbase.index.Indexer.preBatchMutate(Indexer.java:348) 异常信息可以看出是IndexMemStore这个类初始化的时候加载class时碰到了VerifyError,具体来说就是试图覆盖1个被标记为final的方法,先找这个类的代码看看: public class IndexMemStore implements KeyValueStore { private static final Log LOG = LogFactory.getLog(IndexMemStore.class); private IndexKeyValueSkipListSet kvset; private CellComparator comparator; public IndexMemStore() { this(new CellComparatorImpl(){ @Override public int compare(Cell a, Cell b) { return super.compare(a, b, true); } }); } 覆盖的是CellComparatorImpl的compare方法,该类在hbase-common模块中,我们用的phoenix版本是5.0.0,对应的hbase版本为2.0.0,找到代码看看: @Override public int compare(Cell a, Cell b) { return compare(a, b, false); } 可以看到这个方法并非final,我们使用的是CDH6.0.1,对应的hbase也是2.0.0版本,莫非有所不同,找到代码看看: @Override public final int compare(final Cell a, final Cell b) { return compare(a, b, false); } 居然真的有final修饰符,于是查看社区中该类的修改历史,发现是在2.0.1中进行的如上改动,对应的jira:HBASE-20620,可以看到改动记录: @@ -57,21 +64,17 @@ public class CellComparatorImpl implements CellComparator { public static final CellComparatorImpl META_COMPARATOR = new MetaCellComparator(); @Override - public int compare(Cell a, Cell b) { + public final int compare(final Cell a, final Cell b) { return compare(a, b, false); } 看起来应该是CDH6.0.1中包含了某些hbase2.0.0之后的patch; 解决方法就是修改hbase,把final修饰符去掉即可,然后打包、停服务、换包、起服务,再试已经正常;

优秀的个人博客,低调大师

英特尔为 Linux 图形驱动的 multi-tile 硬件支持做准备

英特尔于近日发布了一个Xe HP 方面相关的重要补丁系列,主要是围绕multi-tile 支持的初步工作。实际上,英特尔近几个月一直在致力于 Xe HP 的 Linux 图形驱动程序堆栈的基础工作,其中还涵盖了独显/加速卡产品线。 英特尔 Xe-HP/Ponte Vecchio 引入了 multi-tile/chiplet 的设计理念。在此之前,英特尔 Linux 图形驱动只围绕 single tile 设计构建;但此次推出的这一补丁则开始在 i915 内核 DRM 驱动中进行基础架构的改变,以支持 multiple tiles。 我们即将推出的一些平台,包括 Xe_HP SDV,支持“multi-tile”设计。multi-tile 平台实际上是一个具有多个 GT 实例和本地内存区域的平台,所有这些都位于单个 PCI 设备之后。从 i915 的角度来看,这意味着每个 drm_i915_private 都有多个 intel_gt 结构。本系列提供了初始重构以支持每张卡的多个独立 GT,但仍需要进一步的工作(尤其是与本地内存相关)才能完全启用 multi-tile平台。 请注意,多个 GT 的存在在很大程度上对用户空间是透明的。multi-tile 平台会向用户空间宣称更大的引擎列表,但用户空间无需直接处理“tile”的概念。由于设备具有多个本地内存区域,之后会有一些 uapi 的影响;不过此补丁系列并未涵盖 multi-tile 的实际工作,计划将在未来的工作中实现。 更多详情可查看邮件列表。不过 Phoronix 认为,考虑到还有许多围绕本地内存处理的工作要做,开发团队不太可能在及时在下一个 5.16 周期中搞定这一问题。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册