自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lestat.Z.的博客

You Know Nothing.

  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 为什么建议在Spark中使用Scala定义UDF

虽然在Pyspark中,驱动程序是一个python进程,但是它创建的SparkSession对象以及其他DataFrames或者RDDs等都是利用Python封装过的 JVM对象 。简单地说,虽然控制程序是Python,但它实际上是python代码告诉集群上的分布式Scala程序该做什么。 数据存储在JVM的内存中,并由Scala代码进行转换。将这些对象从JVM内存中取出并将它们转换为Pytho...

2019-03-19 15:36:37 5069 3

原创 关于Spark Dataset API中的Typed transformations和Untyped transformations

文章目录前言关于Dataset关于Dataset APITyped and Un-typed APIs关于TransformationsTyped transformations vs Untyped transformations总结参考资料前言学习Spark源代码的过程中遇到了Typed transformations和Untyped transformations两个概念,整理了以下相关...

2019-03-17 19:37:03 2422

原创 ETL工具Talend最佳实践

文章目录前言最佳实践前言和Talend这款软件打交道有一段时间了,主要用它来做一些ETL相关的作业开发,以下总结了一些自己开发配置与过程中的最佳实践。最佳实践可以通过修改Talend Studio 的 .ini 配置文件来给其分配更多的内存,例如,以下是我在64位8GB内存的电脑配置的参数-vmargs -Xms2014m -Xmx4096m -XX:MaxPermSize=...

2019-03-01 21:23:45 8407 2

原创 关于Spark中的常见问题及解决方法(6) —— Executor OutOfMemoryError或Executor Unresponsive

前言有时候即使Executor出现 OutOfMemoryError或 Unresponsive的问题,Spark应用程序也能自动从中恢复,但这取决于问题背后的具体原因。主要症状Executor日志中出现OutOfMemoryErrors或者GC相关的错误.。 可以在Spark UI中找到类似信息。Executor崩溃或无响应。某些节点上的任务执行缓慢,看起似乎永远无法恢复。可能的...

2019-03-31 12:21:57 1038

原创 关于Spark中的常见问题及解决方法(5) ——Driver OutOfMemoryError或Driver Unresponsive

前言Driver OutOfMemoryError或Driver Unresponsive是一个非常严重的问题,因为它会使我们的Spark应用程序崩溃。 但这类问题也经常发生,因为Driver 收集了太多的数据回到驱动程序,使其内存不足。主要症状Spark应用程序无应答或者崩溃Driver日志中出现OutOfMemoryErrors或者GC相关的错误.互动性非常低或根本不存在。驱动程...

2019-03-30 11:11:47 993

原创 关于Spark中的常见问题及解决方法(4) —— Join操作

前言Join和Aggregation操作都可能引起Shuffle,所以这类问题一般具有相似的症状和解决办法。主要症状Join stage可能一直在运行,它可能包含一个或者多个task。该Join stage前后的stage看起来一切正常。可能的解决方法许多Join可以被手动或自动)优化到其他类型的连接。尝试不同的连接顺序也许可以发现较快连接组合,特别是当其中一些连接过滤掉...

2019-03-30 10:30:16 1160

原创 关于Spark中的常见问题及解决方法(3) —— Aggregations操作

前言如果你程序中的聚合速度较慢,请先查看 Spark Stragglers/任务执行缓慢部分。主要症状在执行 groupby 操作时,任务执行缓慢聚合操作的后序操作也很缓慢可能的原因这类问题并没有固定的解决方法。 有时候,由于作业中的数据有一些偏斜的键(即数据倾斜),导致作业执行缓慢。可能的解决方法在聚合之前增加分区数量可能有助于减少每个任务中处理的不同键的数量。增加Exe...

2019-03-30 10:14:04 215

原创 关于机器学习的推荐书单

