如何将我本地计算机的文本文件加载到远程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 }
答案 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