国家住房部和城乡建设部 网站首页,部署一个网站要做哪些工作,建网站哪个好,thinkphp 微网站开发文章目录 Hbase概念1.安装Hbase1.jdk的配置2.安装hbase 2.启动和操作1.启动服务2 **web-ui访问地址:http://node01:16010/master-status** 3.简单的操作1.连接 HBase2.帮助命令3.创建一张表 create a table4.使用查看表是否存在5.describe 查看表描述6.put命令插入数据到表7. s… 文章目录 Hbase概念1.安装Hbase1.jdk的配置2.安装hbase 2.启动和操作1.启动服务2 **web-ui访问地址:http://node01:16010/master-status** 3.简单的操作1.连接 HBase2.帮助命令3.创建一张表 create a table4.使用查看表是否存在5.describe 查看表描述6.put命令插入数据到表7. scan 查看所有的数据8.get获取单行数据9.删除表需要先禁用disable表再删除(drop)10.退出hbase shell11.停止hbase Hbase概念
HBase是一个分布式、面向列的开源数据库其基于Hadoop的分布式文件系统HDFS进行存储。它既具有分布式、可扩展、高可靠性等优点也具备NoSQL、schema-free、实时访问等特性。HBase遵循Google BigTable的计算模型可以用于存储非常大的数据集适用于不断积累的数据提供高效地实时读写访问。HBase作为Hadoop生态系统中的一个重要组成部分可与Hadoop及其它组件如Hive、Pig、Storm等相互配合构建具有高性能、可靠性和扩展性的大数据处理平台。
1.安装Hbase
1.jdk的配置
在这里不在赘述。
2.安装hbase
解压安装包
$ tar xzvf hbase-2.5.1-bin.tar.gz
$ cd hbase-2.4.0/配置HBASE_HOME环境变量
vi /etc/profile
export HBASE_HOME/opt/bigdata/hbase-2.5.1
export PATH$PATH:$HBASE_HOME/bin
source /etc/profile修改hbase-env.sh 最好使用jdk1.8配置jdk8的路径
export JAVA_HOME/usr/jdk64/jdk1.8.0_112修改hbase-site.xml 默认不用修改。
2.启动和操作
1.启动服务
bin/start-hbase.sh启动成功
[rootnode01 conf]# start-hbase.sh
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/bigdata/hadoop-2.6.5/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/bigdata/hbase-2.5.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.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 /opt/bigdata/hbase-2.5.1/logs/hbase-root-master-node01.out
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/bigdata/hadoop-2.6.5/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/bigdata/hbase-2.5.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.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]
2023-04-16 07:03:20,996 INFO [main] master.HMaster (HMaster.java:main(3289)) - STARTING service HMaster
2023-04-16 07:03:21,001 INFO [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - HBase 2.5.1
2023-04-16 07:03:21,001 INFO [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - Source code repository git://buildbox.localdomain/home/apurtell/tmp/RM/hbase revision894ac15342ae9ac1e0d7c827c00fda4b83627758
2023-04-16 07:03:21,001 INFO [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - Compiled by apurtell on Mon Oct 17 15:41:08 PDT 2022
2023-04-16 07:03:21,001 INFO [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - From source with checksum 57c1d2c9c03f18d35860e6733447968d1711dae96b0b7d35b2d1e029a5d91423cf65a6063cfbe3b736907b7b20fb94d82a443b65982f4c973a72fb71cd7f2e472 web-ui访问地址:http://node01:16010/master-status 3.简单的操作
1.连接 HBase
hbase shell启动报错
错误1 版本不兼容 需要换版本 hbase shell
LoadError: load error: irb/completion -- java.lang.IncompatibleClassChangeError: Implementing classrequire at org/jruby/RubyKernel.java:974require at uri:classloader:/METAINF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54main at classpath:/jar-bootstrap.rb:42错误2
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected解决方法
#hadoop目录下存在老版本jline
cd $HADOOP_HOME/share/hadoop/yarn/lib
rm -f jline-0.9.94.jar2.帮助命令
hbase(main):030:0 help 常用命令 #命令组 COMMAND GROUPS:
Group name: general
Commands: processlist, status, table_help, version, whoami
# ddl表定义语言 Group name: ddlCommands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, list_regions, locate_region, show_filters
#数据库 Group name: namespaceCommands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables#操作语言 Group name: dmlCommands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, #插入数据scan, #查询truncate #删除表数据
3.创建一张表 create a table
hbase(main):009:0* create user,cf
Created table user
Took 0.7635 seconds Hbase::Table - user4.使用查看表是否存在
hbase(main):010:0 list user
TABLE
user
1 row(s)
Took 0.0328 seconds [user]5.describe 查看表描述
hbase(main):012:0 describe user
Table user is ENABLED
user
COLUMN FAMILIES DESCRIPTION
{NAME cf, VERSIONS 1, EVICT_BLOCKS_ON_CLOSE false, NEW_VERSION_BEHAVIOR false, KEEP_DELETED_CELLS FALSE, CACHE_DATA_ON_WRITE false, DATA_BLOCK_ENCODING NONE, TTL FOREVER, MIN_
VERSIONS 0, REPLICATION_SCOPE 0, BLOOMFILTER ROW, CACHE_INDEX_ON_WRITE false, IN_MEMORY false, CACHE_BLOOMS_ON_WRITE false, PREFETCH_BLOCKS_ON_OPEN false, COMPRESSION NONE, BL
OCKCACHE true, BLOCKSIZE 65536}
1 row(s)
Took 0.1756 seconds 6.put命令插入数据到表
hbase(main):013:0 put user,1,cf:username,elite
Took 0.1000 seconds
hbase(main):014:0 put user,1,cf:age,22
Took 0.0052 seconds
hbase(main):015:0 put user,1,cf:address,xxpro
Took 0.0047 seconds 7. scan 查看所有的数据
One of the ways to get data from HBase is to scan. Use the scan command to scan the table for data. You can limit your scan, but for now, all data is fetched.
hbase(main):016:0 scan user
ROW COLUMNCELL 1 columncf:address, timestamp1681776414492, valuexxpro 1 columncf:age, timestamp1681776404658, value22 1 columncf:username, timestamp1681776395675, valueelite 8.get获取单行数据
hbase(main):024:0 scan user
ROW COLUMNCELL 1 columncf:address, timestamp1681776414492, valuexxpro 1 columncf:age, timestamp1681776404658, value22 1 columncf:username, timestamp1681776540360, valueelite2 2 columncf:address, timestamp1681776520152, valuexx2pro 2 columncf:age, timestamp1681776533412, value24 2 columncf:username, timestamp1681776546625, valueelite2
2 row(s)
Took 0.0144 seconds
hbase(main):025:0 get user,2
COLUMN CELL cf:address timestamp1681776520152, valuexx2pro cf:age timestamp1681776533412, value24 cf:username timestamp1681776546625, valueelite2
1 row(s)
Took 0.0069 seconds 9.删除表需要先禁用disable表再删除(drop)
If you want to delete a table or change its settings, as well as in some other situations, you need to disable the table first, using the disable command. You can re-enable it using the enable command.
#创建表
hbase(main):031:0 create test,cf
Created table test
Took 0.7353 seconds Hbase::Table - test
#看表描述是enabled状态
hbase(main):032:0 desc test
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME cf, VERSIONS 1, EVICT_BLOCKS_ON_CLOSE false, NEW_VERSION_BEHAVIOR false,KEEP_DELETED_CELLS FALSE, CACHE_DATA_ON_WRITE false, DATA_BLOCK_ENCODING NONE, TTL FOREVER, MIN_VERSIONS 0, REPLICATION_SCOPE 0, BLOOMFILTER ROW, CACHE_INDEX_ON
_WRITE false, IN_MEMORY false, CACHE_BLOOMS_ON_WRITE false, PREFETCH_BLOCKS_ON_OPEN false, COMPRESSION NONE, BLOCKCACHE true, BLOCKSIZE 65536}
1 row(s)
Took 0.0253 seconds
# 直接删除表提示 Table test is enabled. Disable it first.
hbase(main):033:0 drop testERROR: Table test is enabled. Disable it first.Drop the named table. Table must first be disabled:hbase drop t1hbase drop ns1:t1Took 0.0192 seconds
#禁用表
hbase(main):035:0 disable test
Took 0.4833 seconds
# 删除表
hbase(main):036:0 drop test
Took 0.2657 seconds 10.退出hbase shell
quit11.停止hbase
$ ./bin/stop-hbase.sh