目录
[二、HBase Shell操作](#二、HBase Shell操作)
一、Hbase安装
|---------|-----------------|--------|-----------|--------------|
| 主机名 | ip | master | zookeeper | RegionServer |
| hadoop1 | 192.168.139.176 | √ | √ | √ |
| hadoop2 | 192.168.139.214 | backup | √ | √ |
| hadoop3 | 192.168.139.215 | | √ | √ |
1、准备工作
1.1、安装rsync
bash
sudo yum install rsync -y
1.2、编辑脚本
bash
vim xsync
bash
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop1 hadoop2 hadoop3
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
1.3、测试
bash
#创建文件
touch a.txt
#分发文件,如果成功了再其他服务器上可以看到该文件
xsync a.txt
2、安装Hadoop
大数据技术-Hadoop(一)Hadoop集群的安装与配置_安装hadoop集群-CSDN博客
3、安装zookeeper
3.1、下载最新稳定版
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
3.2、安装配置ZK
bash
#解压文件
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz
#移动
mv apache-zookeeper-3.8.4-bin /usr/local/zookeeper
#进入安装目录,创建文件
cd /usr/local/zookeeper
#创建目录
mkdir data logs
#修改配置文件
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
bash
#添加以下内容,这里假设你一定设置好了hostname
dataDir =/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
#修改myid这里写1
bash
#分发文件,然后去其他服务器上,修改相应的/usr/local/zookeeper/data/myid 文件为2 和3
xsync /usr/local/zookeeper
4、安装Hbase
4.1、解压文件
bash
#解压文件
tar -zxf hbase-2.6.1-bin.tar.gz -C /usr/local/
4.2、hbase-env.sh
bash
#指定java环境变量
export JAVA_HOME=/usr/local/java
#指定不使用自带的zk
export HBASE_MANAGES_ZK=false
4.3、backup-masters
bash
vim backup-masters
#添加如下内容,指定备用master
hadoop2
4.4、配置hbase-site.xml
XML
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定数据路径-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:8020/hbase</value>
</property>
<!--是否分布-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--zk的地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
<!--zk数据路径-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper/data</value>
</property>
<!--指定端口-->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!--解决shell报错-->
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
4.5、regionservers
XML
hadoop1
hadoop2
hadoop3
4.6、创建软连接
bash
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/core-site.xml /usr/local/hbase-2.6.1/conf/core-site.xml
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/hdfs-site.xml /usr/local/hbase-2.6.1/conf/hdfs-site.xml
5、启动Hbase
5.1、分发数据
bash
#分发数据
xsync /usr/local/hbase-2.6.1/
5.2、启动hdfs
bash
#启动
/usr/local/hadoop-3.4.0/sbin/start-dfs.sh
#停止
/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh
5.3、启动zk,每个节点都启动
bash
#启动
/usr/local/zookeeper/bin/zkServer.sh start
#停止
/usr/local/zookeeper/bin/zkServer.sh stop
5.4、启动hbase
bash
#方式1
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
#方式2
#启动
/usr/local/hbase-2.6.1/bin/start-hbase.sh
#停止
/usr/local/hbase-2.6.1/bin/stop-hbase.sh
5.5、HBase页面和HDFS
192.168.139.176:16010
6、编写脚本
bash
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/start-dfs.sh"
echo " --------------- 启动 zk集群 ---------------"
ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh start"
ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh start"
ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh start"
echo " --------------- 启动 hbase ---------------"
ssh hadoop1 "/usr/local/hbase-2.6.1/bin/start-hbase.sh"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 hbase ---------------"
ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
ssh hadoop1 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"
ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
ssh hadoop2 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"
ssh hadoop3 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
echo " --------------- 关闭 zk ---------------"
ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh stop"
ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh stop"
ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh stop"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
chmod +x hbase.sh
二、HBase Shell操作
bash
#进入shell
/usr/local/hbase-2.6.1/bin/hbase shell
#查看
list
#创建表
create 'user','info'
#插入数据
put 'user','1001','info:sex','male'
put 'user','1001','info:age','18'
put 'user','1002','info:name','Janna'
put 'user','1003','info:sex','female'
put 'user','1003','info:age','20'
#查看表
scan 'user'
#表结构
describe 'user'
#修改
put 'user','1001','info:name','tom'
put 'user','1001','info:age','30'
#查看
get 'user','1001'
get 'user','1001','info:name'
#统计条数
count 'user'
#删除一行数据
deleteall 'user','1001'
#删除列
delete 'user','1002','info:sex'
#清空数据
truncate 'user'
#删除表,先禁用再删除
disable 'user'
drop 'user'
#获取配置信息
@shell.hbase.configuration.get("hbase.rpc.timeout")
#设置配置信息
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 61010)
#预分隔表
create 't1','f',SPLITS => ['10','20','30']
#创建namespace
create_namespace 'my_ns'
#命名空间下创建表
create 'my_ns:my_table', 'user'
#修改ns
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
#删除ns里的表
disable 'my_ns:my_table'
drop 'my_ns:my_table'
#删除ns
drop_namespace 'my_ns'
#退出
exit