spark

 

批处理步骤

1构建spark环境  2数据处理  3存储计算结果

hbase key value数据库 

hive  结构化数据库

 实现spark一致性语义   需要spark自己管理kafka的offset

redis  存offset  再把offset取出来

 

 hmaster 协调者用于通信   hregionserver  工作者  dataNode   存储的部分

 

 

 

 

 

 

在conf文件中连接hadoop和zookeeper

 

 

 

 

 

 

 

 spark streaming具备天然的eos ss checkpoint机制来保证kafka数据不丢失

 

tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止

tail -F     等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

tailf        等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电

最好用tail-F

 

 把任务提交到spark上 分为几种模式  mesos(Apache项目 国外用的多)  standalone(spark自己实现的资源调度平台)  yarn(国内用的多)

为什么用yarn    hadoop flink   spark都用的是yarn   方便集中管理

 

 spark计算平台   yarn资源调度平台

client端在driver里面 的       am applicationMaster   spark和yarn之间的代理人   rs  rresourcemanager

 

 先把hadoop下载下来

 

 vim  core-site.yml

 

 

 

 通过xsync hadoop把hadoop分发到另外两个集群上

 启动

./sbin/start-dfs.sh

 再通过start-all.sh全部启动起来

 hdfs  分布式的文件系统  

 

 

 

 

resource manager    nodeManager   yarn中的节点   以 进程的形式存在

secondarynamenode   hdfs中做元数据同步的节点

datanode  namenode  hdfs里面的节点

hadoop安装好就意味着yarn安装好

master和worker都启动好了代表spark启动成功    从节点也是一样

 

 

 spark  也可以通过xsync 同步集群   再通过start-all.sh启动

 

 

s

 临时环境

 

 

context 

 

 

 

 

 

 

 

 

 

flume 日志收集     消息中间件 kafka 缓存  流式处理 消费收集的gps数据  储存 redis

flume 将日志输送到kafka的工具

 flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。

 

 Client:Client生产数据,运行在一个独立的线程。

  Event: 一个数据单元,消息头和消息体组成。(Events可以是日志记录、 avro 对象等。)
  Flow: Event从源点到达目的点的迁移的抽象。
  Agent: 一个独立的Flume进程,包含组件Source、 Channel、 Sink。(Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含

      多个sources和sinks。)
  Source: 数据收集组件。(source从Client收集数据,传递给Channel)
  Channel: 中转Event的一个临时存储,保存由Source组件传递过来的Event。(Channel连接 sources 和 sinks ,这个有点像一个队列。)(Memory Channel、JDBC Chanel、File Channel,etc)
  Sink: 从Channel中读取并移除Event, 将Event传递到FlowPipeline中的下一个Agent(如果有的话)(Sink从Channel收集数据,运行在一个独立线程。)

 

 

 

cd /conf

 

 

 启动flume 

 

 

 

 将gps文件(1.4g)实时放到另一个文件中  flume实时监听到有哪些文件过来

 

 

 

 

 

 发送到kafka的问题

 

1 producer 设置ack=-1  broker清理日志 避免follower没有跟上leader的数据

2pid topic partition --seqnum  键值对    seqnum没变,传到broker的数据不变  如果pid在重启之后product id改变了   则为一条新数据

producer   broker   sparkstreaming   consumer

(用1+2)

 消费者 --保证事务不丢失,在broker--consumer之后消费

 

broker还没有到consumer消息就丢失了

 

 

 checkpoint没有从kafka拿数据  checkpoint有从checkpoint拿数据

 

 app

 

 

 

 

 

 

拿到redis数据后 kafka初始化

 ----

 

 -----------------

 

 

 

 

 

 

 

 

 

 ------------------------------------------------------------------------

编译出现问题 -版本问题

 

 

 

posted @ 2021-10-04 01:08  悬崖听风098  阅读(127)  评论(0编辑  收藏  举报