之前配置环境变量一直出问题是因为,
我总把$HBASE_HOME/bin写在其他$HIVE_HOME/bin的后面,
原来它是单独写一行才会生效。
设置环境变量
1. 使用sudo vi /etc/profile命令修改系统环境变量
export HBASE_HOME=/app/hbase-0.96.2
export PATH=$PATH:$HBASE_HOME/bin
2.使环境变量生效并验证环境变量生效
source /etc/profile
hbase version
环境变量配完了,还需要配置下
hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/default-java //用什么java的jdk
export HBASE_CLASSPATH=/work/local/hbase-2.0.2/conf //Hbase的配置目录
export HBASE_MANAGES_ZK=true //是否用自带的zookeeper
hbase-site.xml
注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
<property>
<name>hbase.rootdir</name>
<value>hdfs://server110/hbase</value>
</property>
是HBase集群中所有RegionServer共享目录,用来持久化HBase的数据,
一般设置的是hdfs的文件目录。${hbase.tmp.dir}/hbase,如果不改可就是在tmp目录下了,重启之后数据都没了。
<property>
<name>hbase.tmp.dir</name>
<value>/xxx/hbase/hbase-tmp</value>
</property>
本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除)
默认:/tmp/hbase-${user.name} 即${java.io.tmpdir}/hbase-${user.name}
<property>
<name>hbase.cluster.distributed</name> //集群是分布式,则为true,默认false。
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name> quorm英文意思是法定人数、数量
<value>hdp01:2181,hdp02:2181,hdp03:2181</value>
</property>
接下来是分布式操作
3.2拷贝hbase到其他节点
scp -r /apps/hbase/ hdp02:/apps/
scp -r /apps/hbase/ hdp03:/apps/
注意:apps是我安装hbase的目录
4.将配置好的HBase拷贝到每一个节点并同步时间。
5.启动所有的hbase
分别启动zk
./zkServer.sh start
启动hbase集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
6.通过浏览器访问hbase管理页面
hdp01:60010
7.为保证集群的可靠性,要启动多个HMaster
hbase-daemon.sh start master