Node.js+HDFS开发的简易网盘

最近研究了HDFS的相关内容,基于WebHDFS REST APIHadoop-1.1.2版)制作了一个了简易的网盘。实现了账号注册,文件的上传、下载、删除等功能。由于基于Hadoop,参考Dropbox的命名,将其名字定为Doopbox。项目地址:https://github.com/xushvai/Doopbox

业务/应用服务(调用HDFS服务的服务)使用node.js+Express开发。

数据库中只有一个account表 ...


用于修改VMware虚机hosts文件的Python脚本

基于VMware Fusion虚拟机搭建Hadoop集群。宿主系统OSX,虚机均为Linux系统。

配置集群时需要修改每个节点的hosts文件,指出相应节点的IP地址。为保证这些虚机的IP地址不会发生变化,应使用Host-only的联网方式。

在Host-only组网方式下,各节点的hosts只需配置一次,今后就不用修改了,比较方便。只是,要想从宿主直接访问Hadoop接口的话,就没办法了,因为宿主与这些虚机不在一个网络内。

若改成Bridge方式,就可以解决网络不通的问题。但只要宿主机器换了网络环境,这些Bridge到它的虚机的IP就有可能发生变化 ...


集群小结

原本互不相关的n(n > 1)台计算机,以某种方式被组织起来,协同地去完成一些任务,这一“组”机器即为一个集群。

LB(Load Balancing)集群:负载均衡集群

当用单台机器对外提供服务时,随着客户量的不断增加,其所具备的资源将有可能无法满足客户的需求。一旦大量客户并发地请求服务,后端的计算,存储,网络等资源将会吃紧。这种情况下,对客户的服务质量将大大下降(响应变慢),或者根本无法再为用户提供服务。

要解决这个问题,努力方向主要有两个:一是为这台机器增加资源(或换机器),让它变得更强大;二是增加更多的机器,组织成集群,来分担压力。第一种方法叫”scale on”,即:向上扩展,着眼于机器本身,在垂直方向上做文章;第二是”scale out”,即:向外扩展,自己不变,多找几个帮手。

scale on是容易想到的做法 ...