配置zookeeper
cd zookeeper-3.4.11/
conf/zoo.cfg
dataDir=/opt/package/data/zookeeper
# zookeeper
export ZOOKEEPER_HOME=/opt/package/zookeeper-3.4.11/
export PATH=$PATH:$ZOOKEEPER_HOME/bin
zkCli.sh -server vb-7:2181
hbase 安装。以hdfs 作为存储介质的singlemode.
版本1.30
参考;
https://hbase.apache.org/book.html#quickstart
rm bin/*.cmd
vi conf/hbase-env.sh
export JAVA_HOME=/usr/java/latest
vi conf/hbase-site.xml
hbase.rootdir
hdfs://vb-7:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
vb-7
hbase.zookeeper.property.clientPort
2181
start-hbase.sh
启动会报个警告。
注释掉conf/hbase-env.sh里一行即可。
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
hbase shell
建表:
create 'test','cf'
list 'test'
describe 'test'
put 'test','row1','cf:name',"hshe"
put 'test','row2','cf:name','hhse2'
put 'test','row3','cf:name','hhse3'
scan 'test'
get 'test','row1'
上面singlemode 的hbase完成。
hbase.cluster.distributed
true
这个配置分使用hbase 的master和regionserver分离进程。单机配置这个没有意义的。用于测试。
./bin/local-master-backup.sh start 2 3 5 启动从节点。。
cat /tmp/hbase-testuser-1-master.pid |xargs kill -9
完全分布式,是需要zookeeper支持。
使用外部zookeeper. conf/hbase-env.sh
export HBASE_MANAGES_ZK=false
安装 phoenix。
# phoenix
export PHOENIX_HOME=/opt/package/phoenix-4.13.0-HBase-1.3
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
cp phoenix-4.13.0-HBase-1.3-server.jar /opt/package/hbase-1.3.1/lib/
重启hase
进入phoenix
./bin/sqlline.py vb-7:2181
简单使用phoenix
http://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html
创建三个文件,存放数据或查询语句,表结构 (官网的)
us_population.csv
us_population_queries.sql
us_population.sql
执行查询:
phoenix-4.13.0-HBase-1.3/bin/psql.py vb-7:2181 us_population.sql us_population.csv us_population_queries.sql
官网有更详细的Mapping to an Existing HBase Table
http://phoenix.apache.org/
http://phoenix.apache.org/language/index.html#create
在 pnoenix中建表,同时也会在hbase中创建表的。
删表也会删除hbase中的表。视图不会删除hbase 中的表。
建表测试:
CREATE TABLE IF NOT EXISTS us_population (
state CHAR(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city));
在hbase中可以查看到已经建好的表。
建立与hbase的关联表。(注意表名的双引号,不加会自动变成大写,关联不上的。)
create table "test"(pk varchar primary key ,"cf"."name" varchar null);
建了表之后 ,不能再建视图。
Default column family not allowed on VIEW or shared INDEX. tableName=test
但是,可以这么做。
create 'test_view','cf'
put 'test_view','row1','cf:name',"hshe"
put 'test_view','row2','cf:name','hhse2'
put 'test_view','row3','cf:name','hhse3'
phoenix中创建视图:
这个报异常
CREATE VIEW "test_view"(pk VARCHAR primary key)default_column_family = 'cf'
创建视图成功。
create VIEW "test_view"(pk varchar primary key ,"cf"."name" varchar null);
在表之上创建视图。
create view "my_test_view" (name2 varchar) as select * from "test"
在视图之上建视图。
create view "my_test_view2" as select * from "my_test_view";
剩下就是jdbc操作了。
String driver = "org.apache.phoenix.jdbc.PhoenixDriver";
//String url = "jdbc:phoenix:192.168.206.21:2181";