国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HBase 開發(fā):使用Java操作HBase 第1關:創(chuàng)建表

這篇具有很好參考價值的文章主要介紹了HBase 開發(fā):使用Java操作HBase 第1關:創(chuàng)建表。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

為了完成本關任務,你需要掌握:1.如何使用Java連接HBase數(shù)據(jù)庫,2.如何使用Java代碼在HBase中創(chuàng)建表。

如何使用Java連接HBase數(shù)據(jù)庫

Java連接HBase需要兩個類:

  • HBaseConfiguration
  • ConnectionFactory

HBaseConfiguration

要連接HBase我們首先需要創(chuàng)建Configuration對象,這個對象我們需要通過HBaseConfigurationHBase配置)對象來進行創(chuàng)建,HBaseConfiguration看名字我們就能猜到它的用途:讀取指定路徑下hbase-site.xmlhbase-default.xml的配置信息

具體用法:

Configuration config = HBaseConfiguration.create(); //使用create()靜態(tài)方法就可以得到Configuration對象

ConnectionFactory

獲取到連接對象Connextion我們就算連接上了HBase了,怎么獲取呢?

通過ConnectionFactory(連接工廠)的方法我們就能獲取到Connection(連接對象)了。

具體用法:

Connection connection = ConnectionFactory.createConnection(config); //config為前文的配置對象

使用這兩個步驟就能完成連接HBase了。

注意:在1.0之前的版本HBase是使用HBaseAdminHTable等來操作HBase的,但是在1.0之后的版本中這些被棄用了,新的客戶端API更加干凈簡潔,本文使用的HBase2.1.1版本(18年10月發(fā)布)的,

創(chuàng)建表

要創(chuàng)建表我們需要首先創(chuàng)建一個Admin對象,然后讓它來創(chuàng)建一張表:

Admin admin = connection.getAdmin(); //使用連接對象獲取Admin對象
TableName tableName = TableName.valueOf("test");//定義表名
HTableDescriptor htd = new HTableDescriptor(tableName);//定義表對象
HColumnDescriptor hcd = new HColumnDescriptor("data");//定義列族對象
htd.addFamily(hcd); //添加
admin.createTable(htd);//創(chuàng)建表

HBase2.X創(chuàng)建表

上述創(chuàng)建表的方法是HBase1.X版本的方式,而在HBase2.X的版本中創(chuàng)建表使用了新的API,創(chuàng)建表關鍵代碼如下:

TableName tableName = TableName.valueOf("test");//定義表名
//TableDescriptor對象通過TableDescriptorBuilder構建;
TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);
ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();//構建列族對象
tableDescriptor.setColumnFamily(family);//設置列族
admin.createTable(tableDescriptor.build());//創(chuàng)建表

2.X版本中主要是HTableDescriptor對象被棄用,取而代之的是TableDescriptor對象,TableDescriptor對象通過TableDescriptorBuilder構建;

TableName tableName = TableName.valueOf("test");
TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);

然后添加列簇方法變更:

ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();//構建列族對象
tableDescriptor.setColumnFamily(family); //設置列族

最后由Admin對象進行創(chuàng)建表操作:

admin.createTable(tableDescriptor.build());

值得咱們注意的是,如果你的HBase環(huán)境是1.X的那么你只能使用第一種方式來創(chuàng)建表,如果是2.X的版本,那么兩種方式你都可以使用(本實訓使用的 HBase2.1.1版本,所以兩種都可用)。

編程要求

好了,到你啦,使用本關知識,在右側編輯器begin-end處補充代碼,請你編寫一個Java程序,在HBase中創(chuàng)建表dept,emp,列都為:data。

