分享

hadoop相关问题解答

pig2 发表于 2013-12-5 17:20:23 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 4768
问:集群环境下 rowkey 怎么设计才能让数据平均分布到数据节点上?
答:hbase中的数据存储是按照rowkey(即字节数组)顺序进行物理存储的。
hbase中的数据是存放在region中的。
hbase数据批量导入时,一般会预分区(即提前划分出很多的region)。
加载数据的时候,尽量让rowkey是无序的。
问:在Map阶段,一个Map Task可能会输出大量的临时数据,这可能会带来什么性能问题?如何对其进行优化?
答:map产生的数据有两种流向,一种是流向reduce节点,一种是直接写到hdfs中。
      如果数据从map流向reduce时,在map端产生大量的临时数据,那么传输过程中就会占用大量的带宽,并且造成传输时间拉长,影响整体作业的执行效率。
解决方法:
(1)通常使用combiner的设置,在job中调用setCombiner(...)方法来处理。
(2)对于map产生的数据,进行压缩
问:怎么将hbase中数据进行数据分析后 将分析后的结果存入mysql中?
答:hbase主要用于海量数据的秒级简单查询的,不是用来进行数据分析的。
       hive是可以使用sql进行数据分析处理的,把处理后的结果可以通过sqoop导出到mysql中。
问:设计一个MapReduce算法统计出现在超过10个文档中的词对,top K 的最高词频
答:(1)使用两部mapreduce来完成,第一步做词频统计,第二步抽取Tok K
       (2)使用hive来完成,注意hive函数explode的使用,如explode(split(...))
问:什么叫数据本地性?Hadoop采用了哪些机制提高任务的数据本地性?
答:针对于mapreduce运行而言的。 在tasktracker中运行task的时候,优先从本地的datanode中加载数据。

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条