程序员

注册

 

发新话题 回复该主题

程序员一定要知道的大数据基础知识 [复制链接]

1#
治白癜风的医院 http://www.xftobacco.com/

嵌入式和人工智能息息相关,大数据又是人工智能的养料来源,没有大数据,机器就无法学习;机器不学习就无法实现智能。大数据跟人工智能是非常密切的。每个行业都会产生一些行业大数据,而这些行业大数据就会催生一些人工智能,应用在这个行业里面。

每个公司是不一样的,譬如说阿里巴巴可以用人工智能识别假货。是如何识别的呢?通过分析交易过程当中的各种数据,最后得出是假货的结论;今日头条可以运用人工智能分析每个人平时看哪一类的信息,然后推送相关的信息。不同的公司对人工智能的运用也不相同,在每个行业的表现是不一样的,每个行业的大数据会催生不同行业的人工智能技术。

所以对程序员来说,仅仅知道或听过大数据是不够的,至少要知晓其中大概的原理,并且对常见的大数据组件有一定的认识。

今天这篇文章华妹就给大家分享一下大数据的用途,大数据的核心处理过程,以及常见组件的用处。

大数据能做什么

大数据涉及的领域很多:

汽车领域的自动驾驶;医疗领域的病情识别;金融领域的风控、量化交易;教育领域的AI教育,智能识题;推荐系统;疫情筛查等等,可以说,大数据就是宝藏。

大数据计算原理

大数据计算的核心,其实就是利用技术组合起很多便宜的服务器来并行处理大量的数据,实现大数据的分析和计算。

一般我们谈到大数据,关于技术向都离不开Hadoop体系及其衍生的工具,Hadoop体系其核心就是HDFS和MapReduce。

1、HDFS

计算需要涉及大量的数据可能都是PB级别的,普通单机的磁盘无法存储那么多数据,因此就需要分布式文件存储,组合起众多廉价的服务器,让每个服务器存储部分数据,对外展示看起来却是一个文件,这就是分布式文件存储。

2、MapReduce

MapReduce的原理其实非常简单,它包含两个过程:map和reduce。

只需定义map和reduce的处理逻辑,然后提交给hadoop系统,然后map和reduce的计算逻辑就会分发到我们部署的各个计算节点上。

每个被分配到的计算节点上就会运行map和reduce的代码逻辑来处理数据,并且每个机器处理的也只是部分数据。

比如这个map程序分配了5台机器,一同要处理1亿条数据,很可能机器A就处理前2千万条数据,机器B处理2千万到4千万的数据,依次类推。

然后reduce也有5台,分别统计不同map机器的输入。

这样算力就平摊到多台机器上并行执行,效率就快了,时间就缩短了。

如果计算的数据量大,也可以通过更多的机器来减少计算时间。

大数据相关组件

了解了大体的核心技术后,我们再来看看相关的组件。

1、Hbase

一个列式存储的NoSQL数据库,底层利用HDFS存储。

在存储数据量大的情况下也不会影响读取写入的效率,由于列式存储,没有固定的表结构,可以动态增加列,非常灵活。

2、Hive

前面我们提到MapReduce,要用上这个计算框架是要写代码的,这对于一些运营或产品来说成本就有点高。

于是就出了个Hive,支持类SQL语句,不需要显示编写map和reduce的代码,仅仅写个SQL,Hive就可以把这个SQL转成对应的MapReduce代码,然后执行返回结果,降低了使用成本,是个好东西。

3、Spark

MapReduce虽然好用,但是因为它使用磁盘作为存储介质保存中间结果,且阶段性的计算每执行一次Map和Reduce计算都需要重新启动一次作业,在很多需要迭代计算的作业中,就非常的不方便。

因此用Spark的并行计算框架来替换,它的目标就是低延迟,使用内存来保存中间结果。

4、Flume

还有一个数据来源就是日志,有很多数据都会通过日志保存在服务器的磁盘上,而Flume就是一个日志采集工具,负责日志的采集,然后输入到不同的数据源中。

最后

关于大数据体系的一些基础知识,了解到这个地步也就差不多了。

大家可以结合下面的图再来结合上面的介绍理解一下。

图片来源网络

本文仅仅只是科普大数据主要的核心体系,至少明白它是干嘛的。

分享 转发
TOP
发新话题 回复该主题