资源所限,只能先在本机上模拟hadoop集群。(见文章:
http://blackwing.iteye.com/admin/blogs/1502476)
开动之前,需要启动hadoop,并且创建好一个hbase目录:
hadoop fs -mkdir hbase
这样就能在hadoop中开辟一个hbase存放数据的地方。
可以通过命令
hadoop fs -ls /
查看到刚才创建的目录。
hbase的主要配置文件:
1. hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode.blackwing.com:8020/hbase/</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>namenode.blackwing.com</value>
</property>
</configuration>
其中的fs.default.name,指向hadoop的namenode所在uri。当然,后面的/hbase是我们希望在hdfs的哪个路径下保存数据。fs.default.name需要跟hadoop中的fs.default.name配置一样。也就是说这部分要一样:
hdfs://namenode.blackwing.com:8020/
zookeeper的集群列表:hbase.zookeeper.quorum,因为要对外,所以这里不能填localhost。
2. hbase和hadoop都配置好后,需要在程序中进行访问地址设置:
public InsertData(String tableName)
{
rowList = new ArrayList<Row>();
this.conf = HBaseConfiguration.create();
this.conf.set("hbase.zookeeper.quorum","192.168.128.140");
System.out.println("hbase.master = "+conf.get("hbase.master"));
System.out.println("hbase.zookeeper.quorum = "+conf.get("hbase.zookeeper.quorum"));
try {
this.table=new HTable(this.conf,tableName.getBytes());
} catch (IOException e) {
e.printStackTrace();
logger.info("errors occur while creating table : "+tableName);
}
}
其中的192.168.128.140,就是hbase中zookeeper的运行地址,因为zookeeper会根据.META.和ROOT得到hbase的所在等信息,所以只需设置hbase.zookeeper.quorum程序就能工作。
当然,也可以把hbase-site.xml拷贝到项目的src目录下,在HBaseConfiguration.create()的时候,程序会自动读取src下的hbase-site.xml。
3. 一些莫名其妙的小问题集合
1)windows能ping通虚拟机,但不能访问虚拟机hbase,或者打不开hbase的web界面。
原因:因为linux的防火墙缘故,暴力点的解决办法是chkconfig iptables off。而最好是修改/etc/sysconfig/iptables添加允许访问的规则。
2)jps时,发现少了某个(某些)进程,例如本应该有tasktracker好datanode进程的,却只有datanode。
先检查hadoop中slaves中是否正确列出主机名,一行一个。
我遇到这个问题,是因为hadoop的fs.default.name设置成了跟hbase的hbase.rootdir一样了,也就是:
hdfs://namenode.blackwing.com:8020/hbase/
正确来说,hadoop中的配置应该是这样的:
hdfs://namenode.blackwing.com:8020/
3)在windows下,eclipse后台输出显示连接不到namenode
原因:很大程度上是因为windows中没写host。解决办法是在:
C:\WINDOWS\system32\drivers\etc\hosts
中,添加vm中3台机器的ip及名称:
192.168.128.140 namenode.blackwing.com
192.168.128.136 jobtracker.blackwing.com
192.168.128.141 datanode.blackwing.com
PS:为了确定hbase的数据是否真的保存到hadoop中,可以通过:
hadoop fs -ls /hbase
查看到在通过hbase创建的表,都会在hadoop的hbase目录下生成对应文件夹。
分享到:
相关推荐
在Windows上安装HBase 本文将指导您如何在Windows平台上安装HBase,包括配置详解。安装完成后,您将能够配置集群。 一、前提条件 在安装HBase前,需要安装Cygwin和Hadoop。这两个软件的安装不在本文的讨论范围内...
在Windows系统中安装和配置Hadoop和Hbase,是为了建立起一个适合单机测试和开发的本地大数据环境。Hadoop是一个由Apache基金会开发的开源框架,用于存储和处理大规模数据,它通过可靠的分布式存储(HDFS)和分布式...
该资源主要用于在window10的Hadoop的bin文件下所需要的东西,主要用于使用window10中的eclipse访问当前的Linux的HBase,使用MapReduce的Job来实现复制HBase的表操作
通过以上步骤,用户可以在Linux或Windows环境下配置好Thrift和HBase的C++客户端,从而能够利用C++语言访问和操作HBase数据库。这个过程涉及到的技能包括Linux和Windows系统管理、编译工具的使用、C++编程以及对...
在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...
windows安装配置jdk+hadoop+hbase
Java访问Hbase数据库是大数据处理中的常见操作,尤其在分布式存储和实时数据分析场景下。HBase,一个基于Google Bigtable模型的开源非关系型数据库,是Apache Hadoop生态系统的一部分,提供高并发、低延迟的数据存储...
- 讲解了在MapReduce作业中如何访问其他HBase表,以及关于推测执行的相关内容。 8. HBase安全部分: - 阐述了HBase的安全机制,包括如何安全地访问HBase,以及HBase的访问控制机制。 - 提到了如何进行安全批量...
### 基于集群的HBase安装和配置 #### Zookeeper简介 Zookeeper作为Hadoop生态中的关键组件,主要用于...通过上述步骤,可以成功地在已有Hadoop集群的基础上搭建起HBase集群,实现大数据环境下的高效数据存储与管理。
解决hbase client在windows环境下报Could not initialize class org.fusesource.jansi.internal.Kernel32的问题,把jar包放入hbase client的lib包下,重新运行hbase.cmd shell即可
在实际应用中,Python 通过 Thrift 访问 HBase 可以提供高效的数据交换和存储。同时,HBase 的分布式架构也可以满足大规模数据存储和处理的需求。 知识点: 1. HBase 表结构:行键、列族、时间戳 2. Thrift 安装和...
在Java API中访问HBase是大数据处理中常见的一项任务,HBase作为一个分布式、列式存储的NoSQL数据库,常用于海量数据的实时读写。在这个Java API访问HBase的Maven项目中,我们将探讨如何配置项目,引入依赖,以及...
总之,`winutils-2.2.0.zip`是Windows环境下连接HBase集群的重要组件,正确配置和使用它能帮助开发者在本地进行HBase的开发和测试工作。确保理解上述步骤,并根据实际环境进行调整,将有助于你在Windows上顺利地与...
在 HBase 的部署环境中,ZooKeeper 起着非常重要的作用,它主要用于协调集群中的各个节点,并且管理 HBase 的元数据。通常情况下,HBase 可以与独立的 ZooKeeper 服务进行集成,但为了简化部署过程,特别是对于小型...
HBase 0.97 中文文档 HBase 0.97 中文文档 HBase 0.97 中文文档
Java访问HBase所需的Jar包是实现Java应用程序与HBase交互的关键。HBase作为一个基于Hadoop文件系统的分布式列式存储数据库,其设计目标是处理大规模的数据并提供亚秒级的访问速度。为了在Java环境中顺利地操作HBase...
HBase的分布式特性使其在大数据场景下表现出色,而Python作为一门强大的编程语言,其社区提供了丰富的库来与HBase进行交互。然而,有时候在尝试通过`from hbase import Hbase`导入HBase模块时,可能会遇到`...
在Windows环境下连接到HBase是一项常见任务,尤其对于那些在Windows操作系统上进行大数据处理和分析的用户来说。HBase是一个分布式的、面向列的开源数据库,它是Apache Hadoop生态系统的一部分,设计用来处理大规模...
本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要了解HBase的基本结构,它是由行(Row)、列族(Column Family)、列(Column)和时间戳(Timestamp)组成。在Java API中,我们主要通过...
这些配置确保了ZooKeeper和HBase能够正常运行,并且相互协作,为分布式环境下的数据管理和协调提供了强大的支持。在进行此类配置时,请确保所使用的软件版本与Hadoop版本兼容,以避免不必要的问题。