[DE] How to learn Big Data
打开一瞧:50G的文件!
- emptystacks
- jobstacks
- jobtickets
- stackrequests
- worker
大数据加数据分析,需要以python+scikit,sql作为基础,大数据框架作为载体。
大数据的存放:S3 Browser
一、大数据存放
Please note that Worker (worker parquet files) has one or more job tickets (jobticket parquet files) associated with it.
Using these parquet files:
1. Is there a co-relation between jobticket.jobTicketState, jobticket.clickedCalloff and jobticket.assignedBySwipeJobs values across workers.
2. Looking at Worker.profileLastUpdatedDate values, calculate an estimation for workers who will update their profile in the next two weeks.
二、大数据文件
Sol: Spark2.0入门:读写Parquet(DataFrame)
Parquet files
part-00178-88b459d7-0c3a-4b84-bb5c-dd099c0494f2.c000.snappy.parquet
如何操作:
Sol: Spark2.0入门:读写Parquet(DataFrame)
Ref: Spark SQL 官方文档-中文翻译 【有读取文件的例子】
什么原理:
Ref: Parquet
Ref: [翻译] Dremel made simple with Parquet
Ref: 深入分析Parquet列式存储格式
结论:
Hive集群搭建,然后生成Parquet文件,之后才谈得上分析。
典型案例
让我们再瞧一个实际的“不得不大数据"的例子。
市场需求:
最近在做一个人群标签的项目,也就是根据客户的一些交易行为自动给客户打标签,而这些标签更有利于我们做商品推荐,目前打上标签的数据已达5亿+,
用户量大概1亿+,项目需求就是根据各种组合条件寻找标签和人群信息。
举个例子:
集合A: ( 购买过“牙膏“的人交易金额在10-500元并且交易次数在5次的客户并且平均订单价在20 -200元) 。
集合B: (购买过“牙刷”的人交易金额在5-50 并且交易次数在3次的客户并且平均订单价在10-30元)。
求:<1> 获取集合A 交 集合B 客户数 和 客户的具体信息,希望时间最好不要超过15s。
上面这种问题如果你用mysql做的话,基本上是算不出来的,时间上更无法满足项目需求。
方案选择:
分布式的Elasticsearch集群?
查询中相关的Nick,AvgPrice,TradeCount,TradeAmont字段可以用keyword模式存储,避免出现fieldData字段无法查询的问题:
- 虽然ES大体上可以解决这个问题,但是熟悉ES的朋友应该知道,它的各种查询都是我们通过json的格式去定制,虽然可以使用少量的script脚本,但是灵活度相比spark来说的话太弱基了,用scala函数式语言定制那是多么的方便,
- 第二个是es在group by的桶分页特别不好实现,也很麻烦,社区里面有一些 sql on elasticsearch 的框架,大家可以看看:https://github.com/NLPchina/elasticsearch-sql,只支持一些简单的sql查询,不过像having这样的关键词是不支持的,跟sparksql是没法比。
基于以上原因,决定用spark试试看。
环境搭建:
搭建spark集群,需要hadoop + spark + java + scala,搭建之前一定要注意各自版本的对应关系!!!
采用的组合是:
- hadoop-2.7.6.tar.gz
- jdk-8u144-linux-x64.tar.gz
- scala-2.11.0.tgz
- spark-2.2.1-bin-hadoop2.7.tgz
- jdk-8u144-linux-x64.tar.gz
- mysql-connector-java-5.1.46.jar
- sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
使用3台虚拟机:
一台【namenode +resourceManager + spark master node】
二台 【datanode + nodeManager + spark work data】
192.168.2.227 hadoop-spark-master
192.168.2.119 hadoop-spark-salve1
192.168.2.232 hadoop-spark-salve2
使用python对spark进行操作:
之前使用scala对spark进行操作,使用maven进行打包,用起来不大方便;
采用python还是很方便的,大家先要下载一个pyspark 的安装包,一定要和spark的版本对应起来。 pypy官网:https://pypi.org/project/pyspark/2.2.1/
/* 可以考虑一下 */
Amas大数据监控平台
有没有什么全栈的解决方案呢?
基于大数据平台技术开发的统一监控平台Amas开源项目核心开发者。
GitHub: https://github.com/amas-eye/amas
技术栈
编程语言:
(Backend)Python
(Web)Javascript
Web服务:
Vue, ECharts, Webpack
Express(NodeJS)
后台服务:
HBase, OpenTSDB, MongoDB, Redis
Spark, Kafka...
Jagger, Tornado
Pandas, Scikit-learn
Docker, Swarm
大数据的处理:Data Pipeline
一、公司示例
相关公司:https://matrix.ai/consulting/
Big Data Infrastructure
Matrix AI doesn't just build the machine learning models, we also build the underlying big data cloud infrastructure!
We use Docker to encapsulate software components called microservices. These microservices are composed together into a data processing pipeline which feeds data from production systems to our machine learning training and inference architecture. This data processing pipeline gets orchestrated via distributed cluster computing systems like Dask and Kubernetes. Tensorflow is used to train our neural network models. The entire architecture is then deployed onto cloud platforms like AWS.
二、Data Pipeline
具体详情,参见:[DE] Pipeline for Data Engineering
大数据的学习套路
看过以上的例子,自然便引出一个问题,如何系统地掌握数据分析的技能?
一、常见问题
Link: 大数据学习路线图
至于另一个问题,data science and machine learning什么区别?
个人的一个感觉,前者更加注重实践性,后者偏重理论。
学习python
在数据量不大的情况下(几个G),单机上就可以很好跑机器学习的程序。
这时,Python的用途就很大,不仅有已经实现好的算法,也可以实现爬虫,从网上获取数据。
学习Scala和函数式编程
对于大数据处理来说,尤其是几十个G的数据,Spark和Scala结合是现在的大趋势。
二、IBM资源
Ref: 大数据分析基础博文
4. 使用 Spark MLlib 做 K-means 聚类分析
从官方文档来看,Spark ML Pipeline 虽然是被推荐的机器学习方式,
但是并不会在短期内替代原始的 MLlib 库,
因为 MLlib 已经包含了丰富稳定的算法实现,并且部分 ML Pipeline 实现基于 MLlib。
看到这里,还是厦门大学的这个资料比较全,学习系统,所以,走起!
三、厦门大学资源
入门学习
课程:大数据技术原理与应用
教材:《大数据技术原理与应用》
进阶学习
1.受众对象
具备一定的大数据基础知识,比如,已经学习过林子雨编著的《大数据技术原理与应用》教材;
2.资源列表
(1)纸质教材:《Spark编程基础》(官网)
(2)在线教程:《Spark入门教程(Scala版)》(访问)
(3)在线教程:《Spark入门教程(Python版)》(访问)
(4)视频:《Spark编程基础》MOOC视频(2018年2月和纸质教材同步发布)
(5)案例1:淘宝双11数据分析与预测(访问)
(6)案例2: Spark+Kafka构建实时分析Dashboard(访问)
3.学习路线
(1)步骤一:参照《Spark编程基础》纸质教材(官网),或者参照《Spark入门教程(Scala版)》在线教程(访问),并观看《Spark编程基础》MOO视频(2018年2月发布),完成Spark技术原理与编程方法的学习。
(2)步骤二:完成《Spark编程基础》全书内容学习以后,可以练习Spark课程实验“案例1:淘宝双11数据分析与预测”(访问)和“案例2: Spark+Kafka构建实时分析Dashboard”(访问),对所学知识进行体统“串联”,融会贯通。
4.其他说明
(1)如果读者是教师,可以访问《Spark编程基础》教材官网(访问),里面提供了讲义PPT、实验题目答案、教学大纲等资源的下载。
(2)《Spark编程基础》教材官网(访问)里面提供了很多纸质教材上没有的上机实验指导内容。
四、Material Dashboard
数据可视化(远程):在PyTorch中使用 Visdom 可视化工具
北美大数据面试资源
阅读笔记
数据科学家类型
- Comunication 理解和表达
- Intuition 找到数学表达, feature engineering, 新问题
- Reasoning 算法实现强
实践资源:kaggle, LeetCode, HackerRank, ProjectEuler, Sciket-learn.
二、职位技能要求
Spark 大数据开发工程师(上海)
Software Data Engineer – Big Data
My client wants to reward a high performing Software Data Engineer proficient on Spark and Scala and Hadoop with experience coding on R or Python or Java. You will be working in a fast paced environment. You will be joining and existing team environment as a project kicks off.
Your Benefits:
Immediate full time contract role
Melbourne CBD location close to public transport
3 months + 3 month extension
Your Role:
Data modelling, analysis and machine learning.
Relate data to analytical questions and frame the data engineering work to solve those business problems
Experience with at least 1 of the following for transforming data in scala, python or R
Experience with source control, automated testing and continuous integration/deployment
Designing and building relational and non-relational data stores (such as HDFS or Cassandra)
You will need to have:
Demonstrated experience working on big data tools such as Spark is essential.
Other ideal experience in SQL, Hadoop, HBase, Cassandra, Kafka, Nifi
Proven experience programming in Scala using RDDs, Dataframe and API’s for building the spark application
Experience manipulating and analysing complex, high-volume, high dimensionality data from varying sources
Excellent communication and stakeholder management skills
Proven experience managing a team and holding leadership roles.
Proven experience across data warehousing and reporting platforms
Hadoop or Spark certification (preferred but not essential)
Proven experience working in an agile environment
Current full Australian working rights (no sponsorship)
Must be available immediately
You will need to draw on your strong coding skills in this professional, intelligent data-driven environment.
[DE] How to learn Big Data的更多相关文章
- DeepDB:Learn From Data,not from Queries!
ABSTRACT DBMS典型学习方法的弊端:手机数据集的成本过高;工作方向或数据库发生改变时,必须重新收集数据.--------------解决:提出了一种新的数据驱动方式,直接支持工作负载和数据库 ...
- [AI] 深度数据 - Data
Data Engineering Data Pipeline Outline [DE] How to learn Big Data[了解大数据] [DE] Pipeline for Data Eng ...
- How do I learn machine learning?
https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644 How Can I Learn X? ...
- Toward Scalable Systems for Big Data Analytics: A Technology Tutorial (I - III)
ABSTRACT Recent technological advancement have led to a deluge of data from distinctive domains (e.g ...
- Learning Core Data 1
What is Core Data? If you want to build anything beyond the most simplistic apps for iOS, you’ll nee ...
- TF.Learn
TF.Learn 手写文字识别 转载请注明作者:梦里风林Google Machine Learning Recipes 7官方中文博客 - 视频地址Github工程地址 https://githu ...
- Google机器学习笔记(七)TF.Learn 手写文字识别
转载请注明作者:梦里风林 Google Machine Learning Recipes 7 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...
- How to use data analysis for machine learning (example, part 1)
In my last article, I stated that for practitioners (as opposed to theorists), the real prerequisite ...
- [Windows Azure] Data Management and Business Analytics
http://www.windowsazure.com/en-us/develop/net/fundamentals/cloud-storage/ Managing and analyzing dat ...
随机推荐
- .Net Core 三大Redis客户端对比和使用心得
前言 稍微复杂一点的互联网项目,技术选型都可能会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多, 下面三款常见的Redis客户端,相信大家平时或多或少用 ...
- centos6在安装wdcp以后,导入MySQLdb报错问题
为了方便linux的使用,会先安装好wdcp对服务器进行管理.在装好wdcp会对一些nginx,mysql等自动安装,但是mysql的安装目录会在/www/wdlinux这个目录下,跟一般的mysql ...
- Nacos整合Spring Cloud Gateway组件
一.什么是Spring Cloud Gateway Spring Cloud Gateway是Spring Cloud官方推出的网关框架,网关作为流量入口有着非常大的作用,常见的功能有路由转发.权限校 ...
- Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送
idMessage / idSMTP 首先对idMessage类的各种属性进行赋值(邮件的基本信息,如收件人.邮件主题.邮件正文等),其次通过idSMTP连接邮箱服务器,最后通过idSMTP的Send ...
- 页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RefTopicList.asp ...
- redis 原理系列之--字符串存储的实现原理(1)
背景 redis功能强大,几乎已经成了现代大中型服务必备的缓存技术了. 除了十分给力的缓存功能,redis当做消息队列,数据库也有着不错的表现. 我们都知道,redis 有五种数据类型,string, ...
- tabBar的内部控件
大体来说tabBar的内部其实除了UITabBarButton还有两个UIImageView 1.两个UIImageView是我们访问不到的,_UITabBarBackgroundView继承自UII ...
- tit文件的加密解密
加密 # hello 源文件 # ifmmp 加密 # hello 解密 file = open("Email.txt","r") # 源文件 只针对字符不需要 ...
- P3810 【模板】三维偏序(陌上花开)cdq分治
传送门:https://www.luogu.org/problemnew/show/P3810 cdq分治的模板题,第一层外部排序,第二层cdq归并排序,这个时候不用考虑第一次的顺序,第三次用树状数组 ...
- poj3666 Making the Grade(基础dp + 离散化)
Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...