赞
踩
本地电脑window10
IntelliJ IDEA Community Edition 2023.2.3
虚拟机集群Hadoop3.1.4:master/slave1/slave2/slave3
HBase2.2.2
一、在IDEA中创建工程
设置项目名和存储路径,选择Archetype
2.选择项目,创建目录结构。
项目名右击->new->directory(下图的前两个)
得到如下目录结构:
将core-site.xml和hbase-site.xml放入resources目录下
core-site.xml在虚拟机master节点下的/usr/local/hadoop-3.1.4/etc/hadoop/
hbase-site.xml在虚拟机master节点下的/opt/hbase-2.2.2/conf/
在项目中导入jar包(hadoop解压后的jar包和hbase解压后的jar包)
先将hadoop和hbase的压缩包解压到本地
file->project structure->libraries-> “+”
导入hadoop解压后(C:\hadoop-3.1.4\share\hadoop\client)路径下所有包
hbase解压后(C:\hbase-2.2.2\lib)路径下所有包
hbase解压后(C:\hbase-2.2.2\lib\client-facing-thirdparty)路径下所有包
导完之后的效果:
二、配置Windows系统环境变量
我的电脑右击属性->高级系统设置->环境变量
在系统变量中新建,添加HADOOP_HOME的变量名和对应的路径
在系统变量的Path变量中添加HADOOP_HOME变量
三、配置Windows系统hosts文件
查看虚拟机中/etc/hosts文件
将ip与主机名映射复制,粘贴到windows系统的hosts文件中,hosts文件路径为(C:\Windows\System32\drivers\etc),用记事本打开。
四、hadoop.dll文件导入
将hadoop.dll文件放入C:\Windows\System32\路径下。
五、启动HBase集群
master节点start-dfs.sh 和start-yarn.sh
slave1、slave2和slave3依次启动zookeeper:zkServer.sh start
master节点start-hbase.sh
master节点hbase shell进行hbase,输入list_namespace测试
六、在IDEA中编写程序,测试连接
在src\main\java下创建com.zx.hbase包,在包下创建HBaseTest文件。
将以下代码放入其中
- package com.zx.hbase;
- 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 HBaseTest {
- public static Configuration configuration; //管理HBase的配置信息
- public static Connection connection; //管理HBase的连接
- public static Admin admin; //管理HBase数据库表信息
- public static void main(String[] args)throws IOException{
- init();
- createTable("my_ns:teacher123",new String[]{"score","info"});
- close();
- }
- //建立连接
- public static void init(){
- configuration = HBaseConfiguration.create();
- configuration.set("hbase.rootdir","hdfs://master:8020/hbase");
- try{
- connection = ConnectionFactory.createConnection(configuration);
- admin = connection.getAdmin();
- }catch (IOException e){
- e.printStackTrace();
- }
- }
- // 关闭连接
- public static void close() {
- try {
- if (admin != null) {
- admin.close();
- }
- if (null != connection) {
- connection.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- //创建表
- 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());
- }
- }
- }
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。