@toc
本专栏持续更新中,内容还未完整的请稍安勿躁,部分内容有参考其他书籍或是网络文献,都会给出原始出处
21 世纪必将是大数据的时代,是智能信息处理的黄金时代。
BAT 公司在 2013年左右的数据量如下:
- 2013 年百度相关技术报告称,百度数据总量接近 1000PB,网页的数量大是几千亿个,每年更新几十亿个,每天查询次数几十亿次。
- 2013年腾讯相关技术报告称,腾讯约有8 亿用户,4亿移动用户,总存储数据量经
压缩处理以后在 100PB左右,日新增 200TB 到 300TB,月增加 10%的数据量。
- 2013年阿里巴巴相关技术报告称,总体数据量为 100PB,每天的活跃数据量已经超过 50TB,共有4亿条产品信息和2 亿多名注册用户,每天访问超过 4000 万人次。
为了采集、存储和分析大数据,互联网公司尝试研发大数据技术,在众多技术方案中,开源系统 Hadoop、 Spark、Elasticsearch等 成为应用最广泛的大数据技术,由于它们的用户量巨大,已经初步成为大数据技术规范。
本专栏《大数据处理实践探索》 通过记录基于Python 的大数据处理实践探索案例,力图将大数据与机器学习相结合 产生新的实践落地思路。 网络上的大数据相关博文多是基于java 或者Scala ,本专栏的目的在于 基于python 将大数据(pyspark、 Elasticsearch、sklearn ...),数据开发,与数据分析相结合。 并在实践内容上给出一定指导,最后本专栏特地针对笔试面试高频题方面给出了分享,希望能够在找工作时候帮助到大家。
本专栏 于 2021年7月20日 正式更名为《大数据机器学习实践探索》,并将主要更新:基于大数据的机器学习最佳实践 中的主要内容,围绕大数据环境下的机器学习,基于spark 给大家介绍最新的大数据机器学习算法。
github 地址: big_data_repo
框架平台介绍篇
大数据尝试从海量数据中,通过一定的分布式技术手段,挖掘出有价值的信息,最终提供给用户,进而产生实用价值和商业价值。由于数据本身的多样性以及数据分析需求的多元化,大数据技术体系非常复杂,涉及的组件和模块众多。
为了便于读者从顶层框架上对大数据有一个清楚的认识,本部分尝试首先概括大数据技术框架。
云平台
通过我和北美工程师的合作,他们将AWS 已经当成了一种基础设置,如果你还不了解云计算,或者任意一家云平台的话,你out 了。 学习云计算或者云平台的途径最好就是通过他们的文档。国内云平台如同雨后春笋般蓬勃发展,但最值得借鉴的还是鼻祖AWS.
安装与调试
本小节主要针对开发环境搭建,集群环境搭建进行介绍
- 基础环境搭建:在jupyter notebook 中使用 pyspark
- 在idea 2021 上 配置本地 scala 2.12 spark 3.0.2 开发环境
- 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
- CDH集群安装&测试总结
- CDH 5.x 集群安装及卸载
大数据搜索框架 Elasticsearch
Elasticsearch是一个实时的分布式搜索和分析引擎,使得人们可以在一定规模上和一定速度上实现数据检索,常用于全文本检索,结构化检索、分析以及三种的结合应用。Wikipedia、Guardian、Stack Overflow、Github都在使用Elasticsearch实现自己的相关检索工作。
- 大数据处理实践探索 ---- 之 搜索神器elastic search
- 《读书报告 -- Elasticsearch入门 》---- 安装以及简单使用(1)
- 《读书报告 -- Elasticsearch入门 》---- 简单使用(2)
- 基于elasticsearch的搜索自动纠错
大数据框架 spark
Spark最初诞生于美国加州大学伯克利分校(UC Berkeley)的AMP实验室,是一个可应用于大规模数据处理的快速、通用引擎。2013年,Spark加入Apache孵化器项目后,开始获得迅猛的发展,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(即Hadoop、Spark、Storm)。Spark最初的设计目标是使数据分析更快——不仅运行速度快,也要能快速、容易地编写程序。为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的IO开销;而为了使编写程序更为容易,Spark使用简练、优雅的Scala语言编写,基于Scala提供了交互式的编程体验。虽然,Hadoop已成为大数据的事实标准,但其MapReduce分布式计算模型仍存在诸多缺陷,而Spark不仅具备Hadoop MapReduce所具有的优点,且解决了Hadoop MapReduce的缺陷。Spark正以其结构一体化、功能多元化的优势逐渐成为当今大数据领域最热门的大数据计算平台。
WSL 是 Windows Subsystem for Linux windows下的linux子系统,由于直接在windows 上安装pyspark 跑很多基于linux 的库的机器学习库很费劲,有什么办法是省时省力并且占用资源少的方式呢?相比虚拟机动辄8g 左右的内存占用量,wsl 当然是一个非常好的选择。
数据处理篇
数据接入
数据接入就是对于不同的数据来源、不同的合作伙伴,完成数据采集、数据传输、数据处理、数据缓存到行业统一的数据平台的过程。
数据清洗
数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。在实际操作中,数据清洗通常会占据分析过程的50%—80%的时间。
数据清洗的目的从两个角度来讲:
一、是为了解决数据质量问题
二、是让数据更适合做挖掘、展示、分析
ETL
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
EDA
还有比pandas profiling 更好使的python EDA 工具吗?
经典Titanic 数据集的探索性数据分析报告:
https://pandas-profiling.github.io/pandas-profiling/examples/master/titanic/titanic_report.html
特征工程
特征工程的主要目的是放大数据的价值。有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已
大数据机器学习篇
在大数据领域中,机器学习几乎无处不在,即便我们没有特意引用它们,它们也经常出现在大数据应用中,例如:搜索、推荐、预测和数据挖掘等。随着互联网的高速发展,数据量不断爆发式增长,数据维度越来越丰富,这也为机器学习的发展和应用提供了良好的土壤,机器学习的良好成果也反向让数据产生更大的价值,成为真正的“大数据”,两者相辅相成,相互促进,让数据越来越智能。
算法原理篇
SQL 优化
sql 优化无处不在,核心可以概括为几点:
- 有效使用索引
- 根据查询计划持续优化
- 构建高效的sql 语句
大数据可视化
一图胜千言,视觉传达的信息量带宽远大于文字。
实践案例篇
基于大数据的数据处理
基于大数据的数据分析
使用pyspark 进行kaggle比赛Give me some credit数据集的建模与分析
笔试面试篇
笔试面试题复习的核心要义是什么? 一言以蔽之,基础+原理。
- 大数据基础知识问答
- 笔试面试高频问题 ---- 基础知识
- 笔试面试高频问题 ---- hadoop
- 笔试面试高频问题 ---- Yarn 基础
- 笔试面试高频问题 ---- spark 基本调优
- 笔试面试高频问题 ---- spark 基础
- 笔试面试高频问题 ---- hive 基础
- [笔试面试高频问题 ---- ElasticSearch]()