hbase 进阶之旅一(windows下源码的安装与调试)

本文章是系列初级教程,欢迎大家讨论留言,和大家一起学习进步。好好学习,天天向上 :)。

 

为了方便调试在笔记本上搭建了一套hbase 源码过程如下:

1、下载源码, 建议在hbase 官网下载  https://hbase.apache.org/downloads.html

我选择的是 2.1.1  https://www.apache.org/dyn/closer.lua/hbase/2.1.1/hbase-2.1.1-src.tar.gz

从github 上下载太慢了,一直不成功,果断放弃。

网上也有说需要安装Cygwin ,我也安装了,最后发现,不用安装也可以调试hbase Hmaster,如果需要调试 shell 需要安装(方法略) 。

2、解压,用idea打开。解压这个就不用说了,网上也有说,需要编译的,我也没做,好像也成功了。

打开之后需要下载到本地仓库一些Jar包,这个有点慢。

3、配置主服务的启动,注意路径要改为你自己源码所在位置。

hbase 进阶之旅一(windows下源码的安装与调试)_第1张图片

4、配置hbase shell 启动,注意路径要改为你自己源码所在位置。

 

hbase 进阶之旅一(windows下源码的安装与调试)_第2张图片

5、第一次启动时会报找不到配置文件,提示

log4j:WARN No appenders could be found for logger (TestDemo).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这个让我费了一点时间,主要是需要注意把 hbase-server 这个模块增加一个resources 的文件夹再增加一个log4j.properties 并把 resources 文件夹设置为 资源 。

打开 idea File  ->  Project Structure  -> Modules  

hbase 进阶之旅一(windows下源码的安装与调试)_第3张图片

log4j.properties  代码 如下  其中 hbase.log.dir 可以自己指定。


hbase.root.logger=INFO,console
hbase.security.logger=INFO,console
hbase.log.dir=C:/log4j/log
hbase.log.file=hbase.log

# Define the root logger to the system property "hbase.root.logger".
log4j.rootLogger=${hbase.root.logger}

# Logging Threshold
log4j.threshold=ALL

#
# Daily Rolling File Appender
#
log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFA.File=${hbase.log.dir}/${hbase.log.file}

# Rollver at midnight
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd

# 30-day backup
#log4j.appender.DRFA.MaxBackupIndex=30
log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout

# Pattern format: Date LogLevel LoggerName LogMessage
log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n

# Rolling File Appender properties
hbase.log.maxfilesize=256MB
hbase.log.maxbackupindex=20

# Rolling File Appender
log4j.appender.RFA=org.apache.log4j.RollingFileAppender
log4j.appender.RFA.File=${hbase.log.dir}/${hbase.log.file}

log4j.appender.RFA.MaxFileSize=${hbase.log.maxfilesize}
log4j.appender.RFA.MaxBackupIndex=${hbase.log.maxbackupindex}

log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n

#
# Security audit appender
#
hbase.security.log.file=SecurityAuth.audit
hbase.security.log.maxfilesize=256MB
hbase.security.log.maxbackupindex=20
log4j.appender.RFAS=org.apache.log4j.RollingFileAppender
log4j.appender.RFAS.File=${hbase.log.dir}/${hbase.security.log.file}
log4j.appender.RFAS.MaxFileSize=${hbase.security.log.maxfilesize}
log4j.appender.RFAS.MaxBackupIndex=${hbase.security.log.maxbackupindex}
log4j.appender.RFAS.layout=org.apache.log4j.PatternLayout
log4j.appender.RFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
log4j.category.SecurityLogger=${hbase.security.logger}
log4j.additivity.SecurityLogger=false
#log4j.logger.SecurityLogger.org.apache.hadoop.hbase.security.access.AccessController=TRACE
#log4j.logger.SecurityLogger.org.apache.hadoop.hbase.security.visibility.VisibilityController=TRACE

#
# Null Appender
#
log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender

#
# console
# Add "console" to rootlogger above if you want to use this
#
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n

log4j.appender.asyncconsole=org.apache.hadoop.hbase.AsyncConsoleAppender
log4j.appender.asyncconsole.target=System.err

# Custom Logging levels

log4j.logger.org.apache.zookeeper=INFO
#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
log4j.logger.org.apache.hadoop.hbase=INFO
# Make these two classes INFO-level. Make them DEBUG to see more zk debug.
log4j.logger.org.apache.hadoop.hbase.zookeeper.ZKUtil=INFO
log4j.logger.org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher=INFO
#log4j.logger.org.apache.hadoop.dfs=DEBUG
# Set this class to log INFO only otherwise its OTT
# Enable this to get detailed connection error/retry logging.
# log4j.logger.org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation=TRACE


# Uncomment this line to enable tracing on _every_ RPC call (this can be a lot of output)
#log4j.logger.org.apache.hadoop.ipc.HBaseServer.trace=DEBUG

# Uncomment the below if you want to remove logging of client region caching'
# and scan of hbase:meta messages
# log4j.logger.org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation=INFO
# log4j.logger.org.apache.hadoop.hbase.client.MetaScanner=INFO

# Prevent metrics subsystem start/stop messages (HBASE-17722)
log4j.logger.org.apache.hadoop.metrics2.impl.MetricsConfig=WARN
log4j.logger.org.apache.hadoop.metrics2.impl.MetricsSinkAdapter=WARN
log4j.logger.org.apache.hadoop.metrics2.impl.MetricsSystemImpl=WARN

 

最后来张效果看看。

hbase 进阶之旅一(windows下源码的安装与调试)_第4张图片

可以同时执行hbase shell

hbase 进阶之旅一(windows下源码的安装与调试)_第5张图片

以下是一些hbase shell命令,比如,创建一个表、插入一些数据查看,等等。

 create 'T5' ,'B','0'
 put 'T5',1,'0:ID','2'
 put 'T5',1,'0:NAME','杨振国'
 list
 scan "T5"

 

 

 

 

你可能感兴趣的:(hbase)