在CentOS上實現HBase的實時查詢,可以通過以下步驟來完成:
下載HBase:
wget https://archive.apache.org/dist/hbase/2.4.9/hbase-2.4.9-bin.tar.gz
解壓并移動到合適的位置:
tar -zxvf hbase-2.4.9-bin.tar.gz
mv hbase-2.4.9 /opt/hbase
配置環境變量:
編輯/etc/profile.d/hbase.sh文件,添加以下內容:
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
然后使配置生效:
source /etc/profile.d/hbase.sh
編輯hbase-site.xml:
在$HBASE_HOME/conf目錄下編輯hbase-site.xml文件,添加以下配置:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zookeeper1,zookeeper2,zookeeper3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property>
</configuration>
編輯core-site.xml:
在$HBASE_HOME/conf目錄下編輯core-site.xml文件,添加以下配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
</configuration>
編輯hdfs-site.xml:
在$HBASE_HOME/conf目錄下編輯hdfs-site.xml文件,添加以下配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
格式化HDFS(如果尚未格式化):
hdfs namenode -format
啟動HDFS:
start-dfs.sh
啟動Zookeeper:
$HBASE_HOME/bin/start-zookeeper.sh
啟動HBase Master:
$HBASE_HOME/bin/start-master.sh
啟動HBase RegionServer: 在其他節點上執行:
$HBASE_HOME/bin/start-regionserver.sh
創建表:
hbase shell
create 'my_table', 'cf1'
插入數據:
put 'my_table', 'row1', 'cf1:col1', 'value1'
打開HBase Shell:
hbase shell
掃描表:
scan 'my_table'
添加依賴: 在你的Java項目中添加HBase客戶端依賴:
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.4.9</version>
</dependency>
編寫Java代碼:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseRealTimeQuery {
public static void main(String[] args) throws Exception {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "zookeeper1,zookeeper2,zookeeper3");
config.set("hbase.zookeeper.property.clientPort", "2181");
try (Connection connection = ConnectionFactory.createConnection(config)) {
Table table = connection.getTable(TableName.valueOf("my_table"));
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
for (Result result : scanner) {
System.out.println(result);
}
}
}
}
通過以上步驟,你可以在CentOS上實現HBase的實時查詢。根據具體需求,你可以選擇使用HBase Shell或Java API進行查詢。