HBase集群搭建记录 | 云计算[CentOS7] | Maven项目访问HBase

Posted PushyTao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase集群搭建记录 | 云计算[CentOS7] | Maven项目访问HBase相关的知识,希望对你有一定的参考价值。

本文目录

写在前面

本系列文章索引以及一些默认好的条件在 传送门

默认使用master节点并用root用户登录终端进行操作
默认在操作本篇博客时HBase已经配置完毕

step1 Maven的下载与配置

1. 下载解压

博主使用的是经典maven3.6.3版本,和学习Java EE的时候用的版本是相同的
要是有需要可以通过链接下载
博主下载的版本为:

下载后,我们将该文件放在/usr/local/maven/之下
若没有该目录,首先需要创建该目录:mkdir -p /usr/local/maven
将下载之后的文件拖到/usr/local/maven/之后,通过命令解压该文件:
tar -zxvf apache-maven-3.6.3-bin.tar.gz

2. 环境变量设置

然后就需要配置环境变量了:
vim /etc/profile
只需要加入:
根据自己实际版本添加,切勿盲目CV

MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
PATH=$PATH:$MAVEN_HOME/bin
export PATH MAVEN_HOME

然后source一下使其生效:
source /etc/profile

3. 查看安装

在我们输入mvn -version之后,我们查看是否能够正常显示我们下载安装的maven版本信息:

发现能够正常显示,配置maven 成功~

4. 设置阿里云镜像[加速jar包下载]

编辑maven的conf下的settings.xml文件:
cd /usr/local/maven/apache-maven-3.6.3/conf/
vim settings.xml
mirrors标签对内加入

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

加入以上的内容之后便会加速一些[ jar包/插件] 的下载

step2 Maven项目的创建

1.创建项目

我们在这一步将通过maven的相关命令行来创建maven项目,加入我们将该项目创建到该系统目前登陆用户的工作目录下,可以首先创建一个workspace放置源代码:
mkdir -p ~/workspace/source
然后切换到该目录下进行操作:
cd ~/workspace/source
然后可以通过命令创建项目:

mvn archetype:generate \\ 
-DgroupId=com.hello \\
-DartifactId=maven_hello \\
-DarchetypeArtifactId=maven-archetype-quickstart

上面的命令需要手动写入或者是一行一行cv进命令行终端
如果说首次安装,会下载一些jar
下载完成后,如下图:

在这个里,我们可以直接回车,回车后如下图:

如果不再修改,我们输入y,然后打回车,然后:

以上绿色的字体提示我们构建成功,然后查看当前目录下的内容,会发现多了一个文件夹:

正是与我们的命令行中的这一行是相同:

2. 编译项目

跳转到maven_hello之下:cd maven_hello
然后执行:mvn compile


提示我们已经构建成功了,再次查看该目录下的文件:

这就是编译后生成的target,进去一看的话,就会看到:

这里面放着编译好的字节码文件

3.测试项目

切换到项目根目录下之后,我们执行mvn test来测试maven项目:

会发现多了一个test-classes

4.打包项目

我们需要用到命令:mvn package
同样在项目根目录下执行,会看到:

提示生成了一个jar包,在target下:

5.安装项目

需要用到命令:mvn install
同样在项目根目录下执行:

给出的提示便是安装到的路径

step3. 使用eclipse打开maven项目并配置

我们需要在项目根目录下执行mvn clean进行项目的清理

上图提示正在删除target文件夹

然后给本地仓库加权限:
cd ~/.m2
chmod 777 repository
我们打开eclipse,依次点击:
window → \\to prefiences → \\to maven → \\to user settings

浏览选中我们设置的conf/settings.xml文件
然后点击Apply
然后选择:

在弹出的框中,选择我们安装Maven的路径:

然后点击finish完成操作并一路确认回去
就会在界面显示有我们安装的maven:

勾选之后点击apply and close
然后给App.java加权限:

step4. 项目访问HBase

在这里,我们将会在项目根目录之下添加HBase目录并加载jar包
创建HBase目录:

cp -a /usr/local/hbase ~/workspace/source/maven_hello/HBase/

打开项目:

