我正在尝试使用命令行执行bulkload,这是一个csv文件。
这就是我正在尝试的
bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://localhost:9000/transactionsFile.csv bulkLoadtable
我得到的错误如下:
15/09/01 13:49:44 WARN mapreduce.LoadIncrementalHFiles: Skipping non-directory hdfs://localhost:9000/transactionsFile.csv
15/09/01 13:49:44 WARN mapreduce.LoadIncrementalHFiles: Bulk load operation did not find any files to load in directory hdfs://localhost:9000/transactionsFile.csv. Does it contain files in subdirectories that correspond to column family names?
是否可以在不使用java mapreduce的情况下从命令行执行bulkload。
答案 0 :(得分:0)
你几乎是正确的,唯一遗漏的是bulkLoadtable
的输入必须是目录。我建议将csv文件保存在一个目录下,并将路径上传到目录名作为该命令的参数。请参考以下链接。
希望这有帮助。
答案 1 :(得分:0)
您可以从命令行
进行批量加载有多种方法可以做到这一点,
一个。通过使用HFileOutputFormat从MapReduce作业创建数据文件(StoreFiles)来准备数据。
湾使用completebulkload工具导入准备好的数据
例如:hadoop jar hbase-VERSION.jar completebulkload [-c /path/to/hbase/config/hbase-site.xml] / user / todd / myoutput mytable
2。 使用 importtsv 例如:
HBase的> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator =, - Dimporttsv.columns =" HBASE_ROW_KEY,id,temp:in,temp:out,振动,压力:in,压力:out&#34 ; sensor hdfs://sandbox.hortonworks.com:/tmp/hbase.csv more details