一.前提条件:

(1)文件存储在HDFS文件系统之上。因此必须启动hadoop服务。(namenode,datanode,resourcemanager,nodemanager,historyserver)
(2)源文件依赖于zookeeper。因此需要启动zookeeper服务。(./zkServer ./zkCli.sh)

二,HBase的安装(版本:5.3.6)

(1) tar -zxvf hbase-0.98.6-cdh5.3.6.tar.gz  -C /opt/modules  解压文件包

(2) cd /opt/modules/hbase-0.98.6-cdh5.3.6/conf 进入hbase conf目录下准备进行配置

(3) 编辑hbase-env.sh文件
##Java环境变量的配置
export JAVA_HOME=/opt/modules/jdk1.8.0_151
##是否默认zookeeper设置。自定义的话,选择false。建议自定义
export HBASE_MANAGES_ZK=true

(4) 编辑hbase-site.xml文件

<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/modules/hbase-0.98.6-cdh5.3.6/data/tmp</value>
</property> <property>
<name>hbase.rootdir</name>
<value>hdfs://tonyliu.local.com:8020/hbase</value>
</property> <property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property> <property>
<name>hbase.zookeeper.quorum</name>
<value>tonyliu.local.com</value>
</property> </configuration>

(6) 编辑regionservers文件(分布式环境可以添加多台)
tonyliu.local.com

(7)启动Hbase
注意事项:启动之前一定要吧/etc/hosts文件中的以下两行注释掉再启动各个服务。
不然Hbase的master及regionserver服务会启动失败(启动后再消失)
##127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
##::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

1.启动master
bin/hbase-daemon.sh start master

2.启动regionserver
bin/hbase-daemon.sh start regionserver

##jps如果出现以下2个服务说明启动成功##

[liupeng@www hbase-0.98.6-cdh5.3.6]$ jps
2816 DataNode
28112 Jps
3713 org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
22850 HMaster
2757 SecondaryNameNode
3622 Main
22939 HRegionServer
2924 NodeManager
3101 QuorumPeerMain

(8)打开Hbase的web界面
http://tonyliu.local.com:60010/master-status

端口号版本不同也不同。我用的是60010的端口。如果web界面能够正常打开。说明Hbase的配置没有问题。

二,Hbase的基本命令
1. 进入Hbase 命令行界面
bin/hbase shell

##其他命令可以直接bin/hbase进行列表查看。

2.help命令查看Hbase中的shell命令

help

3. general于ddl相关命令及示例
##general没什么好说了可以通过以下命令来查看当前用户,版本,状态等基本信息。
(1)COMMAND GROUPS:
  Group name: general
  Commands: status, table_help, version, whoami

##shell命令中分2大块主要的操作命令。分别是ddl于dml。下面先一起来看一下ddl都有哪些常用命令
  Group name: ddl
 (2) Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, show_filters

Group name: namespace
  Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables

<1> 跟关系型数据库不同的是Hbase没有show database,show table等SQL式的命令。在Hbase中有space相关的概念。比如创建database的话用如下方法

【创建name_space】

hbase(main):026:0> create 'liupeng:employee','info','contect','group'

【查看name_space属性】

desc 'liupeng:employee'

【查看所有table表】
hbase(main):059:0> list
TABLE
liupeng:employee
student
2 row(s) in 0.0130 seconds

=> ["liupeng:employee", "student"]

【向table表中插入数据】

hbase(main):029:0> put 'liupeng:employee','1001','info:name','liupeng'
0 row(s) in 0.0300 seconds

hbase(main):030:0> put 'liupeng:employee','1001','info:age','34'
0 row(s) in 0.0120 seconds

hbase(main):031:0> put 'liupeng:employee','1001','contect:mail','liupliup@cn.ibm.com'
0 row(s) in 0.0070 seconds

hbase(main):032:0> put 'liupeng:employee','1001','contect:phone','15962459503'
0 row(s) in 0.0100 seconds

hbase(main):033:0> put 'liupeng:employee','1001','group:number','1'
0 row(s) in 0.0270 seconds