打开刚才的项目之后,然后添加jar包:
依次点击

弹框中选择/root/workspace/source/maven_hello/Hbase/hbase/lib下所有jar包

然后配置项目:

cp -a ~/workspace/source/maven_hello/HBase/hbase/conf/hbase-site.xml ~/workspace/source/maven_hello/conf/

在Eclipse菜单中选择Project → \\to Properties → \\to java build path → \\to Libraries → \\to Add Class Folder,将刚刚增加的conf目录加入到Libraries中
然后给pom.xml添加权限和依赖:

chmod 777 ~/workspace/source/maven_hello/pom.xml


加入:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.25</version>
    <scope>compile</scope>
</dependency>

然后打开App.java,写入代码:
记得将里面的主机名等修改为自己的,切勿盲目CV

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.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.regionserver.BloomType;
import org.apache.hadoop.hbase.util.Bytes;


public class App 

	static Configuration conf=HBaseConfiguration.create();  
 	static Connection connection;
	public static void main( String[] args )
	      String tablename="hbase_tb";                 
	        try  
	        	App.getConnect();    
            App.createTable(tablename);   
            App.addData(tablename);
            	
	        catch (Exception e)  e.printStackTrace();        
	 
	public static void getConnect() throws IOException
	 
		conf.set("hbase.zookeeper.quorum", "master315");
		conf.set("hbase.zookeeper.property.clientPort", "2181");
		//conf.set("zookeeper.znode.parent", "/hbase");
		 try connection=ConnectionFactory.createConnection(conf);  
		catch(IOException e)     		 
	 
	//创建一张表,通过HBaseAdmin HTableDescriptor来创建  
	 public static void createTable(String tablename) throws Exception 
	   	 
		 TableName tableName= TableName.valueOf(tablename);
		 Admin admin = connection.getAdmin();  
	    	if (admin.tableExists(tableName)) 
		     admin.disableTable(tableName);
		     admin.deleteTable(tableName);
		     System.out.println(tablename + " table Exists, delete ......");  
		    
            @SuppressWarnings("deprecation")
            HTableDescriptor desc = new HTableDescriptor(tableName);  
            @SuppressWarnings("deprecation")
            HColumnDescriptor colDesc = new HColumnDescriptor("cf1");
            colDesc.setBloomFilterType(BloomType.ROWCOL);
            desc.addFamily(colDesc);  
            desc.addFamily(new HColumnDescriptor("cf2"));  
            admin.createTable(desc);     admin.close();
            System.out.println("create table success!");  
   
	  
	 public static void addData(String tablename) throws Exception   
		    HTable table = (HTable)connection.getTable( TableName.valueOf(tablename));
		    Put p1=new Put(Bytes.toBytes("row1")); //row key  
		    p1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("name"), Bytes.toBytes("Tom")); 
		    p1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("age"), Bytes.toBytes("12"));  
		    p1.addColumn(Bytes.toBytes("cf2"), Bytes.toBytes("math"), Bytes.toBytes("80")); 
		    p1.addColumn(Bytes.toBytes("cf2"), Bytes.toBytes("english"), Bytes.toBytes("90"));  
		    table.put(p1);
		    table.close();
	 
	 


记得将里面的主机名等修改为自己的,切勿盲目CV

记得打开hadoop,zookeeper,hbase

start-all.sh
zkServer.sh start
start-hbase.sh

点击运行,则会看到:

表创建成功~
进入HBase的shell,手动查询插入的信息:

显然数据插入成功~

eclipse使用maven项目访问HBase

《新程序员》:云原生和全面数字化实践 50位技术专家共同创作,文字、视频、音频交互阅读

以上是关于HBase集群搭建记录 | 云计算[CentOS7] | Maven项目访问HBase的主要内容,如果未能解决你的问题,请参考以下文章

云计算集群搭建记录[Hadoop|Zookeeper|Hbase|Spark | Docker]更新索引 |动态更新

Zookeeper集群搭建记录 | 云计算[CentOS7] | Zookeeper集群搭建

Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群

Spark集群搭建记录 | 云计算[CentOS7] | Scala Maven项目访问Spark实现单词计数

Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Java环境配置(Oracle JDK)

Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount