zoukankan      html  css  js  c++  java
  • 使用hbase遇到的问题

    1.在使用hbase的时候 有很多问题,其中一个

     使用sqoop import 从mysql 向hbase导入数据,报错:Error: java.lang.RuntimeException: Could not access HBase table user

    执行:sqoop import --connect jdbc:mysql://localhost:3306/social --username root --password root --table user --split-by id --hbase-table user --column-family person

    报错:

    Error: java.lang.RuntimeException: Could not access HBase table user
        at org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:97)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
        at org.apache.sqoop.mapreduce.DelegatingOutputFormat$DelegatingRecordWriter.<init>(DelegatingOutputFormat.java:107)
        at org.apache.sqoop.mapreduce.DelegatingOutputFormat.getRecordWriter(DelegatingOutputFormat.java:82)
        at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:624)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:744)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
    Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240)
        at org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:431)
        at org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:424)
        at org.apache.hadoop.hbase.client.ConnectionManager.getConnectionInternal(ConnectionManager.java:302)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:185)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:151)
        at org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:95)
        ... 12 more
    Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238)
        ... 18 more
    Caused by: java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:1844)
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1809)
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1903)
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1929)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:656)
        ... 23 more
    Caused by: java.lang.ClassNotFoundException: io.netty.channel.EventLoopGroup
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 30 more

    我的解决方案: 我查看了我的表 user 确实已经在hbase存在了。然后查看我的sqoop/lib/ 下jar netty-all-4.0.23.Final.jar,也已经存在, 然后我用gui 去反编译jar 打开后是没有 io/netty/channel/EventLoopGroup

    然后重新下载了一个 netty-all-4.0.23.Final.jar 然后执行命令 。数据可以正确的导入.

  • 相关阅读:
    SQL Server 创建用户自定义数据类型
    用输入法敲打键盘时字体之间的间隔突然变大了,是怎么回事?
    SQL Server 增加自增ID列
    Python安装cv2模块不成功
    Python错误20009:pymssql._pymssql.OperationalError) (20009, b'DB-Lib error message 20009, severity 9: Unable to connect: Adaptive Server is unavailable or does not exist ')
    Python 获取父级目录
    谷歌上网助手Ghelper
    Python连接MySQL数据库
    Python用pandas获取Excel数据
    Python连接MySQL数据库获取数据绘制柱状图
  • 原文地址:https://www.cnblogs.com/liangxinxinbo/p/7879366.html
Copyright © 2011-2022 走看看