hbase

Phoenix + HBase,让你像操作MySQL一样操作HBase

别来无恙 提交于 2020-04-02 06:06:21
Phoenix关联HBase的操作(三种情况) 情况一:Hbase已经有已存在的表了,可在Phoenix中创建对应的视图,视图只能做查询操作,不能做增删改 hbase中已创建表且有数据,表名:phoenix 在phoenix中创建对应视图 create view "phoenix"( pk varchar primary key, "info"."name" varchar, "info"."age" varchar ); 查询视图数据 情况二:Hbase已存在表,可在Phoenix中创建对应的表,对表的操作可读可写,意味着可以对Hbase的表进行插入查询,删除操作。 hbase中已存在表并且有数据 在phoenix中创建对应的表 create table "t_person"( id VARCHAR PRIMARY KEY, "f"."id" VARCHAR, "f"."name" VARCHAR, "f"."age" VARCHAR ) column_encoded_bytes=0; 在phoenix中查询数据 在phoenix中插入数据 此时查看hbase中对应的t_person表数据 情况三:Hbase没有表;可直接在Phoeinx中创建表,对应的Habse中也会自动建表,在Phoenix中对表操作就是直接对Hbase中的表进行操作。 在phoenix中直接建表,t

Hive + HBase,用HQL查询HBase

本小妞迷上赌 提交于 2020-04-01 13:55:13
Hive整合HBase:数据实时写Hbase,实现在Hive中用sql查询 以下操作的 Hive版本:2.3.6 ,HBase版本:2.0.4 在HBase中创建表:t_hbase_stu_info create 't_hbase_stu_info','st1' 在Hive中创建外部表:t_hive_stu_info create external table t_hive_stu_info (id int,name string,age int,sex string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping"=":key,st1:name,st1:age,st1:sex") tblproperties("hbase.table.name"="t_hbase_stu_info"); 在Hbase中给t_hbase_stu_info插入数据 put 't_hbase_stu_info','1001','st1:name','zs' put 't_hbase_stu_info','1001','st1:age','23' put 't_hbase_stu_info','1001','st1:sex','man' put

java基础之----hbase

拜拜、爱过 提交于 2020-03-28 11:26:24
hbase体系架构和设计模型 上图过于简单,具体详细的架构图如下 zookeeper:作为分布式协调框架 HRegionServer:向master报告自己的健康状态和自己管理的region信息,管理region。同时把自己的健康状态和管理的region信息也会同步到zookeeper。具体作用如下: 维护master分配给他的region,处理对这些region的io请求 负责切分正在运行过程中变的过大的region Master:Hbase每时每刻只有一个hmaster主服务器程序在运行,hmaster将region分配给region服务器,协调region服务器的负载并维护集群的状态。Hmaster不会对外提供数据服务,而是由region服务器负责所有regions的读写请求及操作,具体作用如下: 为Region server分配region 负责Region server的负载均衡 发现失效的Region server并重新分配其上的region HDFS上的垃圾文件回收 处理schema更新请求 HDFS: storefile是存储在hdfs上的 具体说一下,首先整个hbase分布式集群只有一个master,多个HRegionServer,HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个 Region

hive连接hbase外部表,向hbase中insert数据时报错

 ̄綄美尐妖づ 提交于 2020-03-27 11:38:05
3 月,跳不动了?>>> 继上篇博客,hive连接hbase外部表成功后,可以正常的查询hbase的数据了。但是向hbase插入数据却报错了。 Error: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Put.setDurability(Lorg/apache/hadoop/hbase/client/Durability;)V at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:168) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged

HBase-1.2.1集群搭建

筅森魡賤 提交于 2020-03-27 11:36:13
3 月,跳不动了?>>> 1.hbase是一个分布式系统,需要依赖HDFS作为存储介质,并依靠zookeeper来完成监控主从节点上下线。 2.安装准备如下: 1.HBase角色 HMaster(主节点,一台Active,一台StandBy) HReginServer(数据节点,多台) 2.依赖 HDFS集群、zookeeper集群【启动】 3.上传安装包解压 tar -zxvf hbase-1.2.1.bin.tar.gz -C apps/ 4.进入conf目录修改配置文件如下 1.vi hbase-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_231 export HBASE_MANAGES_ZK=false #自己的zookeeper,不启动它内置的 2.vi hbase-site.xml <configuration> <!-- 指定hbase在HDFS上存储的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop01:9000/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true<

hbase 面试问题汇总