hbase(main):034:0> put 'liupeng:employee','1002','info:name','Jack_Ma'
0 row(s) in 0.0160 seconds

hbase(main):035:0> put 'liupeng:employee','1002','info:age','45'
0 row(s) in 0.0110 seconds

hbase(main):036:0> put 'liupeng:employee','1002','contect:mail','jackMa@alibaba.com'
0 row(s) in 0.0100 seconds

hbase(main):037:0> put 'liupeng:employee','1002','contect:phone','15977634464'
0 row(s) in 0.0210 seconds

hbase(main):038:0> put 'liupeng:employee','1002','group:number','1'
0 row(s) in 0.0110 seconds

hbase(main):039:0> put 'liupeng:employee','1003','info:name','kevin_shi'
0 row(s) in 0.0180 seconds

hbase(main):040:0> put 'liupeng:employee','1003','info:age','40'
0 row(s) in 0.0080 seconds

hbase(main):041:0> put 'liupeng:employee','1003','contect:mail','kevinshi@163.com'
0 row(s) in 0.0120 seconds

hbase(main):042:0> put 'liupeng:employee','1003','contect:phone','18665851263'
0 row(s) in 0.0090 seconds

hbase(main):043:0> put 'liupeng:employee','1003','group:number','2'
0 row(s) in 0.0110 seconds

【查看表中所有数据】
hbase(main):046:0> scan 'liupeng:employee'
ROW                             COLUMN+CELL
 1001                           column=contect:mail, timestamp=1522202414649, value=liupliup@cn.ibm.com
 1001                           column=contect:phone, timestamp=1522202430196, value=15962459503
 1001                           column=group:number, timestamp=1522202455929, value=1
 1001                           column=info:age, timestamp=1522202371257, value=34
 1001                           column=info:name, timestamp=1522202364156, value=liupeng
 1002                           column=contect:mail, timestamp=1522202508002, value=jackMa@alibaba.com
 1002                           column=contect:phone, timestamp=1522202527866, value=15977634464
 1002                           column=group:number, timestamp=1522202544626, value=1
 1002                           column=info:age, timestamp=1522202484166, value=45
 1002                           column=info:name, timestamp=1522202474669, value=Jack_Ma
 1003                           column=contect:mail, timestamp=1522202590768, value=kevinshi@163.com
 1003                           column=contect:phone, timestamp=1522202605976, value=18665851263
 1003                           column=group:number, timestamp=1522202617893, value=2
 1003                           column=info:age, timestamp=1522202568861, value=40
 1003                           column=info:name, timestamp=1522202561029, value=kevin_shi

【获取表中指定数据】
关于获取数据方法很多。这里只是简单演示一个基本的获取操作。

hbase(main):048:0> get 'liupeng:employee','1001',['info:name','info:age','group:1']
COLUMN                          CELL
 info:age                       timestamp=1522202371257, value=34
 info:name                      timestamp=1522202364156, value=liupeng

【删除数据表】
注意:Hbase中不允许直接删除table表。要删除的话需要先disable掉指定的表后再删除。更改也是一样。先disable更改后再enable。

hbase(main):048:0> disable 'liupeng:employee'
hbase(main):048:0> drop 'liupeng:employee'

【删除namespace】
hbase(main):048:0> drop_namespace 'liupeng'

【删除表中一列数据】
delete 'liupeng:employee','1002','contect:mail'
注释:'1002'指定删除的rowkey,指定要删除的列簇'contect:mail'。执行后会自动删除列簇中的value值

【更新表中数据】
hbase(main):030:0> put 'liupeng:employee','1002','contect:mail','tony@163.com'
注释:在Hbase中更新就是put,相当于在原有的基础上更新了数据。只要rowkey跟列簇的指定没有错,那么put的value就为更新后的value值。

