HBase安装phoenix实战shell操作
Hbase安装参考https://rumenz.com/rumenbiji/hadoop-hbase-install.html
由于我们安装的是 hbase-2.3.1-bin.tar.gz ,所以需要下载 phoenix5.0以上
下载列表:http://archive.apache.org/dist/phoenix/
下载链接:http://archive.apache.org/dist/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
我们下载phoenix-5.0.0-HBase-2.0-bin.tar.gz
>tar -xzvf phoenix-5.0.0-HBase-2.0-bin.tar.gz
>cd apache-phoenix-5.0.0-HBase-2.0-bin/
>cp phoenix-5.0.0-HBase-2.0-server.jar ../hbase-2.3.1/lib///然后重启hbase
>cd ../hbase-2.3.1/bin
>./stop-hbase.sh
>./start-hbase.sh//通过phoenix访问hbase
>apache-phoenix-5.0.0-HBase-2.0-bin/bin/sqlline.py 127.0.0.1:2818
如果长时间卡住或者报错,应该是hbase启动失败,导致phoenix链接不上Hbase
解决方案:查看hbase的日志
cat hbase-2.3.1/logs/hbase-root-regionserver-xxx.log
常见错误
java.lang.NoClassDefFoundError: org/apache/htrace/Sampler
原因:
官方下载的phoenix没有HTrace(phoenix从4.1.0版本开始就加入了收集每个请求的traces的功能,这可以让你看到每个重要的步骤(例如查询操作或者插入操作)。phoenix通过利用cloudera公司的HTrace库。),需要单独下载放到hbase-2.3.1/lib/下。
我下载了:htrace-core-3.1.0-incubating.jar
1.下载链接:https://repo1.maven.org/maven2/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar
2.拷贝htrace-core-3.1.0-incubating.jar到hbase-2.3.1/lib/目录
3.然后重启HBase即可
phoenix中shell操作
1.进入
>bin/sqlline.py 127.0.0.1:2181
2.退出(结尾不加分号)
>!quit
//或者
>!exit
3.查看所有的表
>!table
4.查看表结构和列出metadata信息
>!desc "test1"
>!dbinfo
前面命令前带!号的,后面都不需要加分号,下面所有的命令操作都需要加分号结尾。
4.创建表
- 4.1 如果表名和列族需要小写那么必须加上双引号,不加双引号就会变成大写
// namespace命名空间,提前在Hbase中创建好
create table "namespace:test1"("id" integer primary key,"col1"."name" varchar(30),"col2"."age" integer);
Phoenix中primary key和Hbase中RowKey的关系:在创建Phoenix table时,必须指定一个primary key,但是这个主键我们不一定要用到,我们用Phoenix创建table时,让Phoenix的主键自动的和Hbase的rowkey关联起来,可以使用如下的方法。
create table "namespace:test1"("pk" integer primary key,"col1"."name" varchar(30),"col2"."age" integer);
这样Phoenix的主键
pk
就自动的和Hbase的rowkey对应起来了
- 4.2不加引号创建出来的表明,列族和列都是大写
create table test1(pk integer primary key,col1.name varchar(30),col2.age integer);
表名和列族名区分大小写,加了双引号就必须用小写去查,否则查不到.列名不区分大小写,显示大写,依然可以用小写查到。
在创建table时,没有指定列族(family),只指定了列名qualifier(name,age),那么在使用Hbase shell插入数据时,要写成
put 'test1','1000','0:name','入门小站'
,否则Hbase会报错ERROR: Unknown column family! Valid column names: 0:*
5.删除表
drop table "test1";
6.修改表结构,添加属性
alter table. "test1" add sex varchar(10);
7.创建一条索引
create index "test1_index" on "test1"("col1"."name");
8.删除索引
drop "test1_index" on "test1";
9.向表中插入一条数据(字符串值只能用单引号括起来,双引号会出错,数字类型不用括起来)
upsert into "test1" values(1,'入门小站',20);
10.删除表中的数据(字符串值只能用单引号括起来,双引号会出错,数字类型不用括起来)
delete from "test1" where name='入门小站';
11.修改表中的数据(必须要带上主键id,值只能用单引号括起来,双引号会出错,数字类型不用括起来)
upsert into "test1"(id,age) values(1,30);
12.查询表中的数据(字符串值必须用单引号括起来,双引号会报错,数字类型不用括起来)
select * from "test1";
select * from "test1" where age=30;
select age,count(age) from "test2" where age>1 group by age;
HBase安装phoenix实战shell操作相关推荐
- HBase安装与命令行操作
2019独角兽企业重金招聘Python工程师标准>>> HBase简介 基于Hadoop的NoSql数据库,适合存储半结构化.非结构化的稀疏数据,提供增删改查能力.因为其底层是hdf ...
- HBase安装配置以及Java操作hbase
2019独角兽企业重金招聘Python工程师标准>>> Apache HBase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据 ...
- HBase、Phoenix
一.前言(整体聊聊hbase,hdfs,Phoenix) 一.从HDFS角度理解HBase写:1.HBase的数据存储在HDFS之上,HDFS不支持随机写.因此HBase做一系列优化.2.因为HDFS ...
- 【大数据存储技术】实验1 Hbase数据库的部署和操作
1.HBase数据库的部署与配置(伪分布) (1)安装Hbase 下载网址:Apache HBase – Apache HBase Downloads (Hadoop版本3.3.4,下载最新hbase ...
- HBase基础【HBase简介、HBase安装、HBase shell操作】
文章目录 一 HBase简介 1 HBase定义 2 HBase数据模型 (1) HBase逻辑结构 (2) HBase物理存储结构 (3)数据模型 a)Name Space b)Table c)Ro ...
- 2021年大数据HBase(十一):Apache Phoenix的视图操作
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Apache Phoenix的视图操作 一.应用场景 ...
- (SQuirreL SQL Client 客户端 )使用Apache Phoenix 实现 SQL 操作HBase
Apache Phoenix 相信大家并不陌生,它是HBase的SQL驱动,Phoenix 使得Hbase 支持通过JDBC的方式进行访问,并将你的SQL查询转换成Hbase的扫描和相应的动作. 兼容 ...
- Hbase入门到实战-连载六(Phoenix)
Phoenix简介 Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据.在 Phoenix 之前,如果你要访问 HBase,只能调用 ...
- hbase shell命令_HBASE的shell操作
前言 我们知道hbase其实是架构在hdfs上的一个分布式数据库,既然是数据库那么这篇文章就主要围绕着我们最熟悉的增删改查来做.当然了,其实hbase的shell操作在真实的企业中几乎不用,这个很简单 ...
最新文章
- c, c++函数名编译符号修饰符说明
- 給曾經的三年,寫點什么吧。-紀念華軟
- php enable all,php中的enable_dl配置如何有用?
- Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- boost::mpl模块实现lambda相关的测试程序
- SpringCloud入门 - 分布式事务【概念、常见框架选择 - tx-lcn】
- 用python画图代码意思_Python科学画图代码分享
- 【CCF】201803-1 跳一跳
- Mybatis的基本步骤
- 安装jdk和oracle要注意的知识点
- 电解槽行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- python调用msf_使用python操纵metasploit简单小记
- 谷歌地球下载及功能介绍
- 固态硬盘系统经常假死_电脑更换固态硬盘后仍然出现卡顿、假死问题如何解决...
- android 图片 灰色,Android实现制作灰色图片
- Robomongo查询总条数
- 【天光学术】体育论文:乒乓球少年运动员专项身体素质训练探究(节选)
- 计算机专业硬件面试题目,硬件工程师面试试题
- java 格林尼治生僻时间转换
- 什么是数据资产管理?5个角度帮你参透数据资产管理
热门文章
- [Java] 蓝桥杯ALGO-149 算法训练 5-2求指数
- 蓝桥杯 ADV-205 算法提高 拿糖果 java版
- 蓝桥杯 ADV-205算法提高 拿糖果(动态规划)
- linux 日志优化,Linux —— 日志管理和优化方式
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration的解决
- oracle分页查询过程的简单实现
- java实现deflate算法
- 绘制完成的cad图纸文件应使用哪一款看图软件进行查看?
- paper 134:结构张量structure tensor(二)
- OSChina 周二乱弹 ——有时醒来发现身边是不同的姑娘