首页 > 技术文章 > 大数据出行项目实践1

majingyun 2021-06-17 14:48 原文

大数据出行项目实践1

一、项目需求

随着人们对出行的需求日益增加,出行的安全问题,出行的便捷问题等问题日益突出,特别是安全出行是我们每个人都迫切需要的,为了增加出行的便捷,提高出行的安全,对我们乘车的细节以及发生点我们迫切的需要及时知道,为此特地通过大数据的手段来处理我们海量的出行数据,做到订单的实时监控,乘车轨迹的的回放,虚拟打车站的选定等功能。

二、项目效果

1、轨迹回放

2、虚拟车站

上车点儿计算

3、订单监控

一、技术选型

数据的生命周期

数据的产生>数据的存储>数据的存储>计算>应用

1、数据采集

采集框架

主要功能

版本号

Flume

擅长日志数据的采集和分析

1.9.0

还有ELK

2、消息中间件

用的kafka,采用2.6.2版本。对大数据高吞吐量支持最好的框架。

3、数据存储

框架名称

主要用途

版本号

Hadoop

分布式文件存储系统

3.2.2

Hbase

Key,valuenosql数据库

 

4、计算框架

框架名称

基本介绍

版本

Spark

一站式解决批流处理问题

3.1.1

四、日志格式

五、项目架构

六、Scala 基础

1、简介

scala是运行在jvm上的多范式编程语言,同时支持面向对象和面向函数编程。它的主要优势是表达性强。

2、环境搭建

①安装scala sdk

访问地址:https://www.scala-lang.org/download/2.11.8.html,下载安装包,并配置环境变量。

②安装IDEAscala插件

3、scala中声明变量

val定义的是不可重新赋值的变量(值不可修改)

var定义的是可重新赋值的变量(值可以修改)

4、方法和函数

语法:

def methodName (参数名:参数类型, 参数名:参数类型) : [return type] = {

    // 方法体:一系列的代码

}

说明:

  • 参数列表的参数类型不能省略
  • 返回值类型可以省略,由scala编译器自动推断
  • 返回值可以不写return,默认就是{}块表达式的值

主要

  • 如果定义递归方法,不能省略返回值类型

5、方法参数

默认参数:在定义方法时可以给参数定义一个默认值。

带名参数:在调用方法时,可以指定参数的名称来进行调用。

5、函数

语法:val 函数变量名={参数名:参数类型,参数名:参数类型.....}=>函数体

注意

函数是一个变量,长的与方法相似,但不同于方法类似于方法,函数也有输入参数和返回值函数定义不需要使用def定义无需指定返回值类型

6、foreach

7、Map

把参数做一些改变返回新的集合。

def map[B](f: (A) ⇒ B): TraversableOnce[B]

8、Flatmap

9、还有Flitersortreducegroup by

 

推荐阅读