Hadoop(五)之实验二HBase使用:HBase shell


Hadoop(五)之实验二HBase使用:HBase shell
Hadoop(六)之实验二HBase使用:使用Java API操作HBase上的数据


一、修改 Hbase 配置文件

1.编辑配置文件 hbase-env.sh

【c0上】

gedit /home/work/_app/hbase-1.4.10/conf/hbase-env.sh
#!/usr/bin/env bash
#

# Extra Java runtime options.
# Below are what we set by default.  May only work with SUN JVM.
# For more on why as well as other possible settings,
# see http://hbase.apache.org/book.html#performance
export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC"

# Where log files are stored.  $HBASE_HOME/logs by default.
export HBASE_LOG_DIR=/home/work/_logs/hbase-1.4.10

# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids
export HBASE_PID_DIR=/home/work/_data/hbase-1.4.10

# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# 使用hbase自带的zookeeper
export HBASE_MANAGES_ZK=true

2.编辑配置文件 hbase-site.xml

【c0上】

gedit /home/work/_app/hbase‐1.4.10/conf/hbase‐site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>hbase.rootdir</name> <!-- hbase存放数据目录 -->
        <value>hdfs://mshkcluster:8020/hbase/hbase_db</value>
        <description>端口要和Hadoop的fs.defaultFS端口一致</description>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
        <description>集群将处于的模式。可能的值是对于独立模式为false,对于分布式模式为true</description>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name> 
    <value>c0,c1,c2,c3</value>
        <description>逗号分隔的ZooKeeper集合中的服务器列表个</description>
  </property>    
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/work/_data/hbase-1.4.10</value>
        <description>zookooper配置、日志等的存储位置,必须为以存在</description>
    </property>
    <property>
        <name>hbase.master.port</name>
        <value>16000</value>
        <description>HBase Master应绑定的端口</description>
    </property>
    <property>
        <name>hbase.master.info.port</name>
        <value>16010</value>
        <description>hbase web 端口</description>
  </property>
  <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

3.配置 Slaver

(1)修改regionservers文件

c2,c3是第三、四台虚拟机的名字
【c0上】

gedit /home/work/_app/hbase-1.4.10/conf/regionservers

内容修改为:

c2
c3

在这里插入图片描述

(2)删除掉与 Hadoop 重复的 jar 包

【c0上】
在这里插入图片描述

rm ‐r -f /home/work/_app/hbase-1.4.10/lib/slf4j-log4j12-1.7.10.jar 

4.将 Hbase 复制到其他机器

【c0上】

for N in $(seq 1 3); do scp ‐r /home/work/_app/hbase‐1.4.10 c$N:/home/work/_app/; done;

二、启动 Hbase

1.启动hbase

在 NameNode 的 c0和c1 上分别通过 start-hbase.sh 启动 Hbase,会看到在 Master 上有 HMaster 的守护进程,同时会自动启动其他节点的 HRegionServer 服务。

注:之前在c1上关闭 namenode的,需要在c1上先启动namenode,再启动Hbase。启动namenode命令为

hdfs --daemon start namenode

【c0和c1上分别】

start-hbase.sh
jps

在这里插入图片描述
在这里插入图片描述

关闭的命令为:stop-hbase.sh(不执行)

2.网页UI

启动后浏览 http://c0:16010 ,可以看到 c0 是 Master 而 c1 是 Backup Master

三、HBase shell

1.启动HBase shell

如果是重新开虚拟机的,那么要启动zookeeper(多打几遍,以防出现假启动后报错。客户端连接zk,不停地报Will not attempt to authenticate using SASL (unknown error)

for N in $(seq 0 3); do ssh c$N zkServer.sh start; done;
for N in $(seq 0 3); do ssh c$N jps; done;

启动HBase shell

$HBASE_HOME/bin/hbase shell

示例:

在这里插入图片描述

2.查询数据库状态

status

【问题:ERROR: Can't get master address from ZooKeeper; znode data == null

sudo mkdir -p /var/hadoop/pids
chmod 777 /var/hadoop/pids
export HBASE_PID_DIR=/var/hadoop/pids

3.查询数据库版本

version

在这里插入图片描述

4.对表的操作

(1)创建表

利用命令create创建表tempTable,表中有f1,f2,f3三个列族

create 'tempTable','f1','f2','f3'

(2)列出HBase中所有的表信息

list

(3)为表中添加数据

一次只能为一个表的一行数据的一个列添加一个数据
参数:列指定的单元格数据

put 'tempTable','r1','f1:c1','f3'

(4)浏览表的相关信息

scan 'tempTable'

(5)获得单元格的值

表名、行、列

get 'tempTable','r1',{COLUMN=>'f1:c1'}

(6)生效/失效表

disable 'tempTable'
enable 'tempTable'

(7)删除表

drop 'tempTable'
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值