最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Win10 IDEA遠(yuǎn)程連接HBase教程

 更新時(shí)間:2024年11月07日 14:48:39   作者:CY耶  
在Windows 10上,通過IDEA連接到虛擬機(jī)中的Hadoop和HBase需要關(guān)閉虛擬機(jī)防火墻,并修改相關(guān)配置文件中的IP地址,此外,創(chuàng)建Maven項(xiàng)目并添加依賴是必要步驟,最后,通過Java代碼和HBase Shell命令進(jìn)行操作,此過程涉及的技術(shù)包括虛擬機(jī)配置、防火墻管理、文件編輯和項(xiàng)目管理等

Win10 IDEA遠(yuǎn)程連接HBase

Win10 IDEA連接虛擬機(jī)中的Hadoop(HDFS)

關(guān)閉Hadoop和Hbase

如果已經(jīng)關(guān)閉不需要走這一步

cd /usr/local/hbase
bin/stop-hbase.sh
cd /usr/local/hadoop
./sbin/stop-dfs.sh

獲取虛擬機(jī)的ip

虛擬機(jī)終端輸入

ip a

關(guān)閉虛擬機(jī)防火墻

sudo ufw disable

修改Hadoop的core-site.xml文件

將IP修改成自己的IP

# 位置可能不一樣,和Hadoop安裝位置有關(guān)
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.111.135:9000</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
            <name>hadoop.proxyuser.hadoop.groups</name>
            <value>*</value>
    </property>
</configuration>

修改Hbase的hbase-site.xml

將IP修改成自己的IP

# 位置可能不一樣,和Hbase安裝位置有關(guān)
cd /usr/local/hbase
vim /usr/local/hbase/conf/hbase-site.xml
<configuration>
  <property>
                <name>hbase.rootdir</name>
                <value>hdfs://192.168.111.135:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </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>hbase.zookeeper.quorum</name>
        <value>192.168.111.135:2181</value>
    </property>
    <property>
		<name>hbase.master.ipc.address</name>
		<value>0.0.0.0</value>
	</property>
	<property>
		<name>hbase.regionserver.ipc.address</name>
		<value>0.0.0.0</value>
	</property>
</configuration>

打開Hadoop和Hbase

cd /usr/local/hadoop
./sbin/start-dfs.sh
cd /usr/local/hbase
bin/start-hbase.sh
jps

IDEA 連接

創(chuàng)建Maven項(xiàng)目

IDEA自帶Maven,如果需要自己安裝Maven可以參考安裝Maven

創(chuàng)建項(xiàng)目,選擇Maven,模板選擇第一個(gè)maven-archetype-archetype

添加依賴(pom.xml)

記得修改自己hbase的版本,我的是2.5.4

設(shè)置好后Reload一下

  <dependencies>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>2.5.4</version>
    </dependency>
  </dependencies>

創(chuàng)建Java文件并運(yùn)行

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import java.io.IOException;

