安装

目标:安装 HBase2.4.10 ,伪分布式,使用自带的 Zookeeper

参考

  1. 确保有 Java 环境

  2. 确保有 Hadoop 环境,我的是 Hadoop3.3.1

    [root@main ~]# start-all.sh
    Starting namenodes on [0.0.0.0]
    上一次登录:一 3月 21 18:33:26 CST 2022pts/0 上
    Starting datanodes
    上一次登录:一 3月 21 18:34:12 CST 2022pts/0 上
    Starting secondary namenodes [main]
    上一次登录:一 3月 21 18:34:14 CST 2022pts/0 上
    Starting resourcemanager
    上一次登录:一 3月 21 18:34:23 CST 2022pts/0 上
    Starting nodemanagers
    上一次登录:一 3月 21 18:34:38 CST 2022pts/0 上[root@main ~]# jps
    81285 NameNode
    85095 Jps
    82118 SecondaryNameNode
    81593 DataNode
    83017 NodeManager
    82749 ResourceManager
    
  3. 下载并解压 压缩包(建议HBASE_HOME=/usr/local/hbase)

  4. 添加环境变量

    # hbase config
    export HBASE_HOME=/usr/local/hbase
    export PATH=$PATH:$HBASE_HOME/bin
    
  5. 修改配置文件hbase/conf/hbase-site.xml,hbase/conf/hbase-env.sh,按自己的需求配

    1. hbase/conf/hbase-site.xml

      <configuration><property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value><description>hadoop地址和仓库</description></property><property><name>hbase.cluster.distributed</name><value>true</value><description>是否使用分布式模式(是)</description></property><property><name>hbase.tmp.dir</name><value>./tmp</value><description>临时文件位置</description></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value><description>是否使用本地文件跑hbase(否,言下之意就是使用hdfs)</description></property><property><name>hbase.zookeeper.quorum</name><value>localhost:2181</value><description>Zookeeper的节点host:port</description></property>
      </configuration>
      
    2. hbase/conf/hbase-env.sh
      
      export JAVA_HOME=/usr/lib/jvm/javaexport HBASE_PID_DIR=/var/hbase/pids# hbase启动时,同时启动自带的zookeeper
      export HBASE_MANAGES_ZK=trueexport HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
      
  6. 常用命令

    # 启动
    start-hbase.sh
    # 关闭
    stop-hbase.sh
    # 查询
    hbase shell
    

    有任何异常记得查看日志文件,在$HBASE_HOME/logs!!!(有master,zookeeper,regionsever)

  7. 正常结果

    [root@main ~]# start-hbase.sh
    localhost: running zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-root-zookeeper-main.out
    running master, logging to /usr/local/hbase/logs/hbase-root-master-main.out
    : running regionserver, logging to /usr/local/hbase/logs/hbase-root-regionserver-main.out[root@main ~]# jps
    14917 Jps
    3478 SecondaryNameNode
    4119 ResourceManager
    4391 NodeManager
    2664 NameNode
    5609 HMaster
    5753 HRegionServer
    5450 HQuorumPeer
    2939 DataNode[root@main ~]# hbase shell
    2022-03-21 19:35:24,229 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    HBase Shell
    Use "help" to get list of supported commands.
    Use "exit" to quit this interactive shell.
    For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
    Version 2.4.10, r3e5359c73d1a96dd7d2ac5bc8f987e9a89ef90ea, Mon Feb 28 10:03:15 PST 2022
    Took 0.0069 seconds
    hbase:001:0> create 'user','name','age','addr','phone','email'
    Created table user
    Took 2.7152 seconds
    => Hbase::Table - user
    hbase:002:0> list
    TABLE
    user
    1 row(s)
    Took 0.0979 seconds
    => ["user"][root@main ~]# stop-hbase.sh
    stopping hbase...............
    localhost: running zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-root-zookeeper-main.out
    localhost: stopping zookeeper.
    

