连接远程hbase并删除表

为了避免每次连接都要输入密码,可以把本地密钥配置到hbase的服务器上:

# 如果没有密钥对,可以使用 ssh-keygen 命令在本地生成
# 获取本地密钥
cat ~/.ssh/id_rsa.pub

# 服务器添加密钥
vim ~/.ssh/authorized_keys

# 或者直接使用ssh-copy-id 命令将本地生成的公钥复制到远程服务器
ssh-copy-id username@remote_server_ip

可以通过“远程命令执行”实现对远程服务器的操作。基本语法如下:

ssh uasername@hostname 'your_command_here'

'your_command_here'替换为需要在远程服务器执行的实际命令。 在远程命令执行时,如果命令本身包含了引号,需要对引号进行适当的转义或者使用不同的引号来避免解析错误。

在 Linux 中,可以使用 echo 命令的 -e 选项来解释转义字符,并将其传递给管道操作符 |,以便将结果传递给 HBase shell 命令。在Linux中,管道操作符 |(竖线符号)用于连接两个命令,将一个命令的输出作为另一个命令的输入。这样可以构建复杂的命令序列,使得多个命令可以相互协作完成任务。具体实现如下:

Windows系统下bat脚本:

@echo off

# 设置hbase服务器地址
set "HBASE_HOST=xxx.xx.xx.x"
# 设置hbase安装路径
set "HBASE_PATH=/home/package/hbase-2.3.0/bin/hbase"
# 设置表名前缀,用于过滤要删除的表
set "TABLE_PREFIX=my-.*"

# 先禁用表
echo disable table...

ssh root@%HBASE_HOST% "echo -e 'disable_all \"^%TABLE_PREFIX%\"\ny' | %HBASE_PATH% shell -n"

echo drop table...
ssh root@%HBASE_HOST% "echo -e 'drop_all \"^%TABLE_PREFIX%\"\ny' | %HBASE_PATH% shell -n"

echo list table
ssh root@%HBASE_HOST% "echo -e 'list_all \"^%TABLE_PREFIX%\"\ny' | %HBASE_PATH% shell -n"


echo done!

Linux系统下sh脚本:

# 设置hbase服务器地址
HBASE_HOST="xxx.xx.xx.x"
# 设置hbase安装路径
HBASE_PATH="/home/package/hbase-2.3.0/bin/hbase"
# 设置表名前缀,用于过滤要删除的表
TABLE_PREFIX="my-.*"

# 先禁用表
echo "disable table..."

ssh root@${HBASE_HOST} 'echo -e "disable_all \"'${TABLE_PREFIX}'\"\ny" | '${HBASE_PATH}' shell -n'

echo "drop table..."
ssh root@${HBASE_HOST} 'echo -e "drop_all \"'${TABLE_PREFIX}'\"\ny" | '${HBASE_PATH}' shell -n'

echo "list table..."
ssh root@${HBASE_HOST} 'echo -e "list_all \"'${TABLE_PREFIX}'\"\ny" | '${HBASE_PATH}' shell -n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值