欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MR整合HBase注意事项

程序员文章站 2022-04-13 20:48:26
...

版本兼容问题

Hadoop和HBase兼容性十分不好,注意官方的兼容性版本,我找出这个问题花了两天的时间挺疼的。

MR整合HBase注意事项
hadoop版本向下兼容,但是构建项目的依赖版本必须符合官方的指导。

本地和集群运行job的配置问题

官方文档案例没有特别说明
当需要从hbase读取数据的时候,必须使用TableMapReduceUtil.initTableMapperJob()
当需要写数据到hbase的时候,必须使用 TableMapReduceUtil.initTableReduceJob()

  1. 本地:
    1)conf.set(“mapreduce.framework.name”, “local”);
    2)initTableJob的最后一个参数是false
  2. 集群
    2)initTableJob的最后一个参数是true

java.lang.UnsatisfiedLinkError异常处理

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
	at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
	at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:294)
	at org.apache.hadoop.fs.FileUtil.canRead(FileUtil.java:988)
	at org.apache.hadoop.util.DiskChecker.checkAccessByFileMethods(DiskChecker.java:187)
	at org.apache.hadoop.util.DiskChecker.checkDirAccess(DiskChecker.java:174)
	at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:108)
	at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.confChanged(LocalDirAllocator.java:285)
	at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:344)

将org.apache.hadoop.io.nativeio.NativeIO的access重写放在java目录下,return true;