public class Test01 {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void init(){
        System.setProperty("HADOOP_USER_NAME","hadoop");
        configuration  = HBaseConfiguration.create();
        // IP 需要修改
        configuration.set("hbase.zookeeper.quorum", "192.168.111.135");
        configuration.set("hbase.zookeeper.property.clientPort", "2181");
        // IP 需要修改
        configuration.set("hbase.rootdir","hdfs://192.168.111.135:9000/hbase");
        try{
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /*
    * 打印所有表名稱
    * */
    public static  void  tableListPrint() throws IOException {
        TableName[] tableNames = admin.listTableNames();
        for(TableName tableName : tableNames){
            System.out.println(tableName.getNameAsString());
        }
    }


    public static void close(){
        try{
            if(admin != null){admin.close();}
            if(null != connection){connection.close();}
        }catch (IOException e){
            e.printStackTrace();
        }
    }


    public static void main(String[] args) throws IOException {
        init();
        tableListPrint();
        close();
    }
}

其他

HBase Shell命令

# 進(jìn)入shell
bin/hbase shell
# 列出HBase中所有的表
list 
# 創(chuàng)建一個(gè)新表,表名為StudentInfo,包含兩個(gè)列族Personal和Grades。
create 'StudentInfo', 'Personal', 'Grades' 
# 向StudentInfo表中插入一條記錄,RowKey為2023001,Personal:Name列的值為張三,Grades:Math列的值為90。
put 'StudentInfo','2023001', 'Personal:Name','張三'
put 'StudentInfo','2023001', 'Grades:Math', 90
# 查詢RowKey為2023001的所有信息。
get 'StudentInfo','2023001'
# 修改2023001的Grades:Math列的值為95。
put 'StudentInfo', '2023001', 'Grades:Math', '95'
# 刪除2023001的Personal:Name列。
delete 'StudentInfo', '2023001', 'Personal:Name'
# 掃描StudentInfo表,查看所有記錄。
scan 'StudentInfo'

Java API

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;


public class Work01 {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void main(String[] args) throws IOException {
        init();
        // 刪除表 第一次運(yùn)行請(qǐng)注釋
//        deleteTable("EmployeeRecords");
        tableListPrint();
        createTable("EmployeeRecords",new String[]{"Info","Salary"});
        tableListPrint();
        insertData("EmployeeRecords","606","Info","Name","CY");
        insertData("EmployeeRecords","606","Info","Department","現(xiàn)代信息產(chǎn)業(yè)學(xué)院");
        insertData("EmployeeRecords","606","Info","Monthly","50000");
        getData("EmployeeRecords","606");
        updateData("EmployeeRecords","606","60000");
        getData("EmployeeRecords","606");
        deleteData("EmployeeRecords","606");
        close();
    }


    public static void init(){
        System.setProperty("HADOOP_USER_NAME","hadoop");
        configuration  = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum", "192.168.111.135");
        configuration.set("hbase.zookeeper.property.clientPort", "2181");
        configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");
        // 避免亂碼問題
        configuration.set("hbase.client.encoding.fallback", "UTF-8");
        try{
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /*
     * 打印所有表名稱
     * */
    public static  void  tableListPrint() throws IOException {
        TableName[] tableNames = admin.listTableNames();
        System.out.print("所有表:");
        for(TableName tableName : tableNames){
            System.out.print(tableName.getNameAsString() + "\t");
        }
        System.out.println();
    }

    public static void createTable(String myTableName,String[] colFamily) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        if(admin.tableExists(tableName)){
            System.out.println("talbe is exists!");
        }else {
            TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);
            for(String str:colFamily){
                ColumnFamilyDescriptor family =
                        ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(str)).build();
                tableDescriptor.setColumnFamily(family);
            }
            admin.createTable(tableDescriptor.build());
        }
    }

    public static void deleteTable(String myTableName) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        admin.disableTable(tableName);
        admin.deleteTable(tableName);
    }

    public static void insertData(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn(colFamily.getBytes(),col.getBytes(), val.getBytes());
        table.put(put);
        table.close();
    }

    public static void updateData(String tableName,String rowKey,String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn("Info".getBytes(),"Monthly".getBytes(), val.getBytes());
        table.put(put);
        table.close();
    }


