当前位置:   article > 正文

Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix_cannot locate configuration: tried hadoop-metrics2

cannot locate configuration: tried hadoop-metrics2-hbase.properties,hadoop-m

声明

  • 本文基于 Centos6.x + CDH5.x

什么是Phoenix

Phoenix的团队用了一句话概括Phoenix:"We put the SQL back in NoSQL" 意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以用SQL语句来查询Hbase,你可能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询文本文件,Phoenix的特点就是,它只能查Hbase,别的类型都不支持!但是也因为这种专一的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!

安装Phoenix

之前的组件都是通过CDH来安装的,但是这回就跟Cloudera完全没关系了。从 Apache Phoenix Download 下载Phoenix包,不过这个镜像有点慢,我把包上传到CSDN了,下载地址见下面的版本对应 

Phoenix跟Hbase的版本对应

这里我用4.2.2,下载好后,解压开,把 phoenix-4.2.2-server.jar 拷贝到所有RegionServer的lib目录下   /usr/lib/hbase/lib
cp phoenix-4.2.2-server.jar /usr/lib/hbase/lib


然后重启所有regionserver
service hbase-regionserver restart


使用Phoenix

把 phoenix-4.2.2-bin.tar.gz 解压出来的 phoenix-4.2.2-bin 文件夹也上传到host1上,然后到bin目录下执行(其实在本机也可以,只是我本机没有Python环境而Centos天生有Python)
如果是windows下下载的,得先在centos上给bin文件夹里面的.py文件赋上执行权限
[root@host1 ~]# cd phoenix-4.2.2-bin/
[root@host1 phoenix-4.2.2-bin]# cd bin
[root@host1 bin]# chmod +x *.py

phoenix可以用4种方式调用
  • 批处理方式
  • 命令行方式
  • GUI方式
  • JDBC调用

批处理方式

我们建立sql 名叫 us_population.sql 内容是

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));

建立一个文件 us_population.csv

NY,New York,8143197
CA,Los Angeles,3844829
IL,Chicago,2842518
TX,Houston,2016582
PA,Philadelphia,1463281
AZ,Phoenix,1461575
TX,San Antonio,1256509
CA,San Diego,1255540
TX,Dallas,1213825
CA,San Jose,912332

再创建一个文件 us_population_queries.sql

SELECT state as "State",count(city) as "City Count",sum(population) as "Population Sum" FROM us_population GROUP BY state ORDER BY sum(population) DESC; 

然后一起执行

phoenix-4.2.2-bin/bin/psql.py host1,host2:2181 us_population.sql us_population.csv us_population_queries.sql

这边记得把 host1 和 host2 换成你的zookeeper地址 

这条命令你同时做了 创建一个表,插入数据,查询结果 三件事情

[root@host1 ~]# phoenix-4.2.2-bin/bin/psql.py host1,host2:2181 us_population.sql us_population.csv us_population_queries.sql
15/03/04 17:14:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/03/04 17:14:24 WARN impl.MetricsConfig: Cannot locate configuration: tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties
no rows upserted
Time: 0.726 sec(s)

csv columns from database.
CSV Upsert complete. 10 rows upserted
Time: 0.103 sec(s)

St                               City Count                           Population Sum 
-- ---------------------------------------- ---------------------------------------- 
NY                                        1                                  8143197 
CA                                        3                                  6012701 
TX                                        3                                  4486916 
IL                                        1                                  2842518 
PA                                        1                                  1463281 
AZ                                        1                                  1461575 
Time: 0.048 sec(s)

用hbase shell 看下会发现多出来一个 US_POPULATION 表,用scan 命令查看一下这个表的数据

hbase(main):002:0> scan 'US_POPULATION'
ROW                                              COLUMN+CELL                                                                                                                                   
 AZPhoenix                                       column=0:POPULATION, timestamp=1425460467206, value=\x80\x00\x00\x00\x00\x16MG                                                                
 AZPhoenix                                       column=0:_0, timestamp=1425460467206, value=                                                                                                  
 CALos Angeles                                   column=0:POPULATION, timestamp=1425460467206, value=\x80\x00\x00\x00\x00:\xAA\xDD                                                             
 CALos Angeles                                   column=0:_0, timestamp=1425460467206, value=                                          
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/776589
推荐阅读
相关标签
  

闽ICP备14008679号