HBase 伪分布式环境搭建及基础命令使用的更多相关文章

  1. 【Hadoop离线基础总结】CDH版本Hadoop 伪分布式环境搭建

    CDH版本Hadoop 伪分布式环境搭建 服务规划 步骤 第一步:上传压缩包并解压 cd /export/softwares/ tar -zxvf hadoop-2.6.0-cdh5.14.0.tar ...

  2. Hadoop学习笔记1:伪分布式环境搭建

    在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...

  3. 【Hadoop】伪分布式环境搭建、验证

    Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...

  4. 大数据:Hadoop(JDK安装、HDFS伪分布式环境搭建、HDFS 的shell操作)

    所有的内容都来源与 Hadoop 官方文档 一.Hadoop 伪分布式安装步骤 1)JDK安装 解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app 添加到系 ...

  5. hive-2.2.0 伪分布式环境搭建

    一,实验环境: 1, ubuntu server 16.04 2, jdk,1.8 3, hadoop 2.7.4 伪分布式环境或者集群模式 4, apache-hive-2.2.0-bin.tar. ...

  6. CentOS7下Hadoop伪分布式环境搭建

    CentOS7下Hadoop伪分布式环境搭建 前期准备 1.配置hostname(可选,了解) 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(p ...

  7. HDFS 伪分布式环境搭建

    HDFS 伪分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 伪分布式环境搭建 CSDN:HDFS 伪分布式环境搭建 相关软件版本 Hadoop 2.6.5 CentOS 7 Oracle ...

  8. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  9. hbase伪分布式环境的搭建

    一,实验环境: 1, ubuntu server 16.04 2, jdk,1.8 3, hadoop 2.7.4 伪分布式环境或者集群模式 4, hbase-1.2.6.tar.gz 二,环境的搭建 ...

随机推荐

  1. 6 - 常用模块(os,sys,time&datetime,random,json&picle,shelve,hashlib)

    导入模块 想使用 Python 源文件,只需在另一个源文件里执行 import 语句 import module1[, module2[,... moduleN] from语句让你从模块中导入一个指定 ...

  2. 《浪潮之巅》(第2版):精彩的IT商战史

    2011年看过第一版.以为看新版会跳过大部分看过的内容,结果发现还是从头到尾看了一遍,2011年看过的内容已经记不太确切了:) 另外IT的历史太精彩了,许多故事都知道,再看还是挺有意思.当然作者的文字 ...

  3. 如何读写json文件

    代码如下: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io. ...

  4. CRUD全栈式编程架构之数据层的设计

    CodeFirst 一直以来我们写应用的时候首先都是创建数据库 终于在orm支持codefirst之后,我们可以先建模. 通过模型去创建数据库,并且基于codefirst可以实现方便的 实现数据库迁移 ...

  5. 【转载】#457 Converting Between enums and their Underlying Type

    When you declare an enum, by default each enumerated value is represented internally with an int. (S ...

  6. 【[COCI2011-2012#5] POPLOCAVANJE】

    据说这道题卡空间? 不存在的,拿\(AC\)自动机去存\(5000\times5000\)的串肯定是要M的 我们可以考虑对长度为\(n\)的串建一个\(SAM\),这样空间就只需要两倍的\(3e5\) ...

  7. luogu P1768 天路

    嘟嘟嘟 01分数规划之最优比率环. 主要是发一下基于dfs的spfa.跑的贼快,原来总用时2000多ms还TLE了两个点,改成dfs后总用时直降43ms! #include<cstdio> ...

  8. TemplateSyntaxError at /article/list-article-titles/admin/

    如图红圈所示,发现一个注释掉的{% if userinfo %}标签竟然可以影响后面的标签快,不能注释,需要完全删除才不会报错. 继续这类django在html模板中直接注释掉发生错误以及解决方案: ...

  9. Android学习笔记_65_登录功能本身没有任何特别

    对于登录功能本身没有任何特别,使用httpclient向服务器post用户名密码即可.但是为了保持登录的状态(在各个Activity之间切换时要让网站知道用户一直是处于登录的状态)就需要进行cooki ...

  10. 转载:C/C++ typedef用法

    原文链接:http://www.cnblogs.com/ggjucheng/archive/2011/12/27/2303238.html 引言 typedef 声明,简称 typedef,为现有类型 ...