> 1.Is there a way to take incremental snapshots on HBase tables? > Due to the nature of hbase, when hfiles gets compacted your table will not share files with the snapshot causing the next snapshot to don't share hfiles (or share a few) with the previous snapshot. The other approach will be using logs to have an incremental snapshots but logs contains different tables, so you may end up with more space used, and for sure more time to restore since you must replay the logs.
> 2.Can we export snapshots to outside of HDFS(e.g backup server)? > the ExportSnapshot tool takes a destination path as argument, so as long as the destination filesystem is supported by the FileSystem class you can. (e.g. you can export with -copy-to=file:///mnt/backup-mount-point/hbase) > 3.Is it possible to take a snapshot for all tables in one command? > No, but you can do a simple script that does a for each table in admin.listTable(), admin.snapshot(table, snapshotName) > 4.Does HBase support to take automatic snapshots based on configured > timeout? > No, hbase doesn't do job scheduling. you may use a cron job to execute a shell command, "echo snapshot 'tableName', 'snapshotName' | hbase shell" > > Please also let us know if there is any better way to take HBase tables > backup. > There are different solutions that you can use: Replication, CopyTable, HDFS files copy + CopyTable and maybe others it depends on what you're looking for. There is an article here that explains how to use CopyTable as backup tool: http://blog.cloudera.com/blog/2012/06/online-hbase-backups-with-copytable-2/