夙愿已清 提交于 2020-03-26 23:38:37
一、Hbase的六大特点: (1)、表大:一个表可以有数亿行,上百万列。 (2)、无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态增加,同一个表中的不同行的可以有截然不同的列。 (3)、面向列:HBase是面向列的的存储和权限控制,列族独立索引。 (4)、稀疏:空(null)列并不占用空间,表可以设计的非常稀疏。 (5)、数据类型单一:HBase中的数据都是字符串,没有类型。 (6)、数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳。 二、Hbase与Hive的对比: (1)、整体对比: (2)、Hive是一种构建在Hadoop基础设施之上的数据仓库,通过Hive可以使用HQL语言查询存放在HDFS上面的数据。HBase能够在它的数据库上面实时运行,HBase被分区为表格,表格有进一步分割为列簇,列族必须需要用schema定义。一个列簇可以包含很多列,每个key/value在HBase中都被定义成一个cell,每一个cell都有一个rowkey,一个columnFamily,一个value值,一个timestamp。rowkey不能为空且唯一。 (3)、Hive把HQL解析成MR程序,因为它是兼容JDBC,所有可以和很多JDBC程序做集成,它只能做离线查询,不能做实时查询,默认查询Hive是查询所有的数据

02 Hbase的命令行操作

孤人 提交于 2020-03-26 20:46:23
上一节我们安装了hbase,本文将展示如何通过命令行对Hbase进行操作。 1 系统、软件以及前提约束 在CentOS7当中已经安装Hbase并启动 https://www.jianshu.com/p/90d1713d55ce xshell客户端 注意:作者的CentOS7的ip是192.168.100.200,请读者根据实际情况设置。 2 操作 1.使用xshell连接CentOS7 2.进入hbase命令行 # 进入家目录 cd # 进入hbase的bin目录 cd hbase-1.2.6/bin # 进入hbase命令行 ./hbase shell 3.创建namespace create_namespace 'nn' 4.创建一张表 # t1指表名字,f1指列簇名,注意都要带单引号,不用分号结束 create 't1','f1' # 创建一张指定namespace的表 create 'nn:t2','f1' # 查看当前都有哪些表 list # 查看某个namespace下的表 list_namespace_tables 'nn' # 描述某个表 desc 't1' # 描述某个namespace下的某个表 desc 'nn:t1' 5.增删改查表中数据 # 增加1条记录, t1是表名,key1是这条记录名,f1:name是列簇下的name列,ali是这一列的值 put

05 Hive查询Hbase中的数据

…衆ロ難τιáo~ 提交于 2020-03-26 20:37:34
这一节我们将介绍Hive查询Hbase中数据的过程。 1、前提约束 已安装hadoop https://www.jianshu.com/p/b7ae3b51e559 假设笔者安装目录是 /root/hadoop-2.5.2 已安装hbase https://www.jianshu.com/p/90d1713d55ce 假设笔者安装目录是 /root/hbase-1.2.6 已安装hive https://www.jianshu.com/p/755944f01fab 假设笔者安装目录是 /root/apache-hive-0.14.0-bin 2、操作步骤 修改/root/apache-hive-0.14.0-bin/conf/hive-env.sh,增加以下内容: export HADOOP_HOME=/root/hadoop-2.5.2 export HBASE_HOME=/root/hbase-1.2.6 执行以下命令,在hbase中创建一张表,加入几条记录: cd /root/hbase-1.2.6/bin ./hbase shell # 注意,“hbase(main):006:0> ”是命令行前缀,t8是表名,f8是列簇名 hbase(main):006:0> create 't8','f8' hbase(main):006:0> put 't8','key1','f8

Hbase .log files

删除回忆录丶 提交于 2020-03-24 03:22:41
问题 My HBASE runs in pseudo-distributed mode and the version is hbase-0.98.5 . When I list the hbase files in HDFS I am not able to view the .logs folder,I had created few tables in HBASE .I am confused where is the WAL edits stored? Or is there any problem with my installation. I can see a WAL folder in the files listed.Is that the same as the.logs folder .Could anyone help? 回答1: from 0.96 the /hbase directory layout was changed /hbase/.logs is now /hbase/WAL /hbase/tableName is now /hbase/data

ambari集成impala

旧巷老猫 提交于 2020-03-24 02:29:33
1.查看hdp版本,可在ambari-agent节点上查看 VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'` 2.server节点上git克隆代码,其中下方$VERSION指的是上方的版本号 sudo git clone https://github.com/cas-bigdatalab/ambari-impala-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/IMPALA 如果出现SSL问题,可关闭SSL验证再执行 git config --global http.sslVerify false git config --global http.sslversion tlsv1 如果你没有安装git,可到 https://github.com/cas-bigdatalab/ambari-impala-service 地址上下载代码,放到目录/var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/IMPALA下 如果你的git安装有任何问题,参考文章后方附录git的安装升级配置 3