hbase环境搭建并接入phoenix

1.下载hadoop-2.7.3,hbase-2.0.6,phoenix-5.0.0-hbase-2.0

下载地址 (下载速度很慢)

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

hbase       http://archive.apache.org/dist/hbase/2.0.6/hbase-2.0.6-bin.tar.gz

2.安装hadoop(站内搜索安装方式)

3.安装hbase

解压后修改配置文件 <hbase_home>/conf/hbase-env.sh   添加jdk依赖,设置是否使用单机的zookeeper

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_251
export HBASE_MANAGES_ZK=false

修改配置文件<hbase_home>/conf/hbase-site.xml    

<configuration>
        <property>
            <!--配置hdfs地址-->
            <name>hbase.rootdir</name>
            <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
            <!-- 指定 hbase 是分布式的,分布式才能使用外部的zookeeper -->
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <property>
            <!--设置zk地址-->
            <name>hbase.zookeeper.quorum</name>
            <value>bigdata01</value>
        </property>
        <property>
            <!--设置zookeeper端口-->
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value>
        </property>
        <property>
                <!--设置主节点访问端口-->
                <name>hbase.master.info.port</name>
                <value>60010</value>
        </property>
</configuration>

配置数据存储节点配置文件 <hbase_home>/conf/regionservers   

集群服务器ip1
集群服务器ip2
集群服务器ip3

将hbase根目录分别分发到所有数据节点中

scp -r <hbase_home> 集群服务器ip2:$PWD
scp -r <hbase_home> 集群服务器ip3:$PWD

启动 / 停止hbase

<hbase_home>/bin/start-hbase.sh
# 不用停止
<hbase_home>/bin/stop-hbase.sh

jps检查节点状态

主节点 HMaster
数据节点 HRegionServer

进入控制台

<hbaes_home>/bin/hbase shell

 

访问web管理页面  http://服务器集群ip1:60010

4.安装phoenix (phoenix依赖python2 ,如果安装了python3需要卸载)

将hbase的配置文件<hbase_home>/conf/hbase-site.xml、 <hadoop_home>/etc/hadoop下的core-site.xml 、hdfs-site.xml放到<phoenix_home>/bin/下,替换phoenix原来的配置文件。

<phoenix_home>/phoenix-5.0.0-HBase-2.0-server.jar<phoenix_home>/phoenix-core-5.0.0-HBase-2.0.jar拷贝到<hbase_home>/lib目录下

cp <phoenix_home>/phoenix-5.0.0-HBase-2.0-server.jar <hbase_home>/lib/
cp <phoenix_home>/phoenix-core-5.0.0-HBase-2.0.jar <hbase_home>/lib/

完成之后重启hbase

连接phoenix

<phoenix_home>/bi/sqlline.py zookeeper地址:2181

查看元数据

 !tables

退出

!exit

5.使用phoenix创建表并插入数进行查询 (主键表示rowkey)

create table tB_name(rowkey varchar not null primary key,f1 varchar,f2 varchar,f3 varchar);
upsert into tB_name values ('rowkey0001','a','b','c');
upsert into tB_name values ('rowkey0002','a2','b2','c2');

检查插入的结果 

select * from tB_name;

通过hbase检查插入的结果

# 登录控制台
<hbase_home>/bin/hbase shell
# 查看所有表列表
list
# 查看表数据
scan "TB_NAME"

6.使用java代码连接phoenix

pom依赖

        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>5.0.0-HBase-2.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.3</version>
        </dependency>

代码

import java.sql.*;
import java.util.ArrayList;
public class PhoneixClient {
    public static void main(String[] args) throws Exception {
        Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");//添加驱动
        Connection conn = DriverManager.getConnection("jdbc:phoenix:192.168.235.113:2181");
        Statement stat = conn.createStatement();
        String sql1="select * from  tB_name";
        ResultSet rs = stat.executeQuery(sql1);
        ResultSetMetaData metaData = rs.getMetaData();
        ArrayList<String> keys = new ArrayList<>(metaData.getColumnCount());//记录字段信息
        for (int i = 0; i < metaData.getColumnCount(); i++) {
            keys.add(metaData.getColumnName(i + 1));//获取字段从1开始
        }
         while (rs.next()) {
            for (String key : keys) {
                String value = rs.getString(key);
                System.out.print(key+":"+value+" ");
            }
            System.out.println();
        }
        stat.close();//回收资源
        rs.close();
        conn.close();
    }
}

运行结果(因为没有在resource目录下放入log4j日志配置文件,所以提示了警告信息,不影响结果)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小钻风巡山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值