调试

hbase学习记录 

参考http://abloz.com/hbase/book.html#d613e75 
Step 1:修改conf/hbase-site.xml 
(单机版) 
Java代码   收藏代码
  1. <property>  
  2.     <name>hbase.rootdir</name>  
  3.     <value>/usr/local/product/hbase-0.90.5/hbasedata</value>  
  4. </property>  
  5. <property>  
  6.     <name>hbase.zookeeper.property.dataDir</name>  
  7.     <value>/usr/local/product/hbase-0.90.5/zookeeperdata</value>  
  8. </property>  

(集群版) 
Java代码   收藏代码
  1. <configuration>  
  2. <property>  
  3.  <name>hbase.rootdir</name>  
  4.  <value>hdfs://Qmadou-test1:9000/hbase</value>  
  5. </property>  
  6. <property>  
  7.  <name>hbase.cluster.distributed</name>  
  8.  <value>true</value>  
  9. </property>  
  10. <property>  
  11. <name>hbase.master</name>  
  12. <value>192.168.3.190:60000</value>  
  13. </property>  
  14. <property>  
  15.  <name>hbase.zookeeper.quorum</name>  
  16.  <value>192.168.3.191,192.168.3.192,192.168.3.193</value>  
  17. </property>  
  18. <property>  
  19.     <name>dfs.replication</name>  
  20.     <value>3</value>  
  21. </property>  
  22. </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互信 
Java代码   收藏代码
  1. ssh-keygen -t rsa  
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  
  3. scp -P22 authorized_keys Qmadou-test2:~/.ssh/  
  4. scp -P22 authorized_keys Qmadou-test3:~/.ssh/  
  5. 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异常 退出的情形: 
报错日志为: 
Java代码   收藏代码
  1. org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on  


hadoop datanode报错日志为: 
Java代码   收藏代码
  1. java.io.IOException: xceiverCount 4097 exceeds the limit of concurrent xcievers 4096  


解决办法为: 
解决办法,调整xcievers参数 

默认是4096,改为8192 
Java代码   收藏代码
  1. vi /home/dwhftp/opt/hadoop/conf/hdfs-site.xml  
  2. <property>  
  3.   <name>dfs.datanode.max.xcievers</name>  
  4.   <value>8192</value>  
  5. </property>  


参考: http://bkeep.blog.163.com/blog/static/123414290201272644422987/ 


hbase数据迁移导致报名显示不出来: 
生产上,将hdfs文件系统迁移到另外一个机房的机器上,执行hdfs数据恢复后,发现hbase表没有加载上,是由于环境变了,hbase在hdfs上仍然保存这原来regionserver的信息,修复办法: 
Java代码   收藏代码
  1. 进入hbase管理页面,执行compact按钮  
  2. 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值