所有的表,我可以告诉HBase的禁用和使用删除特定表的脚本。有没有办法做到这一点?我想通过命令行实用程序./hbase shell
执行此操作,而不是通过Java或Thrift。即删除HBase的
回答
disable_all和drop_all已添加如HBase的红宝石外壳命令。这些命令是在jira中添加的HBASE-3506这些命令使用表的正则表达式来禁用/删除。在继续之前,他们会要求确认。这应该会让很多表格变得非常简单,并且不需要外部库或脚本。
您可以将命令传递给bin/hbase shell
命令。从那里你可以使用一些脚本来获取表名并将禁用/删除命令传回到hbase。
即
echo "list" | bin/hbase shell | ./filter_table_names.pl > table_names.txt
./turn_table_names_into_disable_delete_commands.pl table_names.txt | bin/hbase shell
是的,但这取决于hbase shell提供的输出。我希望hbase有内置的东西。 – 2010-10-23 00:15:35
你不会从shell和baja的方法中找到这个功能,就像你将得到的一样。我认为没有太多计划改进当前的shell(这非常糟糕)。我知道你想避免节俭/ java,但也许如果你可以发布你的理由,以避免他们另一种选择可以被建议? – juhanic 2010-10-28 06:09:41
我不是通过HBase的外壳删除表,但我通过,
删除它们的命令行 - 删除我的Hadoop分布式文件系统的目录,然后,
- 创建一个新的干净的Hadoop分布式文件系统的目录,然后,
- 格式化与 'Hadoop的NameNode的-format' 我的Hadoop分布式文件系统,然后,
- start-all.sh和start-hbase.sh
参考:
http://hadoop.apache.org/common/docs/r0.20.1/api/overview-summary.html#overview_description
我有一个方便的脚本,正是这一点,使用Python Happybase库:
import happybase
c = happybase.Connection()
for table in c.tables():
c.disable_table(table)
c.delete_table(table)
print "Deleted: " + table
您需要Happybase安装使用这个脚本,你可以将它安装为:
sudo easy_install happybase
happybase真的很酷..事实上,我用它来监控hbase的目的,以及.. – 2012-10-11 17:19:18
这也可以一气呵成:connection.delete_table('table-name',disable = True)http:// happybase。 readthedocs.org/en/latest/api.html#happybase.Connection.delete_table – 2014-07-19 19:51:37
有一个破解。 打开$ HBASE_HOME/lib/ruby/shell/commands/list.rb文件并在命令方法的底部添加以下行。
return list
之后,list命令返回所有表的名称数组。 然后就这样做。
list.each {|t| disable t;drop t}
如果你正在寻找的东西,将在“一个班轮”通过shell脚本做到这一点,你可以用这个方法:
$ echo 'list.each {|t| disable t; drop t}; quit;' | hbase shell
注:以上已运行来自Bash shell提示符。它会将命令回显到hbase shell
中,并执行从list
命令返回的所有表的循环,然后在遍历list
返回的阵列时,禁用每个表的&删除。一旦完成,它就会退出。
- 1. HBase-删除多行
- 2. 从hbase删除列
- 3. HBase:如何删除区域
- 4. 手动删除HBase数据
- 5. 删除即
- 6. 如何删除hbase表中的一行
- 7. this.getHibernateTemplate()。删除(BP)不会删除立即
- 8. 即JavaScript的删除元素
- 9. HBase何时实际删除一行?
- 10. HBase:如何使用Map-Reduce删除行
- 11. 通过推销或删除。 Hbase和Hadoop
- 12. 即使在删除列族后Hbase-Hadoop DFS大小也不会减少
- 13. 删除即时换行
- 14. 滑动即可删除UITableViewCell
- 15. 用于执行hbase命令的shell脚本 - 删除所有hbase表
- 16. 有没有办法在HBase上进行硬删除(真正的删除)?
- 17. 即时消息的HBASE模式设计
- 18. Nodejs立即删除生成的文件
- 19. PHP:即使删除后的Javascript加载
- 20. 传递一个删除或HBase的MapReduce的认沽错误
- 21. 如何删除hbase表中某个家族的所有数据?
- 22. 星火批量删除记录在HBase的
- 23. 有没有办法删除hbase系统中的标签?
- 24. 如何删除Hbase表中所有行的列
- 25. HBase的1.2 - 删除单元格与能见度标签
- 26. 根据时间范围删除HBase表中的所有数据?
- 27. 如何删除hbase表中同一列的行?
- 28. 使用MapReduce作业的HBase批量删除作业
- 29. 使用Phoenix在HBase中删除包含表的模式
- 30. 处理被动删除更新(即归档而不是删除)
请注意,'disable_all'*。*''是禁用所有HBase表的适当命令。当使用'disable_all'*''时,您将收到来自HBase的错误禁用确认;这是[已知问题](https://issues.apache.org/jira/browse/HBASE-6642),在HBase 0.94.4及之后版本中已经修复。 – 2012-12-17 08:57:48
感谢Emaad的提示。我可以确认它在0.94.5中仍然不固定。 – 2013-03-29 13:59:56
'disable_all'。*''的作品 – 2014-01-16 15:15:39