我想验证以下示例问题的答案
问题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
3条答案
按热度按时间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。s4n0splo2#
1-正确,您可以在任何描述hdfs容错性的文献中找到这一点。hadoop的第3章中有一节:权威指南,描述了客户机将数据写入hdfs的过程,并描述了这个失败过程是如何一次又一次地工作的。
2-正确,键必须是可写可比较的,这样它们就不会属于其他类别,包括数组和其他不可比较的类型。
3-正确,一年是一个数值,所以在所有这些中,最合适的选项是不可写的。
fcg9iug33#
对于问题1和问题2,答案d是正确的,但是对于问题3,我认为它是d,我可能错了。