当前位置:   article > 正文

Docker 安装HBase 并使用_hbase docker安装

hbase docker安装

一.安装
1.创建docker-compose.yml文件

   

  1. version: '3.1'
  2.     services:
  3.       hbase:
  4.         image: harisekhon/hbase:1.4.7
  5.         container_name: hbase
  6.         restart: always
  7.         ports:
  8.           - 8880:8080
  9.           - 8885:8085
  10.           - 9990:9090
  11.           - 9995:9095
  12.           - 16000:16000
  13.           - 16010:16010
  14.           - 16020:16020
  15.           - 16030:16030
  16.           - 16201:16201
  17.           - 16301:16301
  18.           - 2381:2181
  19.         environment:
  20.           # SERVICE_PRECONDITION: "namenode:50070 datanode:50075"
  21.           - TZ="Asia/Shanghai"
  22.           - LANG=en_US.UTF-8
  23.         volumes:
  24.           - ./hbase_data:/hbase-data
  25.           - ./hbase_zookeeper_data:/zookeeper-data
  26.     networks:
  27.       default:
  28.         driver: bridge

使用docker-compose命令运行:

docker-compose up -d 

2.修改配置文件

  (1).修改hbase-site.xml配置文件
    hbase.rootdir  修改成  hbase.root.dir
  (2).在hbase-env.sh里面添加

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

 (3).重启hbase即可

二.使用
1.建表

  1.     //创建命名空间
  2.     create_namespace 'user'
  3.     //创建表                
  4.     create 'user:sac','student','course1','course2','course3'     

2.插入数据

   

  1. //第一条
  2.     put 'user:sac','2015001','student:S_Name','zhangsan'
  3.     put 'user:sac','2015001','student:S_Sex','male'
  4.     put 'user:sac','2015001','student:S_Age','23'
  5.     put 'user:sac','2015001','course1:C_No','123001'
  6.     put 'user:sac','2015001','course1:C_Name','Math'
  7.     put 'user:sac','2015001','course1:C_Credit','2.0'
  8.     put 'user:sac','2015001','course1:Score','86'
  9.     put 'user:sac' ,'2015001','course3:C_No','123003'
  10.     put 'user:sac' ,'2015001','course3:C_Name','English'
  11.     put 'user:sac' ,'2015001','course3:C_Credit','3.0'
  12.     put 'user:sac' ,'2015001','course3:Score','69'
  13.     //第二条
  14.     put 'user:sac' ,'2015002','student:S_Name','lisi'
  15.     put 'user:sac' ,'2015002','student:S_Sex','female'
  16.     put 'user:sac' ,'2015002','student:S_Age','22'
  17.     put 'user:sac' ,'2015002','course2:C_No','123002'
  18.     put 'user:sac' ,'2015002','course2:C_Name','Conputer Science'
  19.     put 'user:sac' ,'2015002','course2:Credit','5.0'
  20.     put "user:sac" ,'2015002','course2:Score','77'
  21.     put 'user:sac' ,'2015002','course3:C_No','123003'
  22.     put 'user:sac' ,'2015002','course3:C_Name','English'
  23.     put 'user:sac' ,'2015002','course3:Credit','3.0'
  24.     put 'user:sac' ,'2015002','course3:Score','99'
  25.     //第三条
  26.     put 'user:sac' ,'2015003','student:S_Name','wanger'
  27.     put 'user:sac' ,'2015003','student:S_Sex','male'
  28.     put 'user:sac' ,'2015003','student:S_Age','24'
  29.     put 'user:sac' ,'2015003','course1:C_No','123001'
  30.     put 'user:sac' ,'2015003','course1:C_Name','Math'
  31.     put 'user:sac' ,'2015003','course1:C_Credit','2.0'
  32.     put 'user:sac' ,'2015003','course1:Score','98'
  33.     put 'user:sac' ,'2015003','course2:C_No','123002'
  34.     put 'user:sac' ,'2015003','course2:C_Name','Computer Science'
  35.     put 'user:sac' ,'2015003','course2:C_Credit','5.0'
  36.     put 'user:sac' ,'2015003','course2:Score','95'

3.查询

(1).查询命名空间列表  

 

  1.   //show databases;
  2.     list_namespace

(2).查询命名空间(database)下的表  

   

  1. //show tables;
  2.     list_namespace_tables 'namespace'

(3).全表查询  

 

  1.   //select * from tableName
  2.     scan 'namespace:table'

(4).全表扫面指定的族(根据表下的某个族查询)  

    在nosql中存储数据是将某个对象所有的属性全部存储
    例如关系型数据库中的用户,权限,角色是分表存储,但是nosql中,将某个用户的权限角色都一起存在用户表中;
    其中用户,角色,权限分别属于用户表中的三个族
      
   

scan 'namespace:table',COLUMn=>'用户族'

(5).查询某个族下的指定列的数据

 

  1.   //查询唯一一条 get
  2.     //根据条件查询某条数据
  3.     get 'namespace:table','rowkey','族:列'

   

  1. //批量查询 scan
  2.     //查询从rowkeyStart到rowkeyStop的数据
  3.     scan 'namespace:table',
  1. {COLUMN=>'族',STARTROW=>'rowkeyStart',STOPROW=>'rowkeySTOP+1'
  2.     //查询10条数据
  3.     scan 'namespace:table',{COLUMN=>'族',LIMIT=>10}

(6).根据条件过滤查询

  1.   scan 'namespace:table',FILTER=>"ColumnPrefixFilter('字段条件') AND ValueFilter(=,'substring:内容条件')"
  2.   例:  
  3.     //在user库中查询,学生姓名列S_Name包含‘张’的数据
  4.     scan 'user:sac',FILTER=>"ColumnPrefixFilter('S_Name') AND ValueFilter(=,'substring:zhang')"

4.删除数据

  1. (1).根据rowkey删除指定的行    //deleteall rowkey
  2.     deleteall '2015003'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/549418
推荐阅读
相关标签
  

闽ICP备14008679号