想要学习的机器学习的朋友,可以看看下面这些书。对于初学者来说,我个人还是强烈推荐李航老师的《统计学习方法》。具体推荐书单如下:序号书名1李航.统计学习方法2机器学习及其应用3All of Statistics - A Concise Course in Statistical Inference - Larry Wasserman - Springer...

2019-03-29 21:48:02 1053 1

原创 i-Shanghai无法跳转登陆页面/登陆页面打不开的解决方法

记得之前连接i-Shanghai时都能自动弹出登陆页面,但是最近使用时,虽然登陆页面能够弹出,但是该页面并不能正常打开。检查了一下,原来是因为之前设置了DNS,导致域名解析失效。解决步骤如下:在网络设置中,删掉自定义的DNS配置并保存。断开i-Shanghai重新连接i-Shanghai...

2019-03-27 10:57:01 6356

原创 关于Spark中的常见问题及解决方法(2) ——Stragglers/任务执行缓慢

文章目录前言主要症状可能的原因可能的解决方法总结参考资料前言在优化应用程序时,这类问题非常常见,大多数时候可能是由于Tasks在集群上不均匀分,数据倾斜,或者某台计算节点的性能比其的差(例如,硬件上的性能劣势)。主要症状某一个task卡主导致后续的stage无法启动Spark UI在观察到对于同一个数据集的作业,某些tasks总是执行缓慢。增加更多的executor并不能解决问题,某...

2019-03-27 10:20:38 2773

原创 关于Spark中的多任务并发处理(Concurrency)

文章目录Spark中的多任务处理一个顺序作业的例子一个有缺陷的并发作业的例子一个优化过的并发作业的例子参考资料Spark中的多任务处理Spark的一个非常常见的用例是并行运行许多作业。 构建作业DAG后,Spark将这些任务分配到多个Executor上并行处理。但这并不能帮助我们在同一个Spark应用程序中同时运行两个完全独立的作业,例如同时从多个数据源读取数据并将它们写到对应的存储,或同时...

2019-03-26 15:57:00 2999

原创 关于Spark中的常见问题及解决方法(1)

对于Spark的故障排除,很多因素都可能会影响Spark作业,我们无法涵盖所有内容。 但我们可以讨论一些更常见的Spark问题。Spark作业无法启动这个问题经常出现,特别是当我们刚开始使用新的部署或环境时。主要症状Spark作业无法启动除了驱动程序之外,Spark UI不会显示群集上的任何节点。Spark UI显示的信息好像不正确。可能的原因分析这种情况通常发生在群集或应用程...

2019-03-26 14:20:15 1901

原创 关于SparkSession

关于SparkSession任何Spark程序的第一步都是先创建SparkSession。在Spark-Shell或者其他交互模式中,SparkSession已经预先被创建好了,但在正常编写的Spark程序中,我们必须手动创建SparkSession。在一些遗留的Spark代码中,我们一般使用 new SparkContext 这种模式。但在新的Spark版本中,我们应该避免使用这种模式,尽量...

2019-03-26 11:14:59 1875

原创 关于Spark RDD API中的Checkpointing

文章目录什么是Checkpointing为什么使用Checkpointing哪些RDD需要使用CheckpointingCheckpointing和Cache的区别参考资料什么是CheckpointingCheckpointing可以将RDD从其依赖关系中抽出来,保存到可靠的存储系统(例如HDFS,S3等), 即它可以将数据和元数据保存到检查指向目录中。 因此,在程序发生崩溃的时候,Spark...

2019-03-25 18:42:21 68

原创 Mac上搭建Hadoop环境(3) — Hive下载及安装

前言之前已经完成了hadoop集群的安装,测试了HDFS的使用,现在准备在此基础上,继续安装Hive。Hive安装在Mac上我们可以利用Homebrew进行Hive的快速安装brew update;brew install hive;日志如下Lestats-MBP:~ lestat$ brew install hive==> Installing dependencies ...

2019-03-24 19:38:06 2050

原创 Mac上搭建Hadoop环境(2) — Hadoop下载及安装

