HBase2.4.10 踩坑笔记
安装
目标:安装 HBase2.4.10
,伪分布式,使用自带的 Zookeeper
参考
确保有 Java 环境
确保有 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
下载并解压 压缩包(建议
HBASE_HOME=/usr/local/hbase
)添加环境变量
# hbase config export HBASE_HOME=/usr/local/hbase export PATH=$PATH:$HBASE_HOME/bin
修改配置文件
hbase/conf/hbase-site.xml
,hbase/conf/hbase-env.sh
,按自己的需求配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>
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"
常用命令
# 启动 start-hbase.sh # 关闭 stop-hbase.sh # 查询 hbase shell
有任何异常记得查看日志文件,在$HBASE_HOME/logs!!!(有master,zookeeper,regionsever)
正常结果
[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远程开发
- 配置IP映射,所有那个远程服务器可能的名称全都配上,包括但不限于 [域名,服务器的原始主机名,自定义的主机名(hadoop,hbase)]
114.55.58.223 hadoop hbase zookeeper Master iZbp18y7b5jm99960ajdloZ
第一个是域名,最后一个是主机名,Master是HBase的机器名 - 将远程服务器上的localhost尽可能替换掉
- 找到一个教程,林子雨大数据课程文件,点HBase
- 新建Maven项目,导包,写 ↑ 里的代码并理解,运行查看结果(遇到没有任何输出但不报错,记得打日志)
遇到的问题
执行
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"
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
关闭安全模式,可能继续报错(下一个)(这个问题请忽略)
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
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=*
Java远程操作HBase和Hadoop,
admin.tableExists(tableName)
语句 不报错也不输出
原因:IP映射没配置
HBase2.4.10 踩坑笔记相关推荐
- EDUSOHO踩坑笔记之四十二:资讯
EDUSOHO踩坑笔记之四十二:资讯 获取资讯列表信息 GET /articles/{id} 权限 老API,需要认证 参数 字段 是否必填 描述 sort string 否 排序,'created' ...
- EDUSOHO踩坑笔记之三十三:班级
EDUSOHO踩坑笔记之三十三:班级 班级 班级 获取班级信息 获取班级列表 班级成员 获取班级计划 加入班级 营销平台加入班级 班级 班级 获取班级信息 GET /classrooms/{class ...
- 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 ...
- iphone se 一代 不完美越狱 14.6 视频壁纸教程(踩坑笔记)
iphone se 一代 不完美越狱 14.6 加 视频壁纸教程-踩坑笔记 越狱流程 1.爱思助手制作启动u盘 坑点: 2.越狱好后 视频壁纸软件 1.源 2.软件安装 越狱流程 1.爱思助手制作启动 ...
- Linux内核踩坑笔记
systemtap embedded C踩坑笔记戳这: https://blog.csdn.net/qq_41961459/article/details/103093912 task_struct的 ...
- 阿里云部署Tiny Tiny RSS踩坑笔记
阿里云部署Tiny Tiny RSS踩坑笔记 前言 入坑了RSS,之前的配置是阿里云部署RSSHub,配合Inoreader进行文章阅读,详情见RSS入坑指南.阿里云部署RSSHub踩坑笔记.在202 ...
- 「Java」基于Mirai的qq机器人开发踩坑笔记(其一)
目录 0. 前置操作 I. 安装MCL II. MCL自动登录配置 III. 安装IDEA插件 1. 新建Mirai项目 2. 编写主类 3. 添加外部依赖 4. IDEA运行 5. 插件打包 6. ...
- 「Java」基于Mirai的qq机器人开发踩坑笔记(其二)
目录 0. 配置机器人 1. onLoad方法 2. onEnable方法 3. 消息属性 4. 消息监听 I. 好友消息 II. 群聊消息 III. 无差别消息 5. 发送消息 I. 文本消息 II ...
- 昆仑通态触摸屏1003故障码,踩坑笔记
昆仑通态触摸屏1003故障码,踩坑笔记 第一次使用这个昆仑通态触摸屏,使用modbusRTU与金田变频器做通讯. 触摸屏在线后报1003通讯错误代码,现象是控制指令正常,但是读取不正常.读取变频器状态 ...
- uniapp引入vantweapp踩坑笔记
vue-cli创建uniapp项目引入vantweapp踩坑笔记 uni-app中引入vantweapp vue-cli创建uniapp项目引入vantweapp踩坑笔记 一.环境准备 二.项目搭建 ...
最新文章
- 关于《强化狼群等级制度的灰狼优化算法》的问题邮件回复
- 洛谷P1433 吃奶酪【dfs】【剪枝】
- 附带数据库的应用程序
- XSuperTooltip - Office 2007 Super Tooltip class
- VTK 曲面构建+颜色映射
- IOS_SearchBar搜索栏及关键字高亮
- CF1034E Little C Loves 3 III(神仙构造+FWT_OR卷积)
- HTML滚动条S默认最小值,css修改滚动条默认样式
- 分析一天1000万北京地铁客流,我们发现...
- 重庆木叶村,每天被忍者迷骚扰500次
- (译)MySQL的10个基本性能技巧
- overridden/inherited关键字的读书笔记
- WinForm上显示gif动画
- f2fs学习笔记 - 1. f2fs概述
- STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)
- 2022广东省安全员A证第三批(主要负责人)特种作业证考试题库及模拟考试
- LINUX 安装护眼软件
- 从PCC到MIC,理解变量之间的相关性
- 如何通过C/C++求任意角度的余弦值
- Java大牛呕心沥血经历——技术面试与HR谈薪资技巧...