    public static void getData(String tableName,String rowKey)throws  IOException{
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        Result result = table.get(get);
        Cell[] cells = result.rawCells();
        System.out.print("行鍵:"+rowKey);
        for (Cell cell : cells) {
            //獲取列名
            String colName = Bytes.toString(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength());
            String value = Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());
            System.out.print("\t"+colName+":"+value);
        }
        System.out.println();
        table.close();
    }

    public static void deleteData(String tableName,String rowKey)throws  IOException{
        Table table = connection.getTable(TableName.valueOf(tableName));
        Delete delete = new Delete(rowKey.getBytes());
        table.delete(delete);
        System.out.println("刪除成功");
    }

    public static void close(){
        try{
            if(admin != null){admin.close();}
            if(null != connection){connection.close();}
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)

    java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)

    這篇文章主要介紹了java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • java1.8安裝及環(huán)境變量配置教程

    java1.8安裝及環(huán)境變量配置教程

    這篇文章主要介紹了java1.8安裝及環(huán)境變量配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java使用POI-TL和JFreeChart動(dòng)態(tài)生成Word報(bào)告

    Java使用POI-TL和JFreeChart動(dòng)態(tài)生成Word報(bào)告

    本文介紹了使用POI-TL和JFreeChart生成包含動(dòng)態(tài)數(shù)據(jù)和圖表的Word報(bào)告的方法,并分享了實(shí)際開發(fā)中的踩坑經(jīng)驗(yàn),通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2025-02-02
  • Apache?log4j2-RCE?漏洞復(fù)現(xiàn)及修復(fù)建議(CVE-2021-44228)

    Apache?log4j2-RCE?漏洞復(fù)現(xiàn)及修復(fù)建議(CVE-2021-44228)

    Apache?Log4j2是一款Java日志框架,大量應(yīng)用于業(yè)務(wù)系統(tǒng)開發(fā)。2021年11月24日,阿里云安全團(tuán)隊(duì)向Apache官方報(bào)告了Apache?Log4j2遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2021-44228),本文給大家介紹Apache?log4j2-RCE?漏洞復(fù)現(xiàn)(CVE-2021-44228)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-12-12
  • 解決工具接口調(diào)用報(bào)錯(cuò):error:Unsupported Media Type問題

    解決工具接口調(diào)用報(bào)錯(cuò):error:Unsupported Media Type問題

    當(dāng)遇到"UnsupportedMediaType"錯(cuò)誤時(shí),意味著HTTP請(qǐng)求的Content-Type與服務(wù)器期望的不匹配,比如服務(wù)器期待接收J(rèn)SON格式數(shù)據(jù),而發(fā)送了純文本格式,常見的Content-Type類型包括text/html、application/json、multipart/form-data等
    2024-10-10
  • Java獲取文件路徑的幾種方式匯總

    Java獲取文件路徑的幾種方式匯總

    本文介紹了使用Java處理文件路徑的方法,包括使用java.io.File、java.nio.file.Paths類處理本地文件和類路徑資源,以及在Web應(yīng)用中獲取路徑的方法,它還提供了最佳實(shí)踐和注意事項(xiàng),如使用現(xiàn)代化的路徑處理方式和跨平臺(tái)兼容性,需要的朋友可以參考下
    2026-04-04
  • java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實(shí)現(xiàn)

    java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實(shí)現(xiàn)

    這篇文章主要介紹了java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JavaBean字段如何防止非空賦值

    JavaBean字段如何防止非空賦值

    這篇文章主要介紹了JavaBean字段如何防止非空賦值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java并發(fā)編程包JUC線程同步CyclicBarrier語(yǔ)法示例

    java并發(fā)編程包JUC線程同步CyclicBarrier語(yǔ)法示例

    這篇文章主要為大家介紹了java并發(fā)編程工具包JUC線程同步CyclicBarrier語(yǔ)法使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 詳解使用Spring Boot開發(fā)Web項(xiàng)目

    詳解使用Spring Boot開發(fā)Web項(xiàng)目

    這篇文章主要介紹了詳解使用Spring Boot開發(fā)Web項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04

最新評(píng)論

牟定县| 大同县| 镶黄旗| 西华县| 西充县| 福贡县| 衡水市| 峨边| 镇安县| 台中市| 牡丹江市| 德兴市| 孟村| 常州市| 济源市| 汶上县| 黑水县| 绥滨县| 喀喇| 搜索| 内黄县| 石柱| 台东市| 河西区| 青岛市| 清苑县| 岳普湖县| 岢岚县| 台湾省| 方城县| 清涧县| 兴化市| 保康县| 贵阳市| 九台市| 祁阳县| 锦屏县| 新营市| 视频| 马鞍山市| 宜城市|