hbase搭建伪分布式集群

在单机集成的基础上继续。

下载hadoop 解压,修改hadoop-env.sh java的HOME地址

我的目录在: /root/hadoop-2.9.1/etc/hadoop

 

 

 一个单机伪分布式的hadoop会在一个机器把所需要的进程分别启动,搭建步骤如下:

编辑etc/hadoop/core-site.xml

<configuration>     
<property>         
<name>fs.defaultFS</name>         
<value>hdfs://localhost:9000</value>     
</property>
</configuration>

编辑etc/hadoop/hdfs-site.xml文件

<configuration>     
<property>         
<name>dfs.replication</name>         
<value>1</value>     
</property> 
</configuration>

接着需要设置本机的ssh免密码登录

 ssh-keygen -t rsa

 cd /root/.ssh/

chmod 0600 authorized_keys 

 

 

都配置完毕之后,正式开始启动单机伪分布式hadoop集群

 

$ bin/hdfs namenode -format

$ sbin/start-dfs.sh

http://192.168.31.117:50070/dfshealth.html#tab-overview

 

接着需要编辑hbase的配置文件:hbase-site.xml,让hbase用分布式模式启动,也就是说把每个组件都用单独的进程来启动,同时需要修改hbase数据存储地址为指向hdfs,同时把hbase.unsafe.stream.capability.enforce这个配置设置为true

 

更改后:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->
<configuration>

<property>  

<name>hbase.cluster.distributed</name>  

<value>true</value>

</property>

 

<property>  

<name>hbase.rootdir</name>  

<value>hdfs://localhost:9000/hbase</value>

</property>

 

<property>  

<name>hbase.unsafe.stream.capability.enforce</name>  

<value>true</value>

</property>

</configuration>

接着重新启动hbase,bin/start-hbase.sh,启动之后用jps就可以看到HMaster和HRegionServer进程都是独立在运行了

 

同时可以检查hbase是否在hdfs上建立了自己需要的所有目录,./bin/hadoop fs -ls /hbase

 

接着用下面的命令可以在hbase里创建一个表,然后在里面做一些数据的增删改查操作,检查一下基于hdfs存储数据的hbase是否一切运行正常

 我们创建的表在default的test里面

点进去里面的test,cf是列族

 我们发现建表后立马能在hdfs看到目录,每个列族都有对应目录,列数据单独存放,插入一行数据没有显示。

 

HMaster是用于控制整个hbase集群的,包括所有的HRegionServer,所以必须要做成高可用的,HMaster是可以启动多个的,用下面的命令就可以启动多个HMaster进程,意思是16002/16012格式的端口号后面的数字

 

 . local-master-backup.sh start 2 3 5  (启动了几个?)

 后面的数字:2 是16002-1012,3是16003-16013,4是16004-16014,一共可以9个备用的hmaster

 

干掉端口末尾为2的端口

cat /tmp/hbase-root-2-master.pid |xargs kill -9

 

posted @ 2021-12-26 13:35  三号小玩家  阅读(259)  评论(0编辑  收藏  举报
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840