PhoenixAPI 表操作和数据操作

Phoenix JavaAPI可以在java中使用sql对HBase进行操作 配置项目环境 下载master节点中phoenix安装目录下的两个包到本地项目/phoenix中 phoenix-5.0.0-HBase-2.0-client.jar phoenix-core-5.0.0-HBase-2.0.jar 将这两个文件添加进模块依赖中 尝试建表代码,注意: JRE版本建议为1.8 建表 建表语法为 create table tablename(column1,column2,column3),使用stmt.execute()执行 package demo; import java.sql.*; class PhoenixAPI { Connection conn = null; Statement stmt = null; PhoenixAPI() { try { Class.forName("org.apache.phoenix.jdbc.PhoenixDriver"); conn = DriverManager.getConnection("jdbc:phoenix:master:2181/hbase","",""); stmt = conn.createStatement(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } public void create(String tb) { // 注意:在Phoenix中,整数不能简写为int,而是要写为INTEGER String sql = "create table " + tb + " (id integer primary key, name varchar, age integer)"; try { stmt....

April 18, 2022 · 3 min · FIFCOM

Phoenix操作HBase

Phoenix可以使用标准SQL来操作HBase 安装前建议关闭HBase、Zookeeper、Hadoop服务 下载Phoenix 首先应下载Phoenix: Apache Phoenix ,下载apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz,并将其上传至master节点 安装Phoenix 解压到opt目录 tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C /opt/ cd /opt mv apache-phoenix-5.0.0-HBase-2.0-bin/ phoenix/ 复制phoenix目录下的两个jar文件到hbase/lib下 cd /opt/phoenix cp phoenix-5.0.0-HBase-2.0-client.jar /opt/hbase/lib/ cp phoenix-core-5.0.0-HBase-2.0.jar /opt/hbase/lib/ 并将其分发到所有子节点上 scp phoenix-5.0.0-HBase-2.0-client.jar slave1:/opt/hbase/lib/ scp phoenix-core-5.0.0-HBase-2.0.jar slave1:/opt/hbase/lib/ 配置Phoenix 将Hadoop的和HBase的配置文件复制到Phoenix/bin下 cp /opt/hadoop/etc/hadoop/core-site.xml /opt/phoenix/bin/ cp /opt/hadoop/etc/hadoop/hdfs-site.xml /opt/phoenix/bin/ cp /opt/hbase/conf/hbase-site.xml /opt/phoenix/bin/ 在master上配置环境变量 vi /etc/profile => # 最后添加 export PHOENIX_HOME=/opt/phoenix export PHOENIX_CLASSPATH=$PHOENIX_HOME export PATH=$PATH:$PHOENIX_HOME/bin <= # :wq source /etc/profile 设置脚本为可执行 cd /opt/phoenix/bin chmod +x psql.py chmod +x sqlline....

April 11, 2022 · 1 min · FIFCOM

HBase JavaAPI 数据操作

环境准备:在HBase shell中创建一个新表curd, 包含两个列族cfa和cfb: create 'curd', 'cfa', 'cfb' 为行键修改/添加列族和值 使用put操作进行添加或修改数据 package demo; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; class HBaseAPI { private final Connection conn; private final Admin admin; public HBaseAPI() throws IOException { Configuration conf = HBaseConfiguration.create(); conf.addResource("hbase-site.xml"); conn = ConnectionFactory.createConnection(conf); admin = conn.getAdmin(); } public void put(String tb, String row, String[][] cols) throws IOException { // 获取表的实例 Table table = conn....

April 9, 2022 · 3 min · FIFCOM

HBase JavaAPI 表操作

连接到HBase 创建配置对象并从本地载入配置文件 使用配置对象作为参数创建连接对象conn conn.getAdmin()返回管理HBase集群的Admin对象 此时已连接到HBase 可以调用Admin对象中的listTableNames()返回TableName[],包含HBase中的所有表 package demo; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { // load configuration and connect to HBase Configuration config = HBaseConfiguration.create(); config.addResource("/hbase-site.xml"); Connection conn = ConnectionFactory.createConnection(config); Admin admin = conn.getAdmin(); // print all tables for (TableName tableName : admin....

April 7, 2022 · 4 min · FIFCOM

HBase JavaAPI 配置

这里演示在Windows上运行示例 配置Hosts 在Windows的Hosts文件夹中加入集群的所有节点 1.1.1.1 master 2.2.2.2 slave1 配置Hadoop 复制已在集群上安装的Hadoop文件到本地。文件比较多,可以压缩后复制 从master上复制 # 压缩文件夹 cd /opt/ zip -r hadoop.zip /hadoop # 将/opt/hadoop.zip复制到本地 解压hadoop.zip到本地某目录,注意:目录中不能有空格 编辑hadoop\etc\hadoop\hadoop-env.cmd中的JAVA_HOME :: 首先在cmd里找到JAVA_HOME echo %JAVA_HOME% :: => D:\Program_Files\Semeru\jdk-17.0.1.12-openj9\ :: 编辑hadoop-env.cmd中的JAVA_HOME :: => JAVA_HOME=D:\Program_Files\Semeru\jdk-17.0.1.12-openj9\ 配置HADOOP环境变量 在系统变量中加入 HADOOP_HOME=hadoop_path_here HADOOP_USER_NAME=root 在path中加入 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin 将winutils复制进hadoop\bin中 测试hadoop version,正常则成功 创建测试数据 在hbase shell中: create 'scores','grade','course' put 'scores','1001','grade:','1' put 'scores','1001','course:art','80' put 'scores','1001','course:math','89' put 'scores','1002','grade:','2' put 'scores','1002','course:art','87' put 'scores','1002','course:math','57' put 'scores','1003','course:math','90' # 查看插入的数据 scan "scores" 创建工程 这里用到的IDE是eclipse...

April 5, 2022 · 2 min · FIFCOM

HBase常用命令

环境准备 安装并启动HBase 这里主要记录HBase shell的命令。进入HBase shell: hbase shell 帮助文档 使用help查看所有命令 help 可以使用help "create"来查看具体命令的帮助 命名空间 namespace指对一组表的逻辑分组,类似DBMS中的一个数据库,方便对表在业务上划分。 常用操作: 创建命名空间:create_namespace "test" 列出所有命名空间:list_namespace 可以看到3个namespace,其中hbase是系统内建的;用户建表时未指定命名空间的表都放在default里。 3. 查看描述:describe_namespace "test" 4. 列出命名空间下的所有表:list_namespace_tables "hbase" 可以看到内建的命名空间hbase中有两个表:meta和namespace 建表 不指定命名空间建表: # create '表名', '列名a', '列名b' create 'tb_a', 'col_a', 'col_b' 即在default命名空间下创建了表tb_a,包含列名col_a和col_b 指定命名空间建表: # create '命名空间:表名', '列名a', '列名b' create 'test:tb_b', 'col_a', 'col_b' 即在test命名空间下创建了表tb_b,包含列名col_a和col_b 查看所有表: list # ["tb_a", "test:tb_b"] 判断表是否存在: exists "tb_a" # => true exists "tb_c" # => false 插入数据 使用put命令插入数据...

April 4, 2022 · 1 min · FIFCOM

HBase安装

安装HBase 环境准备 首先应完成完全分布式安装Hadoop 并配置免密登录、上传Zookeeper、HBase安装包至master节点 配置Zookeeper 解压Zookeeper安装包 tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /opt 在解压目录创建data和log目录 cd /opt/apache-zookeeper-3.8.0-bin mkdir data log 编辑配置文件:复制conf目录下的样例文件,并修改dataDir(数据文件目录)和dataLogDir(日志文件目录) cd conf cp zoo_sample.cfg zoo.cfg vi zoo.cfg => dataDir=/opt/apache-zookeeper-3.8.0-bin/data dataLogDir=/opt/apache-zookeeper-3.8.0-bin/log 在data目录中新建myid文件,向里面写入1。这里的1表示是集群的第几台机器,slave节点则这里为2,3,4… cd ../data/ echo 1 >> myid 再次编辑zoo.cfg,添加主节点和从节点地址 cd /opt/apache-zookeeper-3.8.0-bin/conf/ vi zoo.cfg => # 底部添加 server.1=master:2888:3888 server.2=slave1:2888:3888 接着将Zookeeper安装文件分发到子节点 scp -r /opt/apache-zookeeper-3.8.0-bin/ slave1:/opt/ 修改子节点上的myid cd /opt/apache-zookeeper-3.8.0-bin/data/ echo 2 > myid # echo 3 > myid cat myid 启动Zookeeper 启动前需关闭防火墙,以及在master上启动Hadoop systemctl stop firewalld.service systemctl disable firewalld....

March 30, 2022 · 2 min · FIFCOM