Java远程开发

  1. 配置IP映射,所有那个远程服务器可能的名称全都配上,包括但不限于 [域名,服务器的原始主机名,自定义的主机名(hadoop,hbase)]

    114.55.58.223 hadoop hbase zookeeper Master iZbp18y7b5jm99960ajdloZ
    第一个是域名,最后一个是主机名,Master是HBase的机器名

  2. 将远程服务器上的localhost尽可能替换掉
  3. 找到一个教程,林子雨大数据课程文件,点HBase
  4. 新建Maven项目,导包,写 ↑ 里的代码并理解,运行查看结果(遇到没有任何输出但不报错,记得打日志)

遇到的问题

  1. 执行stop-hbase.sh命令,一直...;执行hbase shell命令,报错Server is not running yet

    [root@main ~]# stop-hbase.sh
    stopping hbase... # 一直.hbase shell
    # 省略一些启动日志,只留最后一句
    hbase:001:0> create 'user','name','age','addr','phone','email'
    # 报错
    ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yetat org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:2821)at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1205)at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:392)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:356)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:336)For usage try 'help "create"'
    

    查看日志hbase/logs/hbase-root-master-main.out,后搜索

      2022-03-19 22:57:46,728 WARN  [RS-EventLoopGroup-3-1] concurrent.DefaultPromise: An exception was thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$4.operationComplete()
    java.lang.IllegalArgumentException: object is not an instance of declaring classat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.hbase.io.asyncfs.ProtobufDecoder.<init>(ProtobufDecoder.java:69)
    

    原因:(我的)Hadoop3.3.1 与 HBase2.4.10 有一点不兼容

    解决办法:hbase/conf/hbase-env.sh取消注释export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

  2. hbase shell执行命令,报错ERROR: KeeperErrorCode = ConnectionLoss for /hbase/master

    [root@main ~]# stop-hbase.sh
    no hbase master found[root@main ~]# hbase shell
    # 省略一些启动日志,只留最后一句
    hbase:001:0> create 'user','name','age','addr','phone','email'
    # 报错
    ERROR: KeeperErrorCode = ConnectionLoss for /hbase/master
    For usage try 'help "create"'
    

    原因:Hadoop处于安全模式
    解决办法:执行hdfs dfsadmin -safemode leave关闭安全模式,可能继续报错(下一个)

  3. (这个问题请忽略)start-hbase.sh时 报错,日志包冲突

    [root@main ~]# start-hbase.sh
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    running master, logging to /usr/local/hbase/logs/hbase-root-master-main.out
    

    原因:日志包冲突
    解决:把HBase的改名,

    [root@main ~]# cd /usr/local/hbase/lib/client-facing-thirdparty
    [root@main client-facing-thirdparty]# mv slf4j-log4j12-1.7.30.jar slf4j-log4j12-1.7.30.jar.bak
    
  4. hadoop与zookeeper连接异常
    表现:进入http://hbase:16010/zk.jsp,最后一行为 stat is not executed because it is not in the whitelist.,(最前面的字符可能为另外的4字符命令)
    原因:命令不在zookeeper白名单中
    解决办法:使用自己的zookeeper,zookeeper配置文件为zoo.cfg(注意最后一行)

    zoo.cfg

    clientPort=2181
    dataDir=/data
    dataLogDir=/data/log
    tickTime=2000
    initLimit=5
    syncLimit=2
    autopurge.snapRetainCount=3
    autopurge.purgeInterval=0
    maxClientCnxns=60
    server.1=whfc.cc:2888:3888
    4lw.commands.whitelist=*
    
  5. Java远程操作HBase和Hadoop,admin.tableExists(tableName)语句 不报错也不输出
    原因:IP映射没配置

