hbase学习记录
参考http://abloz.com/hbase/book.html#d613e75
Step 1:修改conf/hbase-site.xml
(单机版)
<property>
<name>hbase.rootdir</name>
<value>/usr/local/product/hbase-0.90.5/hbasedata</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/product/hbase-0.90.5/zookeeperdata</value>
</property>
(集群版)
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Qmadou-test1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>192.168.3.190:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.3.191,192.168.3.192,192.168.3.193</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
Hbase Caused by: java.net.BindException: Cannot assign requested address
解决【
获得本机ip
获取hostname
ifconfig
写入hosts文件
sudo vi /etc/hosts
192.168.1.100 hostname】
192.168.3.20-23 测试机
root/rootroot
192.168.3.190-193 root/datou@603
Step 2: 修改hosts文件
vi /etc/hosts:
192.168.3.190 Qmadou-test1
192.168.3.191 Qmadou-test2
192.168.3.192 Qmadou-test3
192.168.3.193 Qmadou-test4
Step 3 设置环境变量
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk
export HADOOP_HOME=/usr/local/product/hadoop-1.0.4
step 4 安装hdfs
cp /usr/local/product/hadoop-1.0.4/src/hdfs/hdfs-default.xml hdfs-site.xml
dfs.name.dir /data/dfs/name
dfs.data.dir /data/dfs/data
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Qmadou-test1:9001</value>
</property>
</configuration>
scp -r /usr/local/product/hadoop-1.0.4 Qmadou-test2:/usr/local/product/hadoop-1.0.4
step 5 建立ssh互信
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp -P22 authorized_keys Qmadou-test2:~/.ssh/
scp -P22 authorized_keys Qmadou-test3:~/.ssh/
scp -P22 authorized_keys Qmadou-test4:~/.ssh/
ssh -v -p 22 Qmadou-test4
http://192.168.3.190:60010看到主界面
http://192.168.3.190:50070/dfshealth.jsp
http://www.cnblogs.com/ventlam/archive/2011/01/22/HBaseCluster.html
hbase.regionserver.handler.count 30
hfile.block.cache.size 0.5
<property>
<name>hbase.regionserver.handler.count</name>
<value>30</value>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.5</value>
</property>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Qmadou-test1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>192.168.3.190:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.3.191,192.168.3.192,192.168.3.193</value>
</property>
</configuration>
cp $HADOOP_HOME/hadoop-core-1.0.4.jar .
conf/hdfs-site.xml里面的xceivers参数,至少要有4096:
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
conf/hbase-env.sh
运行ntp
service ntpd start/stop/restart
chkconfig ntpd on
查看ntp的端口,应该看到123端口
netstat -unlnp
查看ntp服务器有无和上层连通
[root@S5 ~]# ntpstat
复制两个jar包,hadoop-core.jar和
cp /usr/local/product/hadoop-1.0.4/lib/commons-configuration-1.6.jar /usr/local/product/hbase-0.90.5/lib
<property>
<name>zookeeper.session.timeout</name>
<value>180000</value>
</property>
<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
</property>
http://leongfans.iteye.com/blog/1071584
执行
./hbase org.jruby.Main add_table.rb /hbase/TableName
bin/hbase org.jruby.Main add_table.rb /hbase/uid_word_t5
重启HBase以后,发现加载的Region数量已经和实际的Region数量一致了
hbase运行一段时间后hregionserver异常 退出的情形:
报错日志为:
org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on
hadoop datanode报错日志为:
java.io.IOException: xceiverCount 4097 exceeds the limit of concurrent xcievers 4096
解决办法为:
解决办法,调整xcievers参数
默认是4096,改为8192
vi /home/dwhftp/opt/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.datanode.max.xcievers</name>
<value>8192</value>
</property>
参考:
http://bkeep.blog.163.com/blog/static/123414290201272644422987/
hbase数据迁移导致报名显示不出来:
生产上,将hdfs文件系统迁移到另外一个机房的机器上,执行hdfs数据恢复后,发现hbase表没有加载上,是由于环境变了,hbase在hdfs上仍然保存这原来regionserver的信息,修复办法:
进入hbase管理页面,执行compact按钮
http://192.168.8.105:60010/table.jsp?name=-ROOT-
hbase master自动退出问题:
问题描述
在使用HFileOutputFormat.configureIncrementalLoad()时,MapReduce的job跑的时间在20分钟左右,经常发现Master自动退出,日志的部分信息后面贴上。日志显示的主要问题是zookeeper(简称ZK)会话过期,然后接着一堆的KeeperException异常。最终Master自己退出,regionserver和ZK还继续运行。
解决尝试过程
给hbase的邮件组发了邮件,描述了问题,很快得到了Stack的回答,Stack也确认了这个是ZK超时引起的Master故障。主要是两个方面可能引起超时,一是ZK节点上有MapReduce任务在跑,几乎占据了所有的IO(磁盘IO和网络IO);二是Java GC运行占据了大多数资源。
的确,我的集群的ZK节点上同时是TaskTracker和DataNode,跑Job时会占据大量IO,但是GC的占据不大。试着将ZK节点和TaskTracker节点分开,然后将zookeeper.session.timeout时间设置更大一些,不过原先我的设置就比较大了,已经是300000毫秒了,现在设置为600000毫秒。
设置后继续尝试批量导入,跑了10几个批量导入的job没发现报告超时异常。也算用一种不优雅的方式暂时解决了这个问题。(参考:http://xygan.iteye.com/blog/1111542)
分享到:
相关推荐
【标题】"Hadoop之HBase学习笔记"主要聚焦于Hadoop生态中的分布式数据库HBase。HBase是一个基于Google Bigtable理念设计的开源NoSQL数据库,它运行在Hadoop之上,提供高性能、高可靠性以及可水平扩展的数据存储能力...
同时,掌握HBase的安装、配置和基本操作,如创建表、插入数据、查询数据等,是学习HBase的基础。 【HBase与其他技术的集成】 HBase可以与Apache Spark集成,用于实时数据处理和分析。Phoenix是SQL查询引擎,允许...
HBase 是一种非关系型数据库,也被称为NoSQL数据库,主要设计用于处理大规模的数据存储。它的核心特性包括列族存储、分布式存储、实时读写、水平扩展和强一致性。HBase构建于Apache Hadoop之上,利用HDFS作为其底层...
Hbase为Hadoop生态的存储引擎,为大数据系统提供了在线存储能力,为海量数据存储提供了很好的支撑。hbase系统架构也非常值得学习和借鉴,值得学习研究。
**HBase学习总结** HBase,全称是Apache HBase,是一个分布式的、面向列的开源数据库,它是基于Google的Bigtable模型构建的,专为处理海量数据而设计。HBase是Apache Hadoop生态系统的一部分,它运行在Hadoop分布式...
自己在大数据培训班学习整理的笔记,比较详细,适合新手学习,我感觉还是挺有帮助的,希望可以帮助到你
Hadoop与HBase学习笔记 本文档记录了Hadoop和HBase的学习过程,包括Hadoop的安装、HBase的安装和在Eclipse下开发HBase的实践过程。这些记录旨在为初学者提供指导和帮助。 1. Hadoop安装 Hadoop的安装需要先安装...
通过深入学习HBase,你可以掌握如何在大数据环境中构建高性能的实时数据存储系统。记住,理论知识与实践相结合是掌握HBase的关键,通过实际操作和项目经验,你会对HBase有更深入的理解。提供的“hbase 培训”资料...
【HBase完整学习笔记】 HBase是一款开源的分布式NoSQL数据库,主要设计用于处理海量结构化数据,尤其适合大数据分析场景。它与传统的关系型数据库(如Oracle、MySQL)不同,采用列式存储方式,这使得HBase在压缩...
### HBase自学笔记知识点梳理 #### 一、HBase简介 **HBase** 是一个建立在 **Hadoop** 之上的非关系型数据库系统。...通过这些知识点的学习,可以帮助我们更好地理解和掌握HBase的核心技术和应用场景。
【标题】:“hadoop,hive,hbase学习资料”是一份综合性的学习资源,涵盖了大数据处理领域中的三个核心组件——Hadoop、Hive和Hbase。这些工具在大数据处理和分析中发挥着至关重要的作用。 【描述】:描述指出这份...
IT十八掌大数据第三期配套课堂笔记! 1 、HBase的特点 2 、HBase访问接口 3 、HBase存储结构与格式 4 、HBase设计 5 、关键算法和流程 6 、HBase安装 7、HBase的Shell操作 8、HBase客户端
【HBase 学习】 HBase 是一个分布式、列式存储的开源数据库,基于 Google BigTable 的设计理念,专为处理大规模结构化和半结构化数据而设计。它运行在 HDFS(Hadoop 分布式文件系统)之上,提供高可靠性和高性能的...
标题“自己学习HBase”表明本文是一份自学HBase(一个开源的非关系型分布式数据库)的开发文档。HBase是建立在Hadoop之上的,使用Google BigTable的数据模型,它是Apache Software Foundation的Hadoop项目的一部分,...
### HBase 学习知识点详解 #### 一、HBase 概述 HBase 是一个分布式、可扩展的大规模数据存储系统,它基于 Google 的 BigTable 模型设计并实现。作为一个非关系型数据库(NoSQL),HBase 提供了高可靠性和高性能的...
《小镜子之HBase学习:深入理解分布式存储的基石》 HBase,全称为Hadoop Database,是一款构建在Hadoop文件系统(HDFS)之上的分布式列式数据库,旨在处理大规模数据集。作为NoSQL数据库家族的一员,HBase在大数据...
docker版hbase集群构建,从docker安装开始,再到docker中下载并运行hadoop镜像,之后下载并配置hbase。最后对整个流程做总结,遇到的问题,以及一些docker基础知识和hbase教程。
《深入学习HBase原理》 HBase,全称为Hadoop Database,是一款高度可扩展的、高性能的、面向列的分布式数据库。它源自Google的Bigtable论文,并在其基础上为Hadoop生态系统提供了一种强大的非结构化数据存储解决...