HBase安装

在[官网](https://hbase.apache.org/downloads.html)下载或在国内其他源内下载 我下载的版本[hbase-2.4.13-bin](https://dlcdn.apache.org/hbase/2.4.13/hbase-2.4.13-bin.tar.gz) # 上传到服务器 工具不限 # 解压 `tar -xvf hbase-2.4.13-bin.tar.gz` 改名 `mv hbase-2.4.13-bin.tar.gz hbase` 移动到安装目录 `mv hbase /opt` # 配置 进入hbase安装目录的conf目录下: `cd /opt/hbase/conf` 修改 `hbase-env.sh`: `vi hbsae-env.sh` 将`export JAVA_HOME=`修改或添加为:`export JAVA_HOME=/opt/jdk1.8/ `java的路径换成自己的 将`export HBASE_MANAGES_ZK` 设置成`false`表示不完全分布 修改`regionservers`: 将集群的IP或者主机名写入,写入主机名前提是已经进行了主机名和IP地址的映射。 在 `<property></property>`添加以下内容 ```xml <property> <name> hbase.rootdir </name> <value>hdfs://hadoop-01:9000/hbase</value> <description> hbase.rootdir是RegionServer的共享目录,用于持久化存储HBase数据,默认写入/tmp中。 如果不修改此配置,在HBase重启时,数据会丢失。此处一般设置的是hdfs的文件目录, 如NameNode运行在namenode.Example.org主机的9090端口,则需要设置为hdfs://namenode.example.org:9000/hbase </description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>此项用于配置HBase的部署模式,false表示单机或者伪分布式模式,true表不完全分布式模式。 </description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop-01,hadoop-02,hadoop-03</value> <description>此项用于配置ZooKeeper集群所在的主机地址。value是运行数据节点的主机地址,以英文逗号隔开。 </description> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/var/zookeeper</value> <description>此项用于设置存储ZooKeeper的元数据,如果不设置默认存在/tmp下,重启时数据会丢失。 </description> </property> <property> <name>hbase.tmp.dir</name> <value>/opt/hbase/data</value> <description> 这是本地文件系统上的临时目录。将此设置更改为指向比“/tmp”更持久的位置,这是java.io.tmpdir的常见解决方案,因为在重新启动计算机时清除了“/tmp”目录。 </description> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> ``` HBase默认配置参考:https://www.w3cschool.cn/hbase_doc/hbase_doc-p46d2ki1.html # 开启和关闭 如果在环境变量内加入了hbase的目录和其bin目录: 在任意位置命令行输入:`start-hbase.sh 开启 stop-hbase.sh 关闭` 如果在环境变量内加入了hbase的目录未添加其bin目录: 在任意位置命令行输入:`bin/start-hbase.sh 开启 bin/stop-hbase.sh 关闭` 如果未添加环境变量: 在任意位置命令行输入:`hbase的根目录的绝对路径/bin/start-hbase.sh 开启 hbase的根目录的绝对路径bin/stop-hbase.sh 关闭` # HBase伪分布 hbase的伪分布(只有一个节点,使用自己的zookeeper实例) 解压缩 编辑文件conf/hbase-env.sh 修改内容 ```shell export JAVA_HOME=/opt/jdk export HBASE_MANAGES_ZK=true ``` 编辑文件conf/hbase-site.xml 修改内容 ```xml <property> <name>hbase.rootdir</name> <value>hdfs://hadoop-1:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop-1</value> </property> ``` 启动hbase之前,要检查hadoop的hdfs是否正常运行 `bin/start-hbase.sh` 检查,执行jps命令,看到3个新的java进程,分别是HQuorumPeer、HMaster、HRegionServer 查看http://hadoop01:16010 # HBase集群搭建 搭建hbase集群(hadoop-1作为主节点,hadoop-2和hadoop-3作为从节点) 在hadoop-1上解压缩 编辑文件conf/hbase-env.sh 修改内容 ```shell export JAVA_HOME=/opt/java export HBASE_MANAGES_ZK=false ``` 编辑文件conf/hbase-site.xml 修改内容 ```xml <property> <name>hbase.rootdir</name> <value>hdfs://hadoop-1:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop-1,hadoop-2,hadoop-3</value> </property> ``` regionservers分布在哪几台服务器。 编辑文件conf/regionservers 修改内容 hadoop-2 hadoop-3 复制hbase到hadoop-2、hadoop-3节点 启动hbase之前,要检查hadoop的hdfs、zookeeper集群是否正常运行 在hadoop-1上执行`bin/start-hbase.sh` 检查,执行jps命令,在hadoop-1上看到1个新的java进程:HMaster 查看http://hadoop-1:16010