一、从本地文件系统到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 

  版权声明:本文为博主原创文章,转载请附上博文链接!