开篇
大家好,我是world,嗯,就是那个被经常hello的world,不是那个经常被count的word,虽然我们长的有点像。
我在哪里呢,你可以在/home/learn/hadoop/wordcount/test.txt文件里找到我,我就躺在哪里,不悲不喜。
是不是一样就看到我啦,我可是生活在一个大家庭,我的左右都是我的兄弟姐妹,老大是hello,我排行老二,之后老三,老四……,我的兄弟姐妹可有上千万,所以我的家test.txt也很大,听du兄弟告诉我说,我足足有276M之大!
听隔壁村的hadoop老大爷说,因为我的兄弟姐妹实在有点多,准备送我们全家去做个检查,对我们 做个人口普查, 好期待啊。
踏上旅途
这不,刚在hadoop老大爷那听说完没多久,我还以为会在当地对我们进行检查呢,谁知道我们本地的检查员shell说我们家太大了,本地人力物力资源有限,需要让hadoop老大爷送我们去外地做检查,一直听说hadoop老大爷本事可大了,现在终于有机会目睹下了。
送我们去外地做检查的实际上是hadoop老大爷的一个手下,人们都给他叫client,我就叫他小客吧,这个小客听说要送我们去外地,忙乎的拿起电话开始给他大哥NameNode打电话,小客悄悄的告诉我,他这个大哥可牛了,管理着hadoop老大爷的所有存储家产,我们这次能不能去,具体去到哪里,全得听他的。
小客挂了电话之后,对我们说他大哥已经同意我们去了,但是根据hadoop老大爷颁布的第0003号文件hdfs-site.xml规定,我们这一家太大了,需要进行拆分。我听了都懵逼了,我们好好的一大家子,为啥要分开,分开后邻居的小红,小花找不到我怎么办。小客听后说,这都不是事,将你们分开是为了你们在去外地的路上更加快速,别人来我家访问的话,需要通过小客这可以,通过小客访问我们看到的还是一个整体,而且,还有更好的事是,hadoop老大爷可以赠予我们多几条命,这点超值有木有!如果我在外地居住期间出现什么意外,我还有好几次活命的机会,爽歪歪乳娃娃啊!于是,我毫不犹豫的答应了。
因为hadoop老大爷规定小客每次只能运送128M的人数,而我家有276M, 所以我们根据先后顺序分为3批次(128+128+20)运输我们去外地,分好组之后,小客又和大哥进行通话。
小客收到大哥NameNode发送的地址后,会通过名字叫RPC的道路和他兄弟DataNode,也就是DN1建立联系,然后让DN1去张罗另外两个弟兄,DN2, DN3。
待小客需要的兄弟都就绪后,小客告诉我,准备好,要把我送到DN1兄弟那了。
小客先是把我们这个分组放到了一个叫缓存的大厅里,然后按照64kb大小将我们“打包(packet)”,并且为了保险起见,每个packet上还跟随着多个叫chunk的信使, 说是为了DN1兄弟那好清点我们的人数看看有没有落下的,反正咱也不懂,也不敢问。
就这样,我们一整家就被运送到了一个叫hdfs的地方,听说一会会有一个叫MapReduce的哥们来检查我们,好期待啊