Skip to content

Latest commit

 

History

History
253 lines (192 loc) · 6.43 KB

华盛顿大学大数据课程总结.md

File metadata and controls

253 lines (192 loc) · 6.43 KB

经过这个课程的学习,你将会掌握

  1. Describe the Big Data landscape including examples of real world big data problems and approaches.
  2. Identify the high level components in the data science lifecycle and associated data flow. Explain the V’s of Big Data and why each impacts the collection, monitoring, storage, analysis and reporting, including their impact in the presence of multiple V’s.
  3. Identify big data problems and be able to recast problems as data science questions.
  4. Summarize the features and significance of the HDFS file system and the MapReduce programming model and how they relate to working with Big Data.

大数据可以为我们带来什么?

  1. 个人购物体验
  2. 推荐系统(amazon)
  3. 评论情感分析
  4. 移动广告
  5. 顾客消费行为
  6. 生物医学(biomedical)
  7. 个人癌症治疗
  8. 智慧城市
  9. 等等

大数据的特征

  1. 容量大(Volume)
  2. 样式多(Variety)
  3. 速度快(Velocity)
  4. 真实性(Veracity)
  5. 原子性(Valence) == 连接性
  6. 价值性(Value)

大数据分析流程

  1. 获取数据
  2. 探索数据
  3. 预处理数据
  4. 分析数据
  5. 报道发现的信息
  6. 将发现的信息转换成行动

为什么我们需要担心基础设施

  1. 什么是分布式文件系统
  2. mapreduce(分治算法)

使用hadoop分布式系统(HDFS,YARN,MapReduce)

  1. 灵活性
  2. 容忍性
  3. 优化不同的数据
  4. 利用共享数据
  5. 提供价值

YARN(scheduler and resource manager)

Pig=dataflow scripting

Hive=sql-like queries

Giraph是脸书的分析社交图的工具


安装hadoop

  1. 安装virtualboxvirtualbox

  2. 下载镜像cloudera-quickstart

  3. 解压镜像,导入�镜像

hadoop的�操作

hadoop fs -copyFromLocal
hadoop fs -ls
hadoop fs -copyToLocal
hadoop fs -cp
hadoop fs -rm

examples 统计单词个数

hadoop jar /usr/jars/hadoop-examples.jar wordcount words.txt out

然后将产生的out文件拷贝到本地

hadoop fs -copyToLocal out/part-r-00000 local.txt

大数据的必须要解决的问题

  1. 数据导入
  2. 数据存储
  3. 数据的质量
  4. 数据操作
  5. 数据安全

数据模型

  1. 结构性数据

    • 关系型数据
    • 半关系型数据(树结构模型 比如 json xml)
  2. 非结构性数据

学会使用excel来探索数据,包括画图,统计,但是一旦数据非常大,使用此方法是不可行的,于是需要通过大数据分析工具来进行探索

向量空间模型

  1. tf-idf模型(tf为词的出现频率,idf是词的重要性程度 log2(文本数/当前词出现的次数))
    • 便于计算cos函数,用来计算两个文本的相似程度
  2. 图模型

什么是数据流

- 类似管道
- 采集传感器数据或者实时的网络数据

数据存储

- 数据在早期是以文件的形式存储
- 后来是DBMS

DBMS优点

- 定义了查询语言
- 数据隔离
- 存取优化
- 数据完整性
- 并发存取
- 并行计算以及分布式

from DBMS到BDMS

- 一种半结构化数据模型
- 支持`大数据模型`
- 支持数据查询语言

- redis 一个键值对内存数据库
- aerospike 一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库
- AsterixDB(MongoDB) 大数据管理系统 (BDMS),可以在一个集群中大规模存储,索引,管理和查询语义结构的数据
- Solr 全文检索引擎
- Vertica是一款基于列存储的MPP (massively parallel processing)架构的数据库

数据处理

大数据模型

 - 关系型数据模型
 - 半结构化数据模型(XML、JSON)
 - 图模型(社交网络、邮件网络)
 - 文本数据模型
 - 流动数据模型(股票数据)

BDMS

- 设计并行的、分布式的处理模型
- 不能保证每次更新都是不变的
- 经常建立在hadoop上
数据获取
- 操作postgres数据库
- 操作mongodb数据库(db.collection.find(...))
    - ./mongodb/bin/mongod --dbpath db(打开数据库)
    - ./mongodb/bin/mongo (运行mongodb的终端)
    - db.users.distinct() 查找不同的键
    - db.users.find({user_name:''},{tweet_id:1} 表示只显示tweet_id的值

- 使用pandas来获取数据

- 操作Aerospike(内存数据库)

信息融合系统

- 信息融合是一种多层次的、多方面的处理过程,这个过程是对多源数据进行检测、结合、相关、估计和组合以达到精确的状态估计和身份估计的系统
- splunk(机器数据�引擎)
- 学会使用splunk

�数据流处理

- split-do something reduce
- transformation
- aggregation

大数据分析

- 发现数据中的趋势或者规则
- 得到数据的隐含信息
- 分类
- 聚类
- 路径分析(Cypher on neo4j)
- 关联分析
- 社交分析(Cypher on neo4j)
- 回归

大数据平台使用spark

- hadoop不行了,只支持mr算法
- 学会使用pyspark
    - �sc.textFile
    - lines.flatMap
    - words.map
    - reduceByKey
    - counts.coalesce(1).saveAsTextFile()

- 创建RDD (弹性分布)
    - sc.textFile
    - sc.parallelize()
- spark核心
    - map
    - flatMap
    - filter
    - coalesce
    - groupByKey (k,v)->(k,list of v)
    - reduceByKey (k,v)->(k,[v]的操作)
- spark的SQL
    - `from pyspark.sql import SQLContext`
- spark的streaming
    - Kafka
    - Flume
    - HDFS
    - S3
    - Twitter
    - Socket
    - and ...etc
- spark的ML库
    - 分类
    - 分析
    - 工具(降维,转换)
    - `from pyspark.mllib.stat import Statistics`
- spark的GraphX库
    - 是图的计算工具
    - 使用了特殊的RDDs

大数据中的机器学习

- 分类
- 回归
- 聚类
- crisp-dm(跨行业数据挖掘标准流程)
- KNIME (eclipse中的数据分析工具)
- MLlib

图论算法

- 在社交网络中,图论算法是非常重要的算法,无所不在
- 将现实中的问题转换成数学中的模型问题

使用Neo4j来进行图论分析