文章目录前言下载hadoop安装hadoop配置hadoophadoop-env.shyarn-env.shslaves更新*.xml配置文件core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml将hadoop复制到slave1和slave1上修改slave上的hadoop-env.sh和yarn-env.sh中的JAVA_HOME值添加had...

2019-03-24 10:11:49 3276 1

原创 Mac上搭建Hadoop环境(1) — 虚拟机的安装及SSH免密设置

文章目录前言准备工作安装虚拟机虚拟机网络设置设置静态ip更新hosts文件设置SSH免密测试前言准备在自己的MBP上搭建一个小的Hadoop集群玩玩,顺便看看会遇到什么坑。初步打算设置三个节点,其中将MBP设置为master节点,另外用虚拟机创建两个slave节点。第一步的主要任务有:创建2个虚拟机设置静态ip设置ssh免密登陆准备工作Mac OS Sierra 10.12....

2019-03-23 22:03:28 2331

原创 Mac上ssh localhost免密失败该如何解决

前言今天准备利用自己的MBP搭建一个Hadoop小集群,结果在Mac上配置完ssh免密登陆的时候,使用ssh localhost测试时,总是弹出输入密码的提示。研究了一番, 记录下解决过程解决过程首先使用ssh -v localhost 观察debug信息, 发现publickey这一个阶段一直没有通过(如下):...SSH2_MSG_NEWKEYS sentdebug1: expec...

2019-03-23 20:19:51 2282

原创 HUE中一些重要元数据表的DDL整理

