hbase的安装配置

环境及版本:

Centos7 (64位)

JDK(1.8)

hadoop(3.1)

hbase(2.0.0)

为了避免版本导致的怪异问题,请多多注意!

在已经装好jdk和hadoop之后装hbase,此hadoop和hbase为分布式的

1.解压hbase2.0.0

2./bin/hbase-env.sh

配置JAVA_HOME路径为本机的路径

3./bin/hbase-site.xml

<configuration>
  	<property> 
		<!-- hbase存放数据目录 -->
		<name>hbase.rootdir</name> 
		<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
		<value>hdfs://master:9000/hbase</value>
	</property>
	<property>
		<!--	HBase Web页面-->
		<name>hbase.master.info.port</name>
		<value>60010</value>
	</property>
	<property> 
		<!-- 是否分布式部署 -->
		<name>hbase.cluster.distributed</name> 
		<value>true</value> 
	</property> 
	<property> 
		<!-- list of  zookooper -->
		<name>hbase.zookeeper.quorum</name> 
		<value>master,slave1,slave2</value> 
	</property>     
	<property>
		<!-- 临时文件路径,如果使用系统默认的tmp会被清除 -->
 		<name>hbase.tmp.dir</name>
 		<value>/data/local/hbase/tmp</value>
	</property>
 	<property>
	  	<name>dfs.replication</name>
  		<value>1</value>
  	</property>
 	<property>
		<!-- ZK数据文件路径 -->
        	<name>hbase.zoopkeeper.property.dataDir</name>
        	<value>/data/local/zookeeper/zkdata</value>
    	</property>
	<property>
  		<name>hbase.zookeeper.property.clientPort</name>
  		<value>2181</value>
	</property>
    	<property>
		<name>hbase.unsafe.stream.capability.enforce</name>
		<value>false</value>
	</property>
	<property>
   		<name>hbase.table.sanity.checks</name>
    		<value>false</value>
  	</property>
  	<property>
  		<!-- phoenix支持索引 -->
		<name>hbase.regionserver.wal.codec</name>
		<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
	</property>
</configuration>

  4./bin/regionservers

  配置三台主机名,如果你没有改主机的名字,呢么应该是你的IP地址

  5.从phoenix中复制两个jar包过来(至于为什么?我也不知道,对了,phoenix版本5.0.0)

  Phoenix-5.0.0-HBase-2.0-server.jar

  Phoenix-core-5.5.0-HBase-2.0.jar

  6.创建,其中的临时文件夹

  7.拷贝hbase文件到其他机器,(你说他是怎么从别的机器上找到hbase文件的呢?因为同路径吗?没试过不同路径的)

  8.配置环境变量

  export HBASE_HOME=/data/local/hbase/hbase-2.0.0

  export PATH=$PATH:${HBASE_HOME}/bin

  source /etc/profile  //让环境变量生效

  9.如果你的环境变量生效了,随便在哪里  :命令   start-hbse.sh 

  10.检查成功状态  使用java中 jps命令 如果成功就会有下面两个进程(此文件并没有标注hadoop的运行中进程)

  master(主节点):

    HMaster

    HRegionServer(如果你的regionServers 文件中配置了主master,则在主节点上才有,如果没配就只有在salve上才有)

  salve(从节点):

    HRegionServer

  11.遇到的问题及解决

    0.HMaster死亡,日志信息:找不到DataNode,检查发现hadoop的DataNode没起来,检查hadoop的问题

    1.启动后发现HRegionServer死了,查看日志

       ABORTING region server slave1,16020,1547180831222: Unhandled: Unable to find  未找到

     缺少上述的Phoenix-5.0.0-HBase-2.0-server.jar包,去phoenix找个包吧(注意版本)

    2.启动后还是发现HRegionServer死了(或者个别的HRegionServer死了)  

      Server yfhadoopd3,60020,1357353729598 has been rejected; Reported time is too far out of sync with master.  Time difference of 33455ms > max allowed of       30000ms
     时间问题,hbase要求时间是同步的,我配置的时候时间是同步的,所以未配置时间同步,这是hbase很大的一个问题,默认的hbase时差容忍是30秒,当然可以修改配置,网上有无数个这样的教程,推荐ntp 将salve的时间和master的时间进行同步

    3.在启动的时候输出口输出了:    (slave1:)HBase SLF4J:Class path contains multiple SLF4J bindings

      正常的启动情况下我是没有出过这个问题的,我出现这个问题的同时伴随了下面的这个问题,但是这个问题可解,将hbase中的LOG4J包移除,可解这个错误,注意如果他是报的salve1包绑定冲突,就移除slave1的,如果是其他的就移除其他的

    4.HRegionServer 死亡,HMaster活着,甚至能进入shell命令行,但是stop-hbase.sh失败

      报错信息:2018-07-11 17:50:51,663 INFO  [main-SendThread(slave2:2181)] zookeeper.ClientCnxn: Opening socket connection to server slave2/192.168.1.130:2181. Will not attempt to authenticate using SASL (unknown error)

          2018-07-11 17:50:52,732 INFO  [ReadOnlyZKClient-slave1:2181,slave2:2181@0x1b92d5dc-SendThread(slave1:2181)] zookeeper.ClientCnxn: Opening socket connection to server slave1/192.168.1.128:2181. Will not attempt to authenticate using SASL (unknown error)

          2018-07-11 17:50:57,623 ERROR [regionserver/slave1:16020] regionserver.HRegionServer: pache/hadoop/fs/ContentSummary; @98: invokestatic

          java.lang.VerifyError: Bad type on operand stack

          ERROR [regionserver/slave1:16020] regionserver.HRegionServer: RegionServer abort: loaded coprocessors are: []

      解决方法:将lib下的hadoop开头的所有包全部删除,从你的hadoop/share 文件夹下得到所有的hadoop开头的jar包移动到lib下,注意:此种方法我的确解决了hbase的这个错误,但是,随之而来的是各种各样的错误,我开始的时候安装过一个hbase,但是各种原因失败了,然后再次安装就报这个问题了。

    5.说一下遇到的各种各样的错误

      HRegionServer 死亡,HMaster活着,甚至能进入shell命令行,但是stop-hbase.sh失败

      Invalid host name: local host is: (unknown); destination host is: "HMaster":。。。找不到记录,大概就是说找不到HMaster 节点了,其实我的IP是有配置的,但是找不到

      将配置文件/conf/hbase-site.xml 中的HMaster换成你的IP地址

    6.HRegionServer 死亡,HMaster活着,甚至能进入shell命令行,但是stop-hbase.sh失败

     regionserver.HRegionServer: ***** ABORTING region server slave1,16020,154711。。***** 好吧,到这我崩溃了,感觉后面的这些问题都是随着问题4 出现的,所以根本上还是解决问题了,所以我重装了系统,运行良好(配置文件完全相同的呢~~,F***)

 

posted @ 2019-01-11 18:54  我得了个姥姥  阅读(1769)  评论(0编辑  收藏  举报