摘要: 本文讲解Hadoop中的编程及计算模型MapReduce,并将给出在MapReduce模型下编程的基本套路。 阅读全文
posted @ 2017-05-19 15:33 穆晨 阅读(2464) 评论(0) 推荐(0) 编辑
摘要: 在先前的文章中,已经介绍了如何在Ubuntu Kylin操作系统下搭建Hadoop运行环境,而现在将在之前工作的基础上搭建Eclipse开发环境。 阅读全文
posted @ 2017-05-19 15:04 穆晨 阅读(1200) 评论(0) 推荐(0) 编辑
摘要: 本文介绍如何在Ubuntu Kylin操作系统上搭建Hadoop平台。 阅读全文
posted @ 2017-05-19 14:36 穆晨 阅读(1924) 评论(0) 推荐(0) 编辑
摘要: 本文大致介绍下Hadoop的一些背景知识,为后面深入学习打下铺垫。 阅读全文
posted @ 2017-05-19 14:19 穆晨 阅读(1853) 评论(0) 推荐(0) 编辑
摘要: 之前曾经学习过一对回射客户/服务器程序的例子,不过那个是基于TCP协议的。本文将讲解另一对回射客户/服务器程序,该程序基于UDP协议。 由于使用的协议不同,因此编写出的程序也有本质上的区别,应将它们对比来进行理解。 阅读全文
posted @ 2017-05-19 14:02 穆晨 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 在网络套接字编程中,我们可以通过设置套接字选项让网络协议按照我们预想的方式工作。本文教你如何获取当前的套接字选项,以及如何设置套接字选项。 阅读全文
posted @ 2017-05-19 14:00 穆晨 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 在上文中,我使用select函数实现了不为客户连接创建子进程的并发回射服务器( 点此进入 )。但其中有个细节确实有点麻烦,那就是还得设置一个client数组用来标记select监听描述符集中被设置为监听位的位。 有没有方法简化这个处理呢? 阅读全文
posted @ 2017-05-19 13:55 穆晨 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 在此前,我已经介绍了一种并发回射服务器实现( 点此进入 )。它通过调用fork函数为每个客户请求创建一个子进程。同时,我还为此服务器添加了自动消除僵尸子进程的机制。现在请想想,在客户量非常大的情况下,这种为每个客户请求都创建子进程的做法是不是太费资源了?我们可不可以在不为每个客户请求都创建子进程的前提下实现并发回射服务器? 阅读全文
posted @ 2017-05-19 13:54 穆晨 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 批量处理是指将原先的输入重定向到一个输入文件,这样客户端将连续向服务器发送该文件中的数据,然后接收到服务器的回射数据后,再将其写入到另一个文件中。在这样的情况下,原来的客户端程序不能够再正确运行了。那么会发生什么问题?我们又该如何修改客户端程序才能使之正确工作呢? 阅读全文
posted @ 2017-05-19 13:52 穆晨 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 在看过前文:初探IO复用后,想必你已对IO复用这个概念有了初步但清晰的认识。 接下来,我要在一个具体的并发客户端中实现它(基于select函数),使得一旦服务器中的客户进程被终止的时候,客户端这边立即得到通知并返回异常。 阅读全文
posted @ 2017-05-19 13:50 穆晨 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章中,我具体实现了一个并发回射服务器并给它加载了僵尸子进程的自动清理信号机制。在正常情况下,它已经可以很好地工作了,但它能否合理应对一些特殊情况呢? 阅读全文
posted @ 2017-05-19 11:07 穆晨 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 在之前的回射程序中,实现了字符串的传递与回射。幸运的是,字符串的传递不用担心不同计算机类型的大小端匹配问题,然而,如果传递二进制数据,这就是一个要好好考虑的问题。在客户端和服务器使用不同的字节序格式的情况下传递二进制数据,会导致异常。此外,客户和服务器表示整型的位数不同也可能导致传递整型异常。 阅读全文
posted @ 2017-05-19 10:58 穆晨 阅读(1170) 评论(0) 推荐(1) 编辑
摘要: 在之前的文章中,我对回射程序做了分析,但那一次的分析是基于正常执行的。本文将说明在各种异常情况下该程序的执行情况。 阅读全文
posted @ 2017-05-19 10:49 穆晨 阅读(269) 评论(0) 推荐(0) 编辑