收集记录了一些HUE中常用的元数据表的表结构,主要有:auth_permissionauth_useraxes_accessattemptaxes_accesslogbeeswax_queryhistorybeeswax_sessiondesktop_document2具体DDL如下:CREATE TABLE `auth_permission` ( `id` int(11...

2019-03-21 14:24:42 2552

原创 Autosys中ON_HOLD和ON_ICE的区别

对于Autosys中作业ON_HOLD和ON_ICE的区别,整理如下:ON HOLDON ICE表示作业处于暂停状态,并且在我们将其取消保留之前无法运行。表示作业已从作业流中删除,但仍定义任然在 。该作业不会被启动, 它会保持ON ICE,直到它收到JOB_OFF_ICE为止当作业处于ON HOLD状态时,所有依赖于此作业的作业都不会运行 (即作业的下游不会运行)。...

2019-03-21 14:07:10 440

原创 Spark结构化API的执行过程——Logical Plan & Physical Plan

执行的基本步骤简单来说,Spark 对代码中Structured API的执行主要有以下几个步骤:(用户) 编写DataFrame/Dataset/SQL 代码如果代码没有错误,Spark会将这些代码转换成逻辑计划(Logical Plan)Spark将生成的逻辑计划记过一系列优化,转换为物理计划(Physical Plan)Spark执行物理计划,即在集群上对RDD进行一系列操作。...

2019-03-21 10:34:54 3025

原创 关于Spark中Columns的引用方法

在Spark中有多种可以构建或者引用columns的方法,但是最简单的还是使用col 或者column函数。方法如下://in Scalaimport org.apache.spark.sql.functions.{col, column}col("myColumnA")column("myColumnB")#in Pythonfrom pyspark.sql.functins im...

2019-03-19 11:51:53 901

原创 关于Kafka Consumer 与 Partitions

Consumers and Consumer Groups假设我们有一个应用程序需要从Kafka主题中读取消息,对它们运行一些简单的验证,并将结果写入另一个数据存储中。 因此,我们需要将创建一个Consumer对象,订阅相应的主题,并开始接收消息,验证它们并编写结果。 这可能会有一段时间,但如果写入主题的速率超过应用程序验证它们的速率怎么办? 如果您仅限于单个消费者阅读和处理数据,您的应用程序可...

2019-03-16 19:04:03 2655

原创 使用sed根据变量值注释掉文件中相匹配的记录行

问题描述有批量的profile文件需要更新,因为其中某些环境变量的值需要更新,于是利用sed命令写了如下函数,方便以后使用。代码展示unset -f add_var_to_filefunction add_var_to_file(){env_var=$1new_value=$2tgt_file=$3# comment out old env linessed -e "/ $env...

2019-03-13 20:35:07 3194

原创 sqoop export to teradata时出现java.lang.NullPointerException

在使用sqoop export时指定了 --driver com.teradata.jdbc.TeraDriver测试时候会出现以下错误:Error: java.lang.NullPointerException atcom.teradata.tdgss.jtdgss.TdgssconfigApi.GetMechanisms (Unkown Source) atcom.teradata.t...

2019-03-13 11:12:56 3070

原创 Shell中获取脚本的绝对路径$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)

文章目录示例代码代码解释总结示例代码我们可以在bash中使用以下命令获取所执行脚本的绝对路径:#!/bin/bashDIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" && pwd);echo $DIR代码解释BASH_SOURCE[0] - 等价于 BASH_SOURCE ,取得当前执行的 shell 文件所在的路径及文件名di...

2019-03-12 10:36:39 4345

原创 关于Kafka Replication机制

ReplicationKafka的replication复制机制是其可靠性的保证,即为每个分区数据提供多个副本。每个Kafka topic包含有多个分区,分区是kafka存储数据的基本单位。一个分区只能存储在同一个硬盘上。Kafka保证每一个分区内的消息的顺序,无论这个分区是在线(available)的还是离线的(unavailable)。每个分区拥有多个副本,其中一个副本...

2019-03-11 15:58:10 4702

原创 Linux中sed命令的用法举例

文章目录前言基本语法常用选项用法举例打印替换删除参考资料前言sed - stream editor,流编辑器,用于对输入流(文件或来自管道的输入)执行基本文本转换,是Linux系统中最重要和最常用的命令之一。基本语法其基本语法如下:$ sed [OPTION]... {script-only-if-no-other-script} [input-file]...常用选项选项...

2019-03-10 11:05:17 3502

原创 Linux中find命令的用法举例

文章目录前言find用法举例基本用法列出当前目录和子目录下的所有文件查找特定目录下的文件查找特定文件名的文件限制目录查找的深度反向查找查找特定的文件类型在多个目录下查找进阶用法查找指定权限的文件基于文件拥有者和用户组的查找基于日期和时间的查找基于文件大小的查找高级操作 TO-DO前言find是Linux系统中最重要和最常用的命令之一,它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/...

2019-03-09 20:56:59 3604

原创 遗忘症患者的待办事项TO-DO工具推荐

感觉年纪大了,事情多了,很多事情一开始记得但是后来就忘记了,于是今天就想找一个to-do类的软件来拯救我的拯救遗忘症。首先,整理下我的需求,或者说我对这个app期望的功能:可跨平台使用跨平台这点对我来说很重要,最好就是能在电脑端(Windows/macOS)/手机端(Android/iOS)之间同步使用。对于电脑端的使用来说,不一定要有具体的软件,有Web应用即可,对于手机端则希望能...

2019-03-09 20:04:03 3755

原创 关于pig中的bytearray

在pig load数据时候,如果不指定类型,则字段类型默认为bytearray。然后pig会根据上下文,隐式转换数据。Map类型的值默认为bytearray类型bytearray类型在pig中没有常量表示在定义schema时,我们可以只提供字段名字而不指定字段类型; 在这种情况下,字段类型默认为bytearray。在不指定schema的情况下,字段类型默认为bytearray。Pig将所...

2019-03-07 22:16:32 165

原创 Hive Insert Overwrite是否会产生临时文件

在Hive中使用INSERT OVERWRITE时,数据会先被写入到数据文件夹的临时文件内,类似于 ==.hive-staging_hive_==开头的文件然后删除所有原文件,将临时文件重命名为”原文件“...

2019-03-02 23:12:26 4697

原创 Python中使用Scrapy爬虫抓取上海链家房价信息

文章目录前言准备工作创建一个新的Scrapy项目定义一个爬虫Spider导出抓取数据保存数据到数据库(MongoDB)前言之前用python写了一个简单的爬虫项目用来抓取上海链家上的一些房价信息,整理了下代码,特此记录准备工作安装Scrapy创建一个新的Scrapy项目例如,我们可以使用指令 scrapy startproject Lianjia 创建一个名为Lianjia的scr...

2019-03-02 12:05:47 4752

原创 一些程序员必备的英语词汇及释义

文章目录前言词汇表前言看书整理的时候遇到一些词汇不知道怎么翻译成中文好,于是整理了一些词汇解释的笔记,整理成如下词汇表词汇表angle brackets 尖括号 iterate over 迭代 array buffers  数组缓冲 iterator 迭代器 asynchronous 异步的 jump tables 跳...

2019-03-02 10:07:25 4650

原创 spark-submit使用yarn cluster模式时如何获取applicationId?

文章目录问题描述什么是applicationId解决方法问题描述在自动化的项目中,需要将spark-submit程序包装起来,通过c语言或者shell来调用,因为需要记录日志,即需要知道每次提交的spark的程序的applicationId, 将其记录。spark程序是使用yarn cluster模式提交的,因此driver在集群中的任意机子,无法确定。什么是applicationIdap...

2019-03-01 20:14:36 3302

原创 On-heap vs Off-heap 堆内内存与堆外内存

JVM主要的内存区域有heapstack其它寄存器。heap主要是用来存储对象实例及数组值,可以认为java中所有通过new创建的对象都在此分配。On-heap是指在堆内内存,由GC进行创建回收,可以通过参数-Xms(最小)和-Xmx(最大)来控制Off-heap是指在堆外内存,不由GC创建,但可以通过full GC回收,通过-XX:MaxDirectMemorySize设置大小。...

2019-03-01 19:24:19 336

原创 Spark中RDD、DataFrame和DataSet的区别

文章目录前言RDD、DataFrame和DataSet的定义RDD、DataFrame和DataSet的比较Spark版本数据表示形式数据格式编译时类型安全序列化垃圾回收效率/内存使用编程语言支持聚合操作(Aggregation)结论前言最近同事开始学习使用Spark,问我RDD、DataFrame和DataSet之间有什么区别,以及生产环境中的spark1.6将在不久后被移除,全部使用spa...

2019-03-01 15:50:21 4389 4

原创 如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory

前言在我们提交spark程序时,应该如何为Spark集群配置–num-executors, - executor-memory和–execuor-cores 呢?一些资源参数设置的基本知识Hadoop / Yarn / OS Deamons当我们使用像Yarn这样的集群管理器运行spark应用程序时,会有几个守护进程在后台运行,如NameNode,Secondary NameNode,...

2019-03-01 13:47:16 9356 1

原创 一些常用的Spark SQL调优技巧

文章目录一些常用的Spark SQL调优技巧一些常用的Spark SQL调优技巧使用缓存表在sparksql中,当我们创建表时,我们可以通过调用spark.catalog.cacheTable("tableName") 或者 dataFrame.cache()的方式将表缓存起来。这样Spark SQL将仅扫描所需的列,并自动调整压缩以最小化内存使用和GC压力。当你不需要缓存时,可以通过...

2019-03-01 12:49:12 4143

逻辑斯蒂回归于最大熵模型笔记

此文档为阅读李航老师的统计学习法逻辑斯蒂回归于最大熵模型章节的笔记

2019-02-23

SVM支持向量机笔记

李航老师的统计学习方法的个人笔记,此文档为阅读支持向量机部分的笔记

2019-02-20

决策树_Decision_Tree学习笔记

本文档为李航老师的统计学习方法,决策树章节部分的阅读笔记

2019-02-24

统计学习方法_朴素贝叶斯笔记

李航老师的统计学习方法,朴素贝叶斯章节部分的阅读笔记

2019-02-23

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除