[DE] How to learn Big Data

打开一瞧:50G的文件!html

  • emptystacks
  • jobstacks
  • jobtickets
  • stackrequests
  • worker

大数据加数据分析,须要以python+scikit,sql做为基础,大数据框架做为载体。java

 

 

大数据的存放:S3 Browser


1、大数据存放

Please note that Worker (worker parquet files) has one or more job tickets (jobticket parquet files) associated with it.node

Using these parquet files: python

1. Is there a co-relation between jobticket.jobTicketState, jobticket.clickedCalloff and jobticket.assignedBySwipeJobs values across workers.mysql

2. Looking at Worker.profileLastUpdatedDate values, calculate an estimation for workers who will update their profile in the next two weeks.linux

 

2、大数据文件

Sol: Spark2.0入门:读写Parquet(DataFrame)github

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文件,以后才谈得上分析。

 

典型案例

让咱们再瞧一个实际的“不得不大数据"的例子。

----  spark集群搭建整理之解决亿级人群标签问题

  

市场需求:

最近在作一我的群标签的项目,也就是根据客户的一些交易行为自动给客户打标签,而这些标签更有利于咱们作商品推荐,目前打上标签的数据已达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字段没法查询的问题:

    1. 虽然ES大致上能够解决这个问题,可是熟悉ES的朋友应该知道,它的各类查询都是咱们经过json的格式去定制,虽然可使用少许的script脚本,可是灵活度相比spark来讲的话太弱基了,用scala函数式语言定制那是多么的方便,
    2. 第二个是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:基于大数据平台技术开发的统一监控平台

基于大数据平台技术开发的统一监控平台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


1、公司示例

相关公司: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 KubernetesTensorflow is used to train our neural network models. The entire architecture is then deployed onto cloud platforms like AWS.

 

2、Data Pipeline

具体详情,参见:[DE] Pipeline for Data Engineering

  

 

 

大数据的学习套路


看过以上的例子,天然便引出一个问题,如何系统地掌握数据分析的技能?

 

1、常见问题

Link: 大数据学习路线图

至于另外一个问题,data science and machine learning什么区别?

我的的一个感受,前者更加注重实践性,后者偏重理论。

 

Ref: 个人Machine Learning学习之路

学习python

在数据量不大的状况下(几个G),单机上就能够很好跑机器学习的程序。
这时,Python的用途就很大,不只有已经实现好的算法,也能够实现爬虫,从网上获取数据。

学习Scala和函数式编程

对于大数据处理来讲,尤为是几十个G的数据,Spark和Scala结合是如今的大趋势。

 

2、IBM资源

Ref: 大数据分析基础博文

1. 使用 Scala 语言开发 Spark 应用程序

2. 使用 Kafka 和 Spark Streaming 构建实时数据处理系统

3. 使用 Spark SQL 对结构化数据进行统计分析

4. 使用 Spark MLlib 作 K-means 聚类分析

从官方文档来看,Spark ML Pipeline 虽然是被推荐的机器学习方式,

可是并不会在短时间内替代原始的 MLlib 库,

由于 MLlib 已经包含了丰富稳定的算法实现,而且部分 ML Pipeline 实现基于 MLlib。

5. 使用 ML Pipeline 构建机器学习工做流

6. 基于 Spark ML 的文本分类

 
 
看到这里,仍是厦门大学的这个资料比较全,学习系统,因此,走起!

 

3、厦门大学资源

入门学习

教材:《大数据技术原理与应用》

 

进阶学习

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编程基础》教材官网(访问)里面提供了不少纸质教材上没有的上机实验指导内容。

 

4、Material Dashboard

数据可视化(远程):在PyTorch中使用 Visdom 可视化工具

 
 
 
 

北美大数据面试资源

 阅读笔记 

 

 数据科学家类型 

    • Comunication 理解和表达
    • Intuition 找到数学表达, feature engineering, 新问题
    • Reasoning 算法实现强

 

实践资源:kaggle, LeetCode, HackerRank, ProjectEuler, Sciket-learn.

 

 

2、职位技能要求

Spark 大数据开发工程师(上海)

岗位职责:
一、有一年以上大数据开发经验、熟悉 Hadoop 平台;
二、熟悉用 Scala 作 Spark Streaming 和 Spark MLlib 的相关开发;
三、熟悉 Java,有过 Java 架构师经验;
四、熟悉 NoSQL(HBase/Redis),有过 HBase/Hive 调优优先;
五、有系统设计经验;
六、较好的沟通理解能力,性格乐观,态度踏实,积极上进。
 
岗位要求:
一、根据需求规划、设计、构建大型数据分析应用平台;
二、基于 Spark Streaming 和 Spark MLlib 完成数据挖掘和机器学习的工做;
三、用 Scala 语言开发应用程序及平台框架;
四、根据需求使用 Spark Streaming、Spark SQL 进行数据处理、查询,统计等工做
 
 

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. 


 
End.
相关文章
相关标签/搜索