[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 ...
随机推荐
- springboot搭建通用mapper
对于搭建一个小项目自己测试玩如果采用传统的SSM框架配置起来太过于繁琐,使用springboot简化配置再搭配通用mapper简直不要太方便,话不多说,直接上代码. 首先是pom文件,直接去sprin ...
- Spring源码剖析2:Spring IOC容器的加载过程
spring ioc 容器的加载流程 1.目标:熟练使用spring,并分析其源码,了解其中的思想.这篇主要介绍spring ioc 容器的加载 2.前提条件:会使用debug 3.源码分析方法:In ...
- freemarker导出复杂样式的Excel
freemarker导出复杂样式的Excel 代码地址: gitee https://gitee.com/suveng/demo/tree/master/chapter.002 代码存放于demo下面 ...
- 实验Oracle数据文件被误删除的场景恢复
环境:RHEL 5.4 + Oracle 11.2.0.3 背景:数据库没有备份,数据库文件被误操作rm,此时数据库尚未关闭,也就是对应句柄存在,如何快速恢复? 1.某个普通数据文件被删除 2.所有数 ...
- 一文了解:Redis主从复制
Redis主从复制 主从复制 主从复制,将一台Redis服务器的数据,复制到其他Redis服务器.前者称为主(master)节点,后者称为从(slave)节点 . 在默认的情况下,Redis都是主节点 ...
- unityshader(属性)
_Color("Color",Color)=(1,1,1,1)//RGBA _Vector("vector",Vector)=(1,2,3,4) //,fixe ...
- Servlet 常用API学习(三)
Servlet常用API学习 (三) 一.HTTPServletRequest简介 Servlet API 中定义的 ServletRequest 接口类用于封装请求消息. HttpServletRe ...
- 用webpack构建一个常规项目,好处和坏处分析
最近项目改版,用webpack重新架构. 些许心得我会写几篇记录一下. 好处如下: 1.ES6语法用起来,babel-loader转义,各种新语法用起来. 2.import 语法写起来,webpack ...
- 我的MarkDown入门
目录 0.前言 1.软件准备 2.基本语法 2.1斜体&加粗 2.2分级标题 2.3分割线 2.4超链接 2.5列表 2.6引用 2.7插入代码 2.8插入图像 2.9插入表格 2.10目录 ...
- Cycone IV的DDR2硬件设计前验证
打算使用Cyclone IV的FPGA挂DDR2,按照流程,先使用Quartus跑IP,跑引脚分配,综合OK了再设计硬件,这部分主要是DM和DQS信号比较头疼,研究了好久才找到方法. 在Intel官网 ...