hadoop问题

hs1rzwqc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(461)

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

问题1

您可以使用hadoopfs-put命令将sales.txt添加到hdfs中。这个文件足够小,可以放入一个块中,这个块被复制到集群中的三个节点。在其中一个节点发生故障后,集群何时以及如何处理复制?
答。群集不会尝试重新复制此块。
b。此块将立即被重新复制,并且集群上的所有其他hdfs操作将在进行此操作时停止。
c。在管理员手动删除并重新创建文件之前,该块将一直处于复制状态。
d。namenode根据从datanodes接收到的块报告确定文件未被复制后,将自动重新复制该文件。
我相信答案是d

问题2

您需要编写代码来执行需要几个步骤的复杂计算。您已经决定将这些作业链接在一起,并为存储中间计算结果的键开发一个自定义复合类。这个键必须实现哪个接口?
答。可写的
b。可转让的
c。可组合
d。可写可比
我相信答案是d

问题3

您正在开发一个使用一年作为密钥的应用程序。哪个hadoop提供的数据类型最适合表示年份的键?
答。文本
b。不可写的
c。可空写的
d。字节可写
e。这些都不合适。您需要实现一个自定义密钥。
我相信答案是b

p5cysglq

p5cysglq1#

第三季度可能很棘手,但很可能是b。
最好的方法是 ShortWritable 因为它需要2个字节 -32000 ~ +32000 . 所以可以使用 BytesWritable 只分配2个字节。这个 IntWritable 需要4个字节,范围从 -2 billion to +2 billion ,这只是浪费额外的2字节。
即使你使用 Text ,它的字节大小(4字节,因为它有4个字符)与 IntWritable . 但是,如果你要做的话 Int 我想是钥匙的相关操作 IntWritable 这样更好。
我认为答案是b的唯一原因是,许多java开发人员总是使用int,而不考虑数字范围,很少使用int Short 相反。所以这个问题是“取决于”。如果我没有对一个键执行任何整数相关的操作,那么我将使用 Bytes ,否则我就用 IntWritabl e。如果我必须选择一个答案,那么b。

s4n0splo

s4n0splo2#

1-正确,您可以在任何描述hdfs容错性的文献中找到这一点。hadoop的第3章中有一节:权威指南,描述了客户机将数据写入hdfs的过程,并描述了这个失败过程是如何一次又一次地工作的。
2-正确,键必须是可写可比较的,这样它们就不会属于其他类别,包括数组和其他不可比较的类型。
3-正确,一年是一个数值,所以在所有这些中,最合适的选项是不可写的。

fcg9iug3

fcg9iug33#

对于问题1和问题2,答案d是正确的,但是对于问题3,我认为它是d,我可能错了。

相关问题