一、源码分析
/**
* 设定Hbase指定Configuration;在默认情况是删除当前配置管理的连接信息
* 有参数deleteConnection 控制
*/
public class HbaseConfigurationFactoryBean implements InitializingBean, DisposableBean, FactoryBean<Configuration> {
private static final Log log = LogFactory.getLog(HbaseConfigurationFactoryBean.class);
// 是否删除当前配置相关的连接信息
private boolean deleteConnection = true;
// hbase配置
private Configuration configuration;
// hadoop配置
private Configuration hadoopConfig;
// hbase默认属性参数配置信息
private Properties properties;
// 连接zookeeper的连接数
private String quorum;
// 端口
private Integer port;
/**
* Indicates whether the potential connection created by this config is destroyed at shutdown (default).
* Configuration被清除时,与之关联的Connection信息也要删除
* @param deleteConnection The deleteConnection to set.
*/
public void setDeleteConnection(boolean deleteConnection) {
this.deleteConnection = deleteConnection;
}
/**
* Indicates whether, when/if the associated connection is destroyed, whether the proxy is stopped or not.
* 目前该方法已不再使用
* @param stopProxy The stopProxy to set.
*/
public void setStopProxy(boolean stopProxy) {
log.warn("Use of 'stopProxy' has been deprecated");
}
/**
* Sets the Hadoop configuration to use.
* 设置Hadoop Config
* @param configuration The configuration to set.
*/
public void setConfiguration(Configuration configuration) {
this.hadoopConfig = configuration;
}
// 销毁连接信息
@SuppressWarnings("deprecation")
public void destroy() {
if (deleteConnection) {
HConnectionManager.deleteConnection(getObject());
}
}
/**
* 设置Configuration的属性参数.
*
* @param properties The properties to set.
*/
public void setProperties(Properties properties) {
this.properties = properties;
}
// 属性设置
// 根据hadoopConfig参数内容是否为空 决定是否使用
// hadoop Configuration 构建 Hbase Configuration
// quorum 连接数替换默认zookeeper connection
// port 设定zookeeper port
public void afterPropertiesSet() {
configuration = (hadoopConfig != null ? HBaseConfiguration.create(hadoopConfig) : HBaseConfiguration.create());
ConfigurationUtils.addProperties(configuration, properties);
// set host and port last to override any other properties
if (StringUtils.hasText(quorum)) {
configuration.set(HConstants.ZOOKEEPER_QUORUM, quorum.trim());
}
if (port != null) {
configuration.set(HConstants.ZOOKEEPER_CLIENT_PORT, port.toString());
}
}
// 返回hbase configuration
public Configuration getObject() {
return configuration;
}
public Class<? extends Configuration> getObjectType() {
return (configuration != null ? configuration.getClass() : Configuration.class);
}
public boolean isSingleton() {
return true;
}
/**
* Sets the HBase Zookeeper Quorum host(s). If not specified, the default value (picked the the classpath) is used.
*
* @param quorum HBase ZK quorum hosts.
*/
public void setZkQuorum(String quorum) {
this.quorum = quorum;
}
/**
* Sets the HBase Zookeeper port for clients to connect to. If not specified, the default value (picked from the classpath) is used.
*
* @param port HBase ZK client port.
*/
public void setZkPort(Integer port) {
this.port = port;
}
}
该类主要是设定hbase configuration factory的;同时该类在默认情况下是清除当前Configuration所关联的Connection
分享到:
相关推荐
Java操作hbase完成hbase数据文件下载
Spring Boot Starter Hbase 是一个专为简化HBase操作而设计的框架组件,它与Spring Boot紧密结合,提供了在Java应用程序中轻松集成和操作HBase数据库的能力。这个压缩包"spring-boot-starter-hbase.zip"包含了所有...
2. **数据访问接口**:Spring Data Hadoop定义了一系列的Repository接口,如`HadoopRepository`,使得开发者可以通过声明式的方式操作Hadoop数据。这些接口的实现通常基于Hadoop的API,如`FileSystem`和`JobConf`,...
Spring Data Hadoop是Spring框架的一部分,它为开发人员提供了一种简单的方式来使用Hadoop生态系统的组件,如HDFS、MapReduce和HBase等。在1.0.1.RELEASE这个版本中,它继续致力于简化Hadoop编程模型,让Java开发者...
phoenix +hbase+spring 整合技术 phoenix +hbase+spring 整合技术 phoenix +hbase+spring 整合技术 根据需要 下载 集成的jar phoenix-core-4.13.0-HBase-0.98.jar
Spring-Boot-HBase-RESTful Spring-Boot-HBase-RESTful ##安装 brew install hadoop hbase zookeeper## HBase入门 start-hbase.sh start sudo /usr/local/Cellar/zookeeper/3.4.8/bin/zkServer start参考示例代码: ...
Spring Data Hadoop官方文档涉及了多个关于如何使用Spring Data Hadoop框架及其与Hadoop生态系统的集成的相关知识点。以下为文档中提到的主要知识点: 1. **Hadoop基本配置、MapReduce和分布式缓存**: - Spring ...
首先,hbase-client-2.2.4.jar是HBase客户端的核心库,它提供了与HBase服务器交互的API,包括数据的读写、扫描、行键操作等。这个版本的HBase客户端已经对HBase 2.2.4进行了优化,确保了与服务端的兼容性和性能。 ...
在Spring 3.0版本之后,Spring Data Hadoop开始被引入,为开发者提供了一套声明式的编程模型,用于处理Hadoop的MapReduce任务、HDFS操作以及HBase等组件的集成。 在集成Spring 3和Hadoop 0.2.0时,首先需要确保安装...
- **使用DAO**:Spring for Apache Hadoop提供了对HBase的数据访问对象支持,简化了与HBase的交互。 ```java public interface HBaseDao extends HBaseOperations { // 定义HBase操作方法 } ``` #### 六、与Hive...
这是一个基于Java技术栈,利用SpringMVC、Spring、HBase和Maven构建的Hadoop分布式云盘系统的项目。该项目旨在实现一个高效的、可扩展的云存储解决方案,利用Hadoop的分布式特性来处理大规模数据存储需求。 首先,...
Spring Hadoop 提供了一系列工具和 API 来与 HBase 集成,这使得开发者可以更容易地访问 HBase 数据。 #### 五、Hive 集成 ##### 5.1 启动 Hive Server Hive 是一个基于 Hadoop 的数据仓库工具,可以使用 SQL 查询...
* hbase-client:提供了HBase的客户端依赖项,版本号为1.1.2。 * spring-data-hadoop:提供了Hadoop的依赖项,版本号为2.5.0.RELEASE。 知识点3:HBase的配置 HBase的配置可以通过XML文件或注解方式进行。下面是一...
Spring for Apache Hadoop 提供了 Spring 框架用于创建和运行 Hadoop MapReduce、Hive 和 Pig 作业的功能,包括 HDFS 和 HBase。如果你需要简单的基于 Hadoop 进行作业调度,你可添加 Spring for Apache Hadoop 命名...
Hadoop 2.5.2是在Hadoop 2.x系列中的一个稳定版本,它引入了许多重要的改进和优化,以提高性能、可靠性和易用性。 Hadoop主要由两个关键组件构成:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一种...
安装步骤包括解压HBase的tar.gz文件,配置`hbase-site.xml`以指向Hadoop的配置,然后启动HBase的各种进程(RegionServer、Master等)。通过HBase shell或者Java API,我们可以测试插入和查询数据,验证HBase的功能。...
<artifactId>hbase-client <version>2.x.x <groupId>org.apache.hbase <artifactId>hbase-protocol <version>2.x.x <groupId>org.apache.hbase <artifactId>hbase-common <version>2.x.x ``` ...
Spring 是一个强大的 Java 应用框架,提供了丰富的依赖注入、AOP(面向切面编程)和模块化功能,而 HBase 是基于 Hadoop 的分布式列式数据库,适用于实时读写和大规模数据存储。下面我们将详细探讨如何将 Spring 与 ...
在构建分布式网盘系统时,通常会涉及到多个技术栈,如大数据处理框架Hadoop、分布式数据库HBase以及微服务开发框架Spring Boot。本项目“基于hadoop+hbase+springboot实现分布式网盘系统”旨在利用这些技术搭建一个...