【问题标题】:hadoop questionshadoop 问题
【发布时间】:2013-04-10 18:38:30
【问题描述】:

我想验证以下示例问题的答案

问题 1

您使用 hadoop fs -put 命令将 sales.txt 添加到 HDFS。该文件足够小,可以放入单个块中,该块被复制到集群中的三个节点。在这些节点之一发生故障后,集群将何时以及如何处理复制?

A.集群不会尝试重新复制此块。
B. 此块将立即重新复制,并且在此过程中集群上的所有其他 HDFS 操作将停止。
C. 在管理员手动删除并重新创建文件之前,该块将保持复制不足。
D. NameNode 根据从 DataNode 收到的块报告确定文件复制不足后,将自动重新复制文件。

我相信答案是D

问题 2

您需要编写代码来执行需要几个步骤的复杂计算。您已决定将这些作业链接在一起,并为存储中间计算结果的键开发自定义复合类。该键必须实现哪个接口?

A.可写
B. 可转让
C. CompositeSortable
D. WritableComparable

我相信答案是D

问题 3

您正在开发一个使用年份作为密钥的应用程序。哪种 Hadoop 提供的数据类型最适合表示一年的键?

A.文字
B. 可写
C. NullWritable
D. BytesWritable
E. 这些都不合适。您需要实现一个自定义键。

我相信答案是B

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    1 - 正确,您可以在任何描述 HDFS 容错的文献中找到这一点。 Hadoop: The Definitive Guide 的第 3 章中有一节描述了客户端将数据写入 HDFS 的过程,并描述了这个失败过程是如何进行的。

    2 - 正确,键必须是可写可比较的,以便它们不属于可能包括数组和其他不可比较类型的其他类别。

    3 - 正确,一年是一个数字值,所以在所有这些中,最合适的选项是可写的。

    【讨论】:

      【解决方案2】:

      对于 Q 1 和 2,答案 D 是正确的,但对于 Q 3,我认为是 D,我可能错了。

      【讨论】:

        【解决方案3】:

        第三季度可能非常棘手,但很可能是 B。

        最好使用ShortWritable,因为它需要2个字节,数字范围为-32000 ~ +32000。因此可以使用BytesWritable 并且只分配2 个字节。 IntWritable 占用 4 个字节,范围从 -2 billion to +2 billion,这只是浪费了额外的 2 个字节。

        即使您使用Text,它的字节大小(4 个字节,因为它有 4 个字符)也与IntWritable 相同。但是,如果您正在使用 Key 进行任何与 Int 相关的操作,那么我认为 IntWritable 会更好。

        我认为答案是 B 的唯一原因是许多 Java 开发人员总是使用 Int 而不管数字范围如何,而很少使用 Short 代替。所以这个问题是“取决于”。如果我不对某个键执行任何与整数相关的操作,那么我将使用Bytes,否则我将使用IntWritable。如果我必须选择一个答案,那么 B.

        【讨论】:

          猜你喜欢
          • 2012-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多