一、从本地文件系统到HDFS
使用hdfs自带的命令
命令:hdfs dfs -copyFromLocal inputPath outputPath
inputPath:本地文件目录的路径
outputPath:hdfs文件目录路径,即存储路径
二、从HDFS到本地文件系统
命令:hdfs dfs -copyToLocal inputPath outputPath
inputPath:hdfs文件目录
outputPath:本地文件文件目录,即本地存储路径
因为Hbas和Hive都在存储在HDFS中,所以可以通过该条命令可以把Hbase和Hive存储在HDFS中的文件复制出来。但是经过实践,通过这种方式复制出来的Hbase文件是乱码。Hive里的文件有时候也会乱码,这取决于Hive数据的插入方式。
三、文件在HDFS内的移动
1、从Hbase表导出数据到HDFS
命令:hbase org.apache.hadoop.hbase.mapreduce.Export tableName outputPaht
例子:hbase org.apache.hadoop.hbase.mapreduce.Export test /user/data
test为需要从Hbase中导出的表,/user/data为hdfs上的路径,即存储路径,如果最后一个参数有前缀file:// 则为本地上的文件存储系统
2、从HDFS导入到Hbase表中,需要事先建立好表结构
命令:hbase org.apache.hadoop.hbase.mapreduce.Export tableName inputPaht
例子:hbase org.apache.hadoop.hbase.mapreduce.Import test1 /temp/part-m-00000
通过前面的上篇博客,通过Hive的外部表和托管表的运用可以将Hbase中表导出,并且不会乱码。
---------------------
作者:LiuY_ang
版权声明:本文为博主原创文章,转载请附上博文链接!