• hive通过spark导入hbase


    发现采用shcjar的话,总是执行到某个点就停止了
    于是我打算尝试一下直接说哦用org.apache.hadoop.hbase.spark这个datasource看看
    确实不行,即使没有createtable,也是报错没有权限创建表;还是专心来研究一下shc吧
    翻看一下日志,日志注明了spark查看路径:http://192.168.156.104:4041
    后来过了一段时间,报错
    Failed 1 action: Unable to find region for a in test after 35 tries.: 1 time,
     
    Can not infer schema for type: <type 'str'>
    这是因为我尝试向HBase中插入
    df = sc.parallelize(['b', '2.0']).toDF(schema=['col0', 'col1']),插入的数据格式有误;
     
    list_namespace 罗列naespace
    list_namespace_tables XXX 罗列某个命名空间下的所有表
     
    后来我想到了应该看日志;于是上网搜索了一下spark的日志,发现应该通过18088,History Server Log中能够看到一些蛛丝马迹
    zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
    17/08/15 00:06:00 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
    难道是ZooKeeper的一些问题?
    通过zkCli.sh报错,和上面是一样的,也就是说,zookeeper的客户端也是报错的,搜了一下可能的问题:
    1.时间同步问题;
    2.zoo.cfg的clientPort要设置为2181(和客户端hbase-site.xml一致)
    3.hosts中对于localhost6一行要删掉
    前两个排除了,想要通过第三种方式是一下,但是太烦了,集群所有的机器都要重启(修改hosts文件需要重启),我打算再看看,能够找到别的解决方案;后来我在通过ClouderaManager页面的时候,看到Zookeeper的一个配置告警,建议Server最少要三台;我突然想到曾经看到过zookeeper集群有选举机制,只有超过半数通过才能够提供服务;于是增加了两个实例,问题,解决了。
     
    下面的是采用原生的Pyspark以及shcjar两种方式实现的hive到hbase,但是在实际测试中发现在大数据量(比如数据2个G)的情况下,这种pyspark方式会导致一个问题,卡在中间某个任务,之后被告知超时,然后YARN将其kill掉。可能是系统性能问题?
     
     
  • 相关阅读:
    一步一步教你在GridView中实现可收缩的面板
    收藏微软面试智力题 (附答案)
    WF4.0实战(一):文件审批流程
    WF4.0实战(六):控制WPF动画
    WF4.0实战(十一):邮件通知
    WF4.0实战(十):分布式酒店订房系统
    WF4.0实战(十六):模拟红绿灯
    WF4.0实战(五):实现一个直观易扩展的自动测试框架
    Beginning WF4读书笔记(一):创建一个简单的工作流
    DataGridView打印类
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/7441741.html
Copyright © 2020-2023  润新知