终于有人把大数据架构讲明白了
导读:如何存储、如何利用大规模的服务器集群处理计算才是大数据技术的核心。
大数据技术其实是分布式技术在数据处理领域的创新性应用,其本质和此前讲到的分布式技术思路一脉相承,即用更多的计算机组成一个集群,提供更多的计算资源,从而满足更大的计算压力要求。
大数据技术讨论的是,如何利用更多的计算机满足大规模的数据计算要求。
大数据就是将各种数据统一收集起来进行计算,发掘其中的价值。这些数据,既包括数据库的数据,也包括日志数据,还包括专门采集的用户行为数据;既包括企业内部自己产生的数据,也包括从第三方采购的数据,还包括使用网络爬虫获取的各种互联网公开数据。
面对如此庞大的数据,如何存储、如何利用大规模的服务器集群处理计算才是大数据技术的核心。
01 HDFS分布式文件存储架构
大规模的数据计算首先要解决的是大规模数据的存储问题。如何将数百TB或数百PB的数据存储起来,通过一个文件系统统一管理,这本身就是一项极大的挑战。
HDFS的架构,如图31-1所示。
一部分是map过程,每个服务器上会启动多个map进程,map优先读取本地数据进行计算,计算后输出一个<key, value>集合; 另一部分是reduce过程,MapReduce在每个服务器上都会启动多个reduce进程,然后对所有map输出的<key, value>集合进行shuffle操作。所谓的shuffle就是将相同的key发送到同一个reduce进程中,在reduce中完成数据关联计算。
publicclassWordCount{
publicstaticclassTokenizerMapper
extendsMapper<Object, Text, Text, IntWritable>{
privatefinalstatic IntWritable one = new IntWritable(1);
private Text word = new Text();
publicvoidmap(Object key, Text value, Context context
)throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
publicstaticclassIntSumReducer
extendsReducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
publicvoidreduce(Text key, Iterable<IntWritable> values,
Context context
)throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
SELECT pageid, age, count(1) FROM pv_users GROUPBY pageid, age;
val textFile = sc.textFile("hdfs://...")
val counts = textFile.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://...")
一是将输入数据的每一行文本用空格拆分成单词; 二是将每个单词进行转换,比如word→(word, 1),生成<Key, Value>的结构; 三是针对相同的Key进行统计,统计方式是对Value求和。最后,将RDD counts写入HDFS,完成结果输出。
关于作者:李智慧,资深架构专家,同程旅行交通首席架构师,曾在NEC、阿里巴巴、Intel等知名企业担任架构师,也曾在WiFi万能钥匙等企业担任CTO。长期从事大数据、大型网站的架构和研发工作,领导设计过多个日活用户在千万级以上的互联网系统架构,实战经验丰富。曾设计、开发过 Web 服务器防火墙、分布式NoSQL 系统、大数据仓库引擎、反应式编程框架等各种类型的软件系统。
本文摘编自《架构师的自我修炼:技术、架构和未来》,经出版方授权发布。
延伸阅读《架构师的自我修炼:技术、架构和未来》
点击上图了解及购买
转载请联系微信:DoctorData
推荐语:大型网站技术架构作者李智慧新作,通过架构师的4项自我修炼,构建你的架构师知识体系,完整展示架构师修炼之道。
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。