HBase2.4.10 踩坑笔记相关推荐

  1. EDUSOHO踩坑笔记之四十二:资讯

    EDUSOHO踩坑笔记之四十二:资讯 获取资讯列表信息 GET /articles/{id} 权限 老API,需要认证 参数 字段 是否必填 描述 sort string 否 排序,'created' ...

  2. EDUSOHO踩坑笔记之三十三:班级

    EDUSOHO踩坑笔记之三十三:班级 班级 班级 获取班级信息 获取班级列表 班级成员 获取班级计划 加入班级 营销平台加入班级 班级 班级 获取班级信息 GET /classrooms/{class ...

  3. OpenCV4.0.1/4.0.0/3.4.2 + Contrib + Qt5.9 + CMake3.12.1编译及踩坑笔记、Qt5+OpenCV配置、代码验证、效果图、福利彩蛋

    Table of Contents 前言 Windows 10, OpenCV4.0.1, Qt5.9.3, CMake3.12.1, MinGW5.3.0 Windows 10, OpenCV4.0 ...

  4. iphone se 一代 不完美越狱 14.6 视频壁纸教程(踩坑笔记)

    iphone se 一代 不完美越狱 14.6 加 视频壁纸教程-踩坑笔记 越狱流程 1.爱思助手制作启动u盘 坑点: 2.越狱好后 视频壁纸软件 1.源 2.软件安装 越狱流程 1.爱思助手制作启动 ...

  5. Linux内核踩坑笔记

    systemtap embedded C踩坑笔记戳这: https://blog.csdn.net/qq_41961459/article/details/103093912 task_struct的 ...

  6. 阿里云部署Tiny Tiny RSS踩坑笔记

    阿里云部署Tiny Tiny RSS踩坑笔记 前言 入坑了RSS,之前的配置是阿里云部署RSSHub,配合Inoreader进行文章阅读,详情见RSS入坑指南.阿里云部署RSSHub踩坑笔记.在202 ...

  7. 「Java」基于Mirai的qq机器人开发踩坑笔记(其一)

    目录 0. 前置操作 I. 安装MCL II. MCL自动登录配置 III. 安装IDEA插件 1. 新建Mirai项目 2. 编写主类 3. 添加外部依赖 4. IDEA运行 5. 插件打包 6. ...

  8. 「Java」基于Mirai的qq机器人开发踩坑笔记(其二)

    目录 0. 配置机器人 1. onLoad方法 2. onEnable方法 3. 消息属性 4. 消息监听 I. 好友消息 II. 群聊消息 III. 无差别消息 5. 发送消息 I. 文本消息 II ...

  9. 昆仑通态触摸屏1003故障码,踩坑笔记

    昆仑通态触摸屏1003故障码,踩坑笔记 第一次使用这个昆仑通态触摸屏,使用modbusRTU与金田变频器做通讯. 触摸屏在线后报1003通讯错误代码,现象是控制指令正常,但是读取不正常.读取变频器状态 ...

  10. uniapp引入vantweapp踩坑笔记

    vue-cli创建uniapp项目引入vantweapp踩坑笔记 uni-app中引入vantweapp vue-cli创建uniapp项目引入vantweapp踩坑笔记 一.环境准备 二.项目搭建 ...

最新文章

  1. 关于《强化狼群等级制度的灰狼优化算法》的问题邮件回复
  2. 洛谷P1433 吃奶酪【dfs】【剪枝】
  3. 附带数据库的应用程序
  4. XSuperTooltip - Office 2007 Super Tooltip class
  5. VTK 曲面构建+颜色映射
  6. IOS_SearchBar搜索栏及关键字高亮
  7. CF1034E Little C Loves 3 III(神仙构造+FWT_OR卷积)
  8. HTML滚动条S默认最小值,css修改滚动条默认样式
  9. 分析一天1000万北京地铁客流,我们发现...
  10. 重庆木叶村,每天被忍者迷骚扰500次
  11. (译)MySQL的10个基本性能技巧
  12. overridden/inherited关键字的读书笔记
  13. WinForm上显示gif动画
  14. f2fs学习笔记 - 1. f2fs概述
  15. STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)
  16. 2022广东省安全员A证第三批(主要负责人)特种作业证考试题库及模拟考试
  17. LINUX 安装护眼软件
  18. 从PCC到MIC,理解变量之间的相关性
  19. 如何通过C/C++求任意角度的余弦值
  20. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧...

热门文章

  1. 基于微信小程序的培训机构系统
  2. 让我们在网页中实现数据库的增删改查~
  3. 使用JS脚本抢腾讯云学生一元优惠券
  4. FFmpeg学习之 一 (音视频理论知识)
  5. 什么叫faq_FAQ是什么意思啊
  6. 这几天很可能是因为时差倒坏了
  7. 互联网大文件的传输方式
  8. 耳机插入电脑插孔后只有一边有声音
  9. 禁用win10触摸屏手势_笔记本WIN10系统启用或关闭触控板的多指(多点)触控功能步骤...
  10. Unity 获取视频缩略图