我必须实现hadoop,所以它可以处理呼叫详细记录的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我必须实现hadoop,所以它可以处理呼叫详细记录的数据?相关的知识,希望对你有一定的参考价值。
我已经配置了HDFS,Datanode和namenode以及hbase。我在HDFS中存储了一个CDR csv文件。那么如何将其与Hbase映射并准备好进行处理呢?
答案
您可以使用importtsv
工具将CSV文件批量加载到HBase中。这是一个关于如何做到这一点的体面教程:http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/
以下是博客文章的摘要:
首先,创建表:
hbase shell
create 'cdr', {NAME => 'f'}, {SPLITS => ['g', 'm', 'r', 'w']}
NAME指定列族的名称。 Splits只是预先分裂所以它更快一点。如果这是CDR并且ROWKEY将是一个电话号码或类似的东西,你想要分割数字,而不是字符。您只想选择实际将数据拆分为块的拆分。
然后,使用importtsv从cdr数据cdr.csv加载数据:
hadoop jar /usr/lib/hbase/hbase-xxx.jar importtsv
-Dimporttsv.separator=,
-Dimporttsv.bulk.output=output
-Dimporttsv.columns=HBASE_ROW_KEY,f:col2,f:col3,f:col4,... cdr cdr.csv
然后,完成它:
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles output wordcount
注意:你应该考虑一下你的rowkey是什么。挑选第一列可能不是正确的选择。请记住,HBase不是关系数据库。做一些在HBase中有意义的事情。
以上是关于我必须实现hadoop,所以它可以处理呼叫详细记录的数据?的主要内容,如果未能解决你的问题,请参考以下文章