我无法将数据从pig加载到cloudera cdh3中的hbase。当我转储数据时,它会显示数据,但是当我尝试使用store命令将数据从pig放入hbase时,它能够找到表并启动mapreduce任务。但最终会显示以下错误消息->
从“test/nyse\u daily\u prices\u q.csv”读取数据失败
最后呢
2015-02-16 11:29:44266[main]info org.apache.pig.backend.hadoop.executionengine.mapreducelayer.mapreducelauncher-失败!2015-02-16 11:29:44268[main]错误org.apache.pig.tools.grunt.gruntparser-错误2999:意外的内部错误。行键在logfile:/home/cloudera/pig_.log中无效
这是我使用的代码。有人能帮我解决这个问题吗。
data=load'/test/nyse\u daily\u prices\u q.csv'使用pigstorage(',')作为(exchange:chararray,symbol:chararray,date:chararray,股价_open:float,股价_high:float,股价_low:float,股价_close:float,库存_volume:int,股价调整_close:float);
转储数据;
将数据存储到'hbase://nystockdetails'使用org.apache.pig.backend.hadoop.hbase.hbastorage('info:exchange info:符号info:date info:股票价格\u打开info:stock_price_high info:stock_price_low info:stock_price_close info:stock_volume info:stock_price_adj_close');
1条答案
按热度按时间lvjbypge1#
当您在本地执行命令时(这就是我假设您所说的转储数据的意思),您的命令
LOAD '/test/NYSE_daily_prices_Q.csv'
能够指向本地文件系统上的特定文件。执行附加了hbase导出的同一命令时,将启动仅Map的mapreduce作业。Map程序将在集群上的随机节点上运行,因此不必访问
NYSE_daily_prices_Q.csv
我想它只存储在本地的一个节点上。因此,当它试图加载到hbase时会出现错误。解决方案是将这个文件添加到hdfs中,然后从那里加载它,即。
LOAD 'hdfs://my-hdfs-location/test/NYSE_daily_prices_Q.csv'
.