package step1;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;
/**
* HBase 1.0 version of ExampleClient that uses {@code Connection},
* {@code Admin} and {@code Table}.
*/
public class Task{
public void createTable()throws Exception{
/********* Begin *********/
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
try {
// Create table
Admin admin = connection.getAdmin();
try {
TableName tableName = TableName.valueOf("dept");
// 新 API 構建表
// TableDescriptor 對象通過 TableDescriptorBuilder 構建;
TableDescriptorBuilder tableDescriptor =
TableDescriptorBuilder.newBuilder(tableName);
ColumnFamilyDescriptor family =
ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();// 構建列族對象
tableDescriptor.setColumnFamily(family); // 設置列族
admin.createTable(tableDescriptor.build()); // 創(chuàng)建表


TableName emp = TableName.valueOf("emp");
// 新 API 構建表
// TableDescriptor 對象通過 TableDescriptorBuilder 構建;
TableDescriptorBuilder empDescriptor =
TableDescriptorBuilder.newBuilder(emp);
ColumnFamilyDescriptor empfamily =
ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();// 構建列族對象
empDescriptor.setColumnFamily(empfamily); // 設置列族
admin.createTable(empDescriptor.build()); // 創(chuàng)建表
} finally {
admin.close();
}
} finally {
connection.close();
}
/********* End *********/
}
}

測試說明

注意:

點擊測評之前,請先開啟Hadoopstart-dfs.sh)和HBasestart-hbase.sh),并且需要等待HBase初始化完成(20秒左右),否則無法在HBase中創(chuàng)建表。

怎么查看HBase初始化成功了呢?

輸入hadoop fs -ls /hbase有如下結果即可

如果啟動過程中出現(xiàn): datanode running as process 214. Stop it first.說明Hadoop的進程還沒有被殺死。

需要我們重新stop-dfs.shstop-hbase.sh,然后在重啟。

start-dfs.sh
start-hbase.sh
hadoop fs -ls /hbase

第1關:創(chuàng)建表,hbase,大數(shù)據(jù),Educoder,hbase,hadoop,大數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-813581.html

