四个工程的作用
Zebra项目是一个比较底层的分布式项目。在这个项目中让我们初步了解了分布式编程的一些特点。
在Zebra项目中,任务是把一个电信日志文件中的数据提取出来,然后对里面的数据进行提取。
分为四个projects。分别为:contract engine1-01 engine1-02 engine2 jobtracker
整个任务是用maven来管理,contract主要是被依赖的工程,rpc协议,通用类,jar包等都放在这个工程中。
Engine1-01根engine1-02分别被当做两台计算机节点处理任务。通过zookeeper存储的信息(ip地址跟端口),来进行任务的分发。对数据进行一级处理。
Engine2主要是用于对数据的二级处理,一级处理的任务放入mapQueue中,Engine2从mapQueue中取出数据,再对数据进行进一步处理,最后落入数据库。
整个Zebra项目跟hadoop分布式处理的差距
1.没有考虑到海量数据存储和管理的问题。
2.没有考虑到节点的故障问题,比如通过心跳来确定集群的高可用
3.只有一个二级节点,导致如果合并的工作量很大造成单点工作负荷
4.在zebra项目中很多业务的处理可以提取出来,提炼出计算框架。比如:逻辑切块、位置追溯、key值得合并)。即没有计算框架的思想来处理业务,导致以后有新人物,还会做重复且繁琐的工作。
5.任务资源管理和调度。比如对每一个job任务进行cpu和内存的合理分配。比如yarn,mesos。
Avro项目中需要掌握的业务处理方式
未完待续