Hive解析任务-将json的多个属性拆分成多条记录

[TOC]

需求环境:

在hive表dwb.dwb_r_thrid_data中,data字段存放有json字符串

查看更多

评论

mac与virtualbox共享文件夹,挂载到docker容器中文件目录权限解决

[TOC]

共享文件夹的权限问题

参考:Virtualbox设置共享文件夹

由于共享文件夹并不是虚拟机的本地目录,我们在虚拟机中可以配置共享文件夹的权限是有限的。

手动挂载或自动挂载的目录,所属用户默认为root,组为vboxsf,并且使用 chmod chown 等命令是无法改变的。

查看更多

评论

Docker-machine的创建,mac宿主机和docker容器网络互通Docker容器与宿主机在同一ip段下

enter description here

此文纯属命令记录,后续更新原理解说

查看更多

评论

ELK-Logstash->kafka->es流程实例

elk流程实例

[TOC]

前言:一般日志收集,我们通过logstash来接入,写入到kafka,再通过logstash将kafka的数据写入到es

那么就通过一个菜的抠脚的实例来看看

LOGSTASH->KAFKA->ES

1.启动logstash将日志写入到kafka

①准备工作创建topic

先创建对应topic,(按照机器配置,集群情况配置,不然默认创建的话,不是最优效果)

查看更多

评论

DataStream DataSet介绍

[TOC]

什么是DataStream

Discretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:

查看更多

评论

SparkSQL使用

[TOC]

//1.读取数据,将每一行的数据使用列分隔符分割

val lineRDD = sc.textFile(“hdfs://bigdata1:9000/person.txt”, 1).map(_.split(“ “))

查看更多

评论

Spark-on-Yarn源码解析(四)Spark业务代码的执行及其任务分配调度stage划分

spark-on-yarn系列

Spark-on-Yarn 源码解析①Yarn 任务解析
Spark-on-Yarn 源码解析②Spark-Submit 解析
Spark-on-Yarn 源码解析③client 做的事情
Spark-on-Yarn 源码解析④Spark 业务代码的执行及其任务分配调度 stage 划分

看看自定义的类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
object WordCount {

def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("yaoWordCount").setMaster("local[2]")
val sc = new SparkContext(conf)
var hadoopRDD: RDD[String] = sc.textFile(args(0))
var hdfsRDD: RDD[String] = hadoopRDD.flatMap(_.split(""))
//单词和出现的次数,构建RDD并且调用了他的Transformation
//返回的是一个hadoopRDD
//transFormation都是返回的RDD
var wordAndCount: RDD[(String, Int)] = hdfsRDD.map((_, 1))
//创建RDD 这里面有两个RDD,一个是hadoopRDD,然后会生成一个paritionRDD
//savaasTextfile还会产生一个RDD,因为会调用mapPartitons
//调用RDD的action 开始真正提交任务
var reducedRDD: RDD[(String, Int)] = wordAndCount.reduceByKey(_ + _)
reducedRDD.saveAsTextFile(args(1))
//关闭saprkContext资源
sc.stop()
}
}

查看更多

评论

Spark-on-Yarn源码解析(三)client做的事情

[TOC]

spark-on-yarn系列

Spark-on-Yarn 源码解析①Yarn 任务解析
Spark-on-Yarn 源码解析②Spark-Submit 解析
Spark-on-Yarn 源码解析③client 做的事情
Spark-on-Yarn 源码解析④Spark 业务代码的执行及其任务分配调度 stage 划分

org.apache.spark.deploy.yarn.Client

话不多说,先上源码,当然还是简洁版本的

这儿我先上一下最简洁的调用链。

Client.main()
    ->new Client().run()
         ->monitorApplication(submitApplication())
            ->submitApplication()
                ->createContainerLaunchContext()会封装一些启动信息如我们启动的类 --class
                    ->userClass
                    ->amArgs
                    ->commands
                    ->printableCommands
                    ->amClass applicationMaster启动的真实类

                ->createApplicationSubmissionContext()
                    ->Records.newRecord(classOf[Resource])启动
                ->yarnClientImpl.submitApplication(appContext)                

查看更多

评论

Spark-on-Yarn源码解析(二)Spark-Submit解析

[TOC]

spark-on-yarn系列

Spark-on-Yarn 源码解析①Yarn 任务解析
Spark-on-Yarn 源码解析②Spark-Submit 解析
Spark-on-Yarn 源码解析③client 做的事情
Spark-on-Yarn 源码解析④Spark 业务代码的执行及其任务分配调度 stage 划分

上文我们了解到了yarn的架构和执行任务的流程,接下来我们看看

spark-submit命令

$SPARK_HOME/bin/spark-submit \
--master yarn \ //提交模式 yarn
--deploy-mode cluster \ //运行的模式,还有一种client模式,但大多用于调试,此处使用cluster模式
--class me.yao.spark.me.yao.spark.WordCount \ //提交的任务
--name "wc" \ //任务名字
--queue root.default \ //提交的队列
--driver-memory 3g \ //为driver申请的内存
--num-executors 1 \ //executors的数量,可以理解为线程数,对应yarn中的Container个数
--executor-memory 6g \ //为每一个executor申请的内存
--executor-cores 4 \ //为每一个executor申请的core
--conf spark.yarn.driver.memoryOverhead=1g \ //driver可使用的非堆内存,这些内存用于如VM,字符 串常量池以及其他额外本地开销等
--conf spark.yarn.executor.memoryOverhead=2g \ //每个executor可使用的非堆内存,这些内存用于如 VM,字符串常量池以及其他额外本地开销等

这是通常我们提交spark程序的submit命令,以此为切入点,对spark程序的运行流程做一个跟踪和分析。

查看更多

评论

Spark-on-Yarn源码解析(一)Yarn任务解析

[TOC]

spark-on-yarn系列
Spark-on-Yarn 源码解析①Yarn 任务解析
Spark-on-Yarn 源码解析②Spark-Submit 解析
Spark-on-Yarn 源码解析③client 做的事情
Spark-on-Yarn 源码解析④Spark 业务代码的执行及其任务分配调度 stage 划分

了解spark-on-yarn,首先我们了解一下yarn提交的流程,俗话说,欲练此功,错了,我们还是先看吧

yarn任务的提交

YARN 的基本架构和工作流程

YARN 的基本架构如上图所示,由三大功能模块组成,分别是 1) RM (ResourceManager) 2) NM (Node Manager) 3) AM(Application Master)

查看更多

评论