到了這里,關于HBase 開發(fā):使用Java操作HBase 第1關:創(chuàng)建表的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • HBase Java API 開發(fā):批量操作 第2關:批量刪除數(shù)據(jù)

    刪除單行數(shù)據(jù) 刪除一行數(shù)據(jù)很簡單,我們來看個示例: 這段代碼就可以刪除行鍵為 row1 的行。 刪除多行數(shù)據(jù) 如何刪除多行數(shù)據(jù)呢? 相信你已經猜到了,既然 get() 方法有重載方法,那應該 delete() 方法也有,確實: 這樣就可以刪除多行數(shù)據(jù)啦。 編程要求 還等啥,親自試一試

    2024年02月05日
    瀏覽(137)
  • 3、HBase的java API基本操作(創(chuàng)建、刪除表以及對數(shù)據(jù)的添加、刪除、查詢以及多條件查詢)

    1、hbase-2.1.0介紹及分布式集群部署、HA集群部署、驗證、硬件配置推薦 2、hbase-2.1.0 shell基本操作詳解 3、HBase的java API基本操作(創(chuàng)建、刪除表以及對數(shù)據(jù)的添加、刪除、查詢以及多條件查詢) 4、HBase使用(namespace、數(shù)據(jù)分區(qū)、rowkey設計、原生api訪問hbase) 5、Apache Phoenix(5.0.0-5.

    2024年02月08日
    瀏覽(30)
  • Hbase數(shù)據(jù)庫完全分布式搭建以及java中操作Hbase

    Hbase數(shù)據(jù)庫完全分布式搭建以及java中操作Hbase

    基礎的環(huán)境準備不在贅述,包括jdk安裝,防火墻關閉,網絡配置,環(huán)境變量的配置,各個節(jié)點之間進行免密等操作等。使用的版本2.0.5. 參考官方文檔 分布式的部署,都是在單節(jié)點服務的基礎配置好配置,直接分發(fā)到其他節(jié)點即可。 jdk路徑的配置,以及不適用內部自帶的zk. 配

    2024年02月03日
    瀏覽(29)
  • 在HBase中執(zhí)行查詢操作通常使用HBase Shell或編程語言API(如Java或Python)來執(zhí)行

    在HBase中執(zhí)行查詢操作通常使用HBase Shell或編程語言API(如Java或Python)來執(zhí)行

    在HBase中執(zhí)行查詢操作通常使用HBase Shell或編程語言API(如Java或Python)來執(zhí)行。以下是使用HBase Shell進行查詢的一些示例: 單行查詢:獲取指定行鍵的數(shù)據(jù)。 掃描表:按行范圍獲取表中的多個行的數(shù)據(jù)。 過濾器查詢:使用過濾器指定查詢條件來獲取數(shù)據(jù)。 列族查詢:獲取指

    2024年01月21日
    瀏覽(25)
  • Python使用多線程操作tif影像和HBase數(shù)據(jù)庫

    Python使用多線程操作tif影像和HBase數(shù)據(jù)庫

    本文介紹使用Python的多線程技術,提高happybase模塊和gdal模塊的效率,從tif格式的影像文件中讀取數(shù)據(jù),并將其存儲到HBase數(shù)據(jù)庫中。主要步驟包括: 準備工作:安裝Python環(huán)境,安裝happybase模塊和gdal模塊,安裝HBase數(shù)據(jù)庫,并準備tif影像文件。 讀取tif影像數(shù)據(jù):使用readTif函數(shù)

    2024年02月09日
    瀏覽(23)
  • 【Hbase】hbase的java api操作(3)

    【Hbase】hbase的java api操作(3)

    目錄 這篇文章的源碼比較多,需要的私信我 需求與數(shù)據(jù)集 準備工作 下載安裝maven 下載安裝idea 配置國內的maven鏡像庫 創(chuàng)建一個maven工程 修改pom文件,導入相關的依賴 復制Hadoop的配置文件core-site.xml和HBase的配置文件hbase-site.xml到resources目錄中 創(chuàng)建包結構 創(chuàng)建hbase連接類及管理

    2023年04月12日
    瀏覽(19)
  • 【報錯-大數(shù)據(jù)技術-Hbase & Ranger】hbase創(chuàng)建、刪除(表、命名空間)無權限問題,但是向表put、get、scan數(shù)據(jù)報錯

    1、問題描述 使用hbase shell執(zhí)行創(chuàng)建命名空間、創(chuàng)建表、插入數(shù)據(jù)、獲取數(shù)據(jù)、查看數(shù)據(jù)、刪除命名空間、刪除表等命令操作,發(fā)現(xiàn)可以創(chuàng)建命名空間、創(chuàng)建表、刪除命名空間、刪除表,但是插入數(shù)據(jù)、獲取數(shù)據(jù)、查看數(shù)據(jù)等操作卻報沒有權限的問題,但是我已在Ranger上賦予用

    2024年03月15日
    瀏覽(33)
  • 數(shù)據(jù)批量操作:如何在HBase中進行批量操作

    HBase是一個分布式、可擴展、高性能的列式存儲系統(tǒng),基于Google的Bigtable設計。它是Hadoop生態(tài)系統(tǒng)的一部分,可以與HDFS、MapReduce、ZooKeeper等其他組件集成。HBase適用于大規(guī)模數(shù)據(jù)存儲和實時數(shù)據(jù)訪問場景,如日志記錄、實時數(shù)據(jù)分析、實時數(shù)據(jù)流處理等。 在HBase中,數(shù)據(jù)以列族

    2024年04月23日
    瀏覽(26)
  • 《Hadoop核心技術》Hbase集群部署,創(chuàng)建表,刪除表,插入數(shù)據(jù),查詢數(shù)據(jù)

    《Hadoop核心技術》Hbase集群部署,創(chuàng)建表,刪除表,插入數(shù)據(jù),查詢數(shù)據(jù)

    額前言: ????????我是一名正在學習《Hadoop核心技術》的學生,今天跟大家分享一下在虛擬機上在Hadoop集群中用Hbase進行簡單的增刪查 可以進行隨機訪問的存取和檢索數(shù)據(jù)的存儲平臺 ????????HBase 是一個開源的、分布式的、版本化的 NoSQL 數(shù)據(jù)庫(也即非關系型數(shù)據(jù)庫

    2024年02月03日
    瀏覽(55)
  • HBase的數(shù)據(jù)批量操作與事務處理

    HBase是一個分布式、可擴展、高性能的列式存儲系統(tǒng),基于Google的Bigtable設計。它是Hadoop生態(tài)系統(tǒng)的一部分,可以與HDFS、MapReduce、ZooKeeper等組件集成。HBase具有高可用性、高可擴展性和高性能等特點,適用于大規(guī)模數(shù)據(jù)存儲和實時數(shù)據(jù)處理。 在大數(shù)據(jù)時代,數(shù)據(jù)的批量操作和

    2024年02月22日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包