Hbase - 之Phoenix-JDBC连接、命名空间映射
1、在客户端本地添加hbase-site.xml
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>shufang101:2181,shufang102:2181,shufang103:2181</value>
<description>外部zookeeper集群的ip:port
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.7.0/data</value>
<description>从外部zk的conf/zoo.cfg中配置的dataDir属性,快照存储在这个目录下面P
</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://shufang101:9000/hbase</value>
<description>这个目录被所有的RegionServer共享
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>完全分布式集群模式必须指定的
false: 通过内部的zk来设置单机模式和伪分布式模式
true: 通过外部的zk的来管理完全分布式集群模式
</description>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
</configuration>
2、添加Phoenix的核心依赖
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>5.0.0-HBase-2.0</version>
<exclusions>
<exclusion>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</exclusion>
</exclusions>
</dependency>
3、编写代码
Connection conn = null;
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
conn = DriverManager.getConnection(CommonConfig.PHOENIX_URL);
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(ddl.toString());
ps.execute();
System.out.println("执行SQL :【" + ddl + "】建表语句成功");
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
throw new RuntimeException("Phoenix 建表失败!~~~~~~");
}
}
}
|