HBase实战(4):使用JAVA操作分布式集群HBASE

HBase实战(4):使用JAVA操作分布式集群HBASE

    Hbase开发测试程序在windows 10的IDEA中,Vmvare虚拟机部署Hadoop、hbase等集群,虚拟机操作系统linux。将通过windows本地IDEA连接虚拟机的Hbase系统,进行操作。

    1,更改C:\Windows\System32\drivers\etc 的HOSTS文件  

192.168.189.1 master
192.168.189.2 worker1
192.168.189.3 worker2
192.168.189.4 worker3
    
Microsoft Windows [版本 10.0.16299.371]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\Users\lenovo>ping master

正在 Ping master [192.168.189.1] 具有 32 字节的数据:
来自 192.168.189.1 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.1 的回复: 字节=32 时间<1ms TTL=64

192.168.189.1 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
Control-C
^C
C:\Users\lenovo>ping worker1

正在 Ping worker1 [192.168.189.2] 具有 32 字节的数据:
来自 192.168.189.2 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.2 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.2 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.2 的回复: 字节=32 时间<1ms TTL=64

192.168.189.2 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\lenovo>ping worker3

正在 Ping worker3 [192.168.189.4] 具有 32 字节的数据:
来自 192.168.189.4 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.4 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.4 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.189.4 的回复: 字节=32 时间<1ms TTL=64

192.168.189.4 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\lenovo>

2,新建maven项目,编写pom.xml文件。下载HBASE的依赖包。



    4.0.0

    noc_hbase_test
    noc_hbase_test
    1.0-SNAPSHOT

    
        2.11.8
        2.2.1
        2.8.2
        1.2.14
        9.2.5.v20141112
        2.17
        1.8
        1.2.0
    


    
        
            scala-tools.org
            Scala-Tools Maven2 Repository
            http://scala-tools.org/repo-releases
        
    

    
        
            scala-tools.org
            Scala-Tools Maven2 Repository
            http://scala-tools.org/repo-releases
        
    

    
        
        
        
        
            org.apache.hbase
            hbase-client
            ${hbase.version}
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        
        
            org.apache.hbase
            hbase-common
            ${hbase.version}
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        
        
            org.apache.hbase
            hbase-server
            ${hbase.version}
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        

        
        
            org.apache.hadoop
            hadoop-common
            2.6.0
        

        
            org.apache.hadoop
            hadoop-client
            2.6.0
        

        
        
            org.apache.hadoop
            hadoop-hdfs
            2.6.0
        


    

    
        
            
                maven-assembly-plugin
                
                    dist
                    true
                    
                        jar-with-dependencies
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            

            
                maven-compiler-plugin
                
                    1.7
                    1.7
                
            

            
                net.alchim31.maven
                scala-maven-plugin
                3.2.2
                
                    
                        scala-compile-first
                        process-resources
                        
                            compile
                        
                    
                
                
                    ${scala.version}
                    incremental
                    true
                    
                        -unchecked
                        -deprecation
                        -feature
                    
                    
                        -Xms1024m
                        -Xmx1024m
                    
                    
                        -source
                        ${java.version}
                        -target
                        ${java.version}
                        -Xlint:all,-serial,-path
                    
                
            

            
                org.antlr
                antlr4-maven-plugin
                4.3
                
                    
                        antlr
                        
                            antlr4
                        
                        none
                    
                
                
                    src/test/java
                    true
                    true
                
            
        
    

3.在IDEA项目下面放上linux环境配置hadoop和hbase配置文件,hbase-site.xml和hdfs-site.xml.

hbase-site.xml

  
     
          
            hbase.rootdir  
            hdfs://master:9000/hbase  
          
        
          
            hbase.cluster.distributed  
            true  
          
          
          
            hbase.zookeeper.quorum  
            192.168.189.1:2181,192.168.189.2:2181,192.168.189.3:2181  
          



	hbase.master.info.port
	60010



      

hdfs-site.xml
 
    
        dfs.replication
        3
    
    
        dfs.namenode.name.dir
        /usr/local/hadoop-2.6.0/tmp/dfs/name
    
    
        dfs.datanode.data.dir
         /usr/local/hadoop-2.6.0/tmp/dfs/data
    
HBASE测试代码:
package HbaseTest;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Admin;

import java.io.IOException;

public class HbaseMyTest {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;
    public static void main(String[] args) throws IOException {
     listTables();
    }

    public static void listTables() throws IOException {
        HbaseUtils.init();
        HTableDescriptor hTableDescriptors[] = admin.listTables();
        for (HTableDescriptor hTableDescriptor : hTableDescriptors) {
            System.out.println("IDEA本地程序查询Hbase的表名: "+hTableDescriptor.getNameAsString());
        }
        HbaseUtils.close();
    }

}
package HbaseTest;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;

public class HbaseUtils {
    public static void init() {
        HbaseMyTest.configuration = HBaseConfiguration.create();
        HbaseMyTest.configuration.set("hbase.zookeeper.property.clientPort", "2181");
        HbaseMyTest.configuration.set("hbase.zookeeper.quorum", "192.168.189.1,192.168.189.2,192.168.189.3");
        HbaseMyTest.configuration.set("hbase.master", "192.168.189.1:60000");

        try {
            HbaseMyTest.connection = ConnectionFactory.createConnection(HbaseMyTest.configuration);
            HbaseMyTest.admin = HbaseMyTest.connection.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

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

    }
}

运行结果为:

HBase实战(4):使用JAVA操作分布式集群HBASE_第1张图片





你可能感兴趣的:(AI,&,Big,Data案例实战课程)