【教程】【安装搭建】使用Phoenix连接伪分布式HBase(Win10+ECS+putty+FileZilla)

334 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

之前发现HBase虽然数据存储是快了,但是手动在命令行插入数据的时候需要一个个插入,有点累,然后就发现了Phoenix。Phoenix中文翻译为凤凰, 其最早是Salesforce的一个开源项目,后来成为Apache基金的顶级项目。本文是在【教程】【环境搭建】大数据伪分布式搭建Hadoop(Win10+ECS+putty+FileZilla)【教程】【环境搭建】大数据伪分布式搭建HBase(Win10+ECS+putty+FileZilla)这两篇博客的基础环境上继搭建的。

解压缩Phoenix安装文件

1.下载

这里选用的HBase的版本是4.10.0,因为之前我安装的是1.1.5的HBase。这是官网的下载界面,记得要和HBase版本对应。bin是二进制文件,解压可以直接用,src是源文件,需要自行编译。官网下载传送:phoenix.apache.org/download.ht… 我的版本:apache-phoenix-4.10.0-HBase-1.1-bin.tar.gz 在这里插入图片描述

2.解压缩

我下载的是bin文件,已经放入Downloads文件夹下。这里就直接解压了,最好还是自己换个文件夹保存。 (1)进入用户的下载目录

cd ~/Downloads

(2)解压到当前文件夹下

tar -zxvf apache-phoenix-4.14.0-HBase-1.2-bin.tar.gz

安装并启动Phoenix

1.拷贝jar到Hbase的lib目录下

(1)进入上面已经解压好的文件夹下

cd ~/Downloads/apache-phoenix-4.10.0-HBase-1.1-bin

(2)列出所有文件

ls

框内的文件就是我们需要拷贝的: 在这里插入图片描述

(3)拷贝文件到HBase的lib目录下

cp phoenix-4.10.0-HBase-1.1-server.jar /usr/local/hbase/lib

2.启动Hadoop(如果已经启动Hadoop请跳过此步骤)

(1)进入/usr/local/hadoop

cd /usr/local/hadoop

(2)启动Hadoop

./sbin/start-dfs.sh

(3)查看是否启动成功

jps

如果显示以下类似的进程信息,则表明启动成功:

992 Jps
647 DataNode
873 SecondaryNameNode
494 NameNode

3.启动HBase

(1)进入/usr/local/hbase

cd /usr/local/hbase

(2)启动HBase

./bin/start-hbase.sh

(3)查看是否启动成功

jps

如果显示一以下类似的进程信息,则表明启动成功:

2579 HMaster
2708 HRegionServer
647 DataNode
3016 Jps
873 SecondaryNameNode
494 NameNode
2510 HQuorumPeer

4.进入Phoenix控制台

(1)回到直接的解压目录

cd ~/Downloads/apache-phoenix-4.10.0-HBase-1.1-bin/

(2)进入控制台

./bin/sqlline.py

会显示以下信息: 在这里插入图片描述 基本安装就到这里了,下面是一些简单操作的演示。

简单操作演示

1.显示所有表

语句:

/hbase> !tables

输出:

+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMMUTABLE_ROWS  | SALT_BUCKETS  | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+

2.创建新表并显示

语句:

/hbase> !sql
. . . > create table test1 (mykey integer not null primary key, mycolumn varchar);

输出:

No rows affected (1.307 seconds)

2.插入数据

语句:

/hbase> upsert into test1 values (1,'Hello World!');

输出:

1 row affected (0.037 seconds)

这里可以看出通过Phoenix可以用SQL对一行多个值进行插入,加上二级索引比之前方便多了。

3.查询表

语句:

/hbase> select * from test1;

结果:

+--------+---------------+
| MYKEY  |   MYCOLUMN    |
+--------+---------------+
| 1      | Hello World!  |
+--------+---------------+
1 row selected (0.05 seconds)

4.删除记录

语句:

/hbase> delete from test1 where mykey = 1;

结果:

1 row affected (0.017 seconds)

查询表:

+--------+-----------+
| MYKEY  | MYCOLUMN  |
+--------+-----------+
+--------+-----------+
No rows selected (0.037 seconds)

5.退出

语句:

/hbase> ! quit

输出:

Closing: org.apache.phoenix.jdbc.PhoenixConnection

后记

作为NoSQL的HBase加上了二级索引的SQL,所以可以称为HSQL吗,总之尝试一下这些奇怪的东西也是挺有趣的。

参考文章

1.Hbase之使用Phoenix连接 2.浅谈Phoenix在HBase中的应用 3.Phoenix的shell简单操作