如何在Linux机器上将文本文件加载到Hbase中

时间:2012-08-23 13:30:17

标签: hadoop hbase

如何将我本地计算机的文本文件加载到远程Hbase。我提到了上面的命令,但我真的对命令

感到困惑
hadoop jar <path to hbase jar> importtsv -Dimporttsv.columns=a,b,c '-Dimporttsv.separator=,' <tablename> <inputdir>  

在何处处理文本文件的路径,表名和列将在文本文件中。 在文本文件中,我有create和put语句,如何在Hbase shell中加载和执行该文件。如果有人知道,请打破我的困惑。

脚本文件:

create 'blogpostss', 'post', 'image' 

Run in HBase shell the following to add some data:

put 'blogpostss', 'post1', 'post:title', 'Hello World'
put 'blogpostss', 'post1', 'post:author', 'The Author'
put 'blogpostss', 'post1', 'post:body', 'This is a blog post'
put 'blogpostss', 'post1', 'image:header', 'image1.jpg'
put 'blogpostss', 'post1', 'image:bodyimage', 'image2.jpg'

put 'blogpostss', 'post2', 'post:title', 'Another Post'
put 'blogpostss', 'post2', 'post:title', 'My Second Post'

put 'blogpostss', 'post1', 'post:body', 'This is an updated blog postss'

Following commands retrieve data:

get 'blogpostss', 'post1'
get 'blogpostss', 'post1', { COLUMN => 'post:title' }
get 'blogpostss', 'post1', { COLUMN => 'post:title', VERSIONS => 4 }
get 'blogpostss', 'post1', { COLUMNS => 'post:body', VERSIONS => 3 }

get 'blogpostss', 'post2'
get 'blogpostss', 'post2', { COLUMN => 'post:title' }
get 'blogpostss', 'post2', { COLUMN => 'post:title', VERSIONS => 4 }

2 个答案:

答案 0 :(得分:1)

1.使用终端和ssh到所需的hbase配置的Pc。
2.将本地文本文件复制到HDFS 3.使用Hbase shell创建具有所需列族的表 4.现在执行你要插入的命令..
hadoop jar <path to hbase jar> importtsv -Dimporttsv.columns=a,b,c '-Dimporttsv.separator=,' <tablename> <inputdir>
注:
     hbase jar的路径 - &gt;路径,hbase jar可用。
     tablename - &gt;您现在创建的表名。
     inputdir - &gt;具有文件扩展名的完全限定的Hdfs路径      -Dimporttsv.columns = a,b,c - &gt;专栏家族:qualifer不得不提。

答案 1 :(得分:0)

你可以试试这个:

1)ssh到您的hbase机器

2)将该文件复制到以下路径:

/home/hbase/hbase-0.98.3-hadoop2/bin (it can be change according to where you have hbase folder)

3)[root @ hostname bin]#。/ hbase shell ./sample_commands.txt