Hadoop 的大数据架构,用起来真的挺爽的。核心两个东西:一个是HDFS,管文件存储的;另一个是MapReduce,干并行计算的。配合起来,大文件怎么切、怎么放、怎么跑,统统搞定。适合你这种要成吨日志、搞推荐、跑的场景,实用得。
HDFS 的块机制有意思。128MB 一块,默认三份副本,分布在不同节点上。这样某台机器挂了也不慌,数据能迅速恢复。NameNode
负责管理“谁放哪儿”,DataNode
负责真实的存取,分工明确。
MapReduce的套路比较经典。先是Map
阶段,数据生成一堆key-value
;Shuffle
一下,把相同 key 的聚到一块儿,是Reduce
来做最终的聚合计算。说白了就是并行+归总,效率还不错。
Hadoop 生态也蛮丰富。像YARN这种做资源调度的,把任务安排得明明白白。Hive、Pig这种 SQL 风格的查询语言,挺适合你不想写太多 Java 代码的时候用一用。
还有HBase,搞实时查询的;ZooKeeper,用来管配置、协调服务;这些在大型集群里都比较常见,配起来也不难。熟了之后你会觉得蛮顺手的。
大数据用在哪?比如日志、推荐系统、社交网络建模、金融预测……反正只要数据多、结构乱,Hadoop 都有一席之地。嗯,用来跑模型前的数据预,也合适。
但要注意哦,性能调优是个坑,比如磁盘 I/O、网络传输、内存分配这些,稍微不注意就会卡壳。安全性也得上点心,Hadoop 现在支持 Kerberos 验证和审计了,搞企业部署还是得配上。
如果你刚上手大数据,或者正愁怎么成百 G 的文件,这份ppt
真的可以帮你理出个头绪。内容系统、例子也接地气,下载看看,不亏。