自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

古月慕南的代码世界

Java、Scala、大数据

  • 博客(62)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

翻译 Spark2.1.0文档:Spark Streaming 编程指南(下)-性能调优和容错语义

性能调优如果想要群集上的SparkStreaming应用程序中获得最佳性能,你需要进行一些优化操作。本节介绍了一些参数和配置,可以通过调整这些参数和配置以提高应用程序性能。在高层次上,你需要考虑两件事情:1、通过有效利用集群资源减少每批数据的处理时间。2、设置正确的batch size,使得每批数据的处理速度可以像接收速度那样快速(即数据处理与数据摄取保持一致)。减少批处理时间

2017-05-10 18:23:01 2210

翻译 Spark2.1.0文档:Spark Streaming 编程指南(上)

本文翻译自spark官方文档,仅翻译了Scala API部分,目前版本为2.1.0,如有疏漏错误之处请多多指教。原文地址:http://spark.apache.org/docs/latest/streaming-programming-guide.html因文档篇幅较长故分为上下两篇,本文为上篇,主要包括概述、入门示例、基本概念三部分概述Spark Streaming是核

2017-05-06 18:11:01 6012

翻译 Spark2.1.0文档:Spark编程指南-Spark Programming Guide

1 概述从一个较高的层次来看,每一个 Spark 应用程序由一个在集群上运行着用户的 main 函数和执行各种并行操作的driver program(驱动程序)组成。Spark 提供的主要抽象是一个弹性分布式数据集(RDD),它是可以执行并行操作且跨节点分布的元素的集合。我们可以通过三种方式得到一个RDD1、 可以从一个 Hadoop 文件系统(或者任何其它 Hadoop 支持的文件系

2017-04-24 20:04:16 4418 5

原创 java.lang.NoSuchMethodError的一般解决思路

今天在测试一个web项目时遇到一个问题:java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString,经过一番折腾终于解决,将解决思路梳理如下:java.lang.NoSuchMethodError其实是java项目最常见的问题之一,一般是由于引用的jar包版本过低引起的。...

2018-05-11 19:33:14 52415 4

翻译 对spark2.3.0中Structured Streaming低延迟持续处理模式的介绍

原文链接:https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html在Spark2.0中,Structured Streaming将微批处理模式与其高级API分离开来。原因有两个:首先,简化了API的使...

2018-03-21 19:44:14 5154 2

原创 CDH 5.12.1 离线部署指南(附spark2.2.0集成指南)

CDH 5.12.1离线部署指南(附spark2.2.0集成指南)由于国内的网络原因,CDH在国内几乎无法实现在线安装,本文将介绍CDH离线安装方式,所有安装包下载后传输到内网安装,由于版本较新的原因,安装过程的坑还是很多的,在此记录一下。一、       硬件说明一共6台节点:master:32.31.104.159slave1:32.31.104.161slave2:3

2017-10-13 12:40:27 11245 4

原创 git开发流程总结

以github为例:在github网页中手动创建一个repositories同时初始化README.md和 .gitignore这个时候我们就创建了主分支:master然后点击Clone or download获取项目的git地址打开终端,在工作目录下创建文件夹:mkdir BastPracticeForGitcd BastPracticeForGit/

2017-07-16 14:32:56 925 1

原创 sbt打jar包总结

利用sbt管理依赖,打jar包以及fat jar

2017-07-16 14:18:13 9707

原创 spark源码解析-从提交任务到jar的加载运行(基于2.1.0版本)

本文分析的源码基于Spark2.1.0版本,如果有理解不当的地方欢迎批评指正。在之前的一篇文章中我们分析了Spark-submit脚本,发现该脚本会调用spark-class脚本检查参数设置,以及提交任务。最后发现,提交任务的入口类是org.apache.spark.deploy.SparkSubmit 我们接下来深入这个类,看看从提交任务到执行用户jar包之间都发生了什么; 首先找到

2017-05-19 13:30:41 2385

转载 Apache Spark 内存管理详解

Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shu

2017-05-04 12:47:09 994

翻译 Spark集群硬件配置

本文翻译自Spark官方网站,原文链接:http://spark.apache.org/docs/latest/hardware-provisioning.html部分内容采用意译的方式翻译,如有疏漏错误之处,欢迎批评指正。Spark集群硬件配置Spark开发人员经常遇到的一个问题是如何为Spark集群配置硬件。 虽然正确的硬件配置将取决于具体情况,但我们给出以下几点建议。存储

2017-05-02 13:34:48 3833 2

原创 Spark2.10中使用累加器、注意点以及实现自定义累加器

累加器(accumulator)是Spark中提供的一种分布式的变量机制,其原理类似于mapreduce,即分布式的改变,然后聚合这些改变。累加器的一个常见用途是在调试时对作业执行过程中的事件进行计数。累加器简单使用Spark内置的提供了Long和Double类型的累加器。下面是一个简单的使用示例,在这个例子中我们在过滤掉RDD中奇数的同时进行计数,最后计算剩下整数的和。 val

2017-04-24 19:38:42 16341 9

原创 TCP/IP协议栈分析(1)-概述

本篇文章是对TCP/IP协议栈的概述,不涉及具体细节。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图两台计算机通过TCP IP协议通讯的过程如下所示传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用socket API编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通

2017-04-23 12:28:49 867

翻译 Spark2.1.0官方文档:快速开始-Quick Start

利用Spark Shell进行交互式分析基本操作更多关于的RDD操作使用缓存独立的应用程序下一步可以做什么本教程对于Spark的使用进行了简单的介绍。我们首先通过Spark的交互式shell环境介绍一些基础API的使用,然后展示如何使用Scala语言编写一个具体的应用。如果想要更详细的教程,请移步编程指南。如果想要亲自试试本篇中的例子,您需要从Spark

2017-04-19 17:01:58 1596

原创 算法时间复杂度的表达-渐进符号与主定理

渐进符号是分析算法时间复杂度的常用记号,对于某个规模为n的问题,当n足够大时,就可以忽略掉复杂度表达式中的低阶项和最高次项的系数,由此引出“渐进复杂度”,并且用渐进符号来对“渐进复杂度”进行表达。一、渐进符号1、O(大O符号):上界定义:若存在两个正的常数 c 和 n0 , 对于任意 n≥n0 , 都有 T( n)≤cf( n) ,则称T( n) = O( f( n) )(或称算法在

2017-04-18 16:09:25 11786

原创 堆与堆排序

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节

2017-04-12 10:48:20 667

原创 二叉树遍历(先序、中序、后序、深度、广度)递归和非递归实现

二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。二叉树的遍历方式分为深度遍历和广度遍历,深度遍历包括前序、中序以及后序三种遍历方法,广度遍历即我们平常所说的层次遍历。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的深度遍历不仅容易理解而且代码很简洁,而对于广度遍历来说,需要其他数据结构的支撑,比如堆了。所以,对于一段代码来说,可读性有时候要比代码本身的效率

2017-04-07 15:11:15 1783

原创 SQL中过滤条件放在on和where中的区别

今天接到蚂蚁金服的电面,问了sql中过滤条件放在on和where中的区别,当时满脑子是inner join,觉得没区别啊。后来才想起来,连接查询除了inner join还有right join,left join。汗呐,当时还是太紧张了。这里做一下记录吧。join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果

2017-03-13 23:03:28 24939 2

原创 windows中以本地模式运行spark遇到“Could not locate executable null\bin\winutils.exe in the Hadoop binarie”

本方法适用于win7、win10在windows环境下的eclipse或者idea中编写spark应用时,有时为了验证程序功能需要以本地模式运行测试。常常会遇到如下的异常:java.io.Exception: Could not locate executable null\bin\winutils.exe in the Hadoop binarie经测试发现这个异常并不影响最终运行结

2016-11-25 15:00:52 10065 3

转载 log4j.properties配置详解

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、

2016-11-14 16:33:19 425

原创 Spark源码初探-从spark-submit开始

深入了解spark的运行机制是为了搭建集群,编写应用能达到更好的性能表现,甚至更加深入的了解还可以自己修改源码,实现定制功能来适配自己的需求。仅仅通过一些spark架构和运行原理的描述来了解spark是远远不够的,所以打算系统的看一下spark的源码,以添加注释的方式写下自己的理解(尽量写的详细,很可能会显得啰嗦)。spark源码的版本为2.0.1,是当前最新的版本,平时抽点时间慢慢看,能看多少算

2016-11-03 23:02:07 3741

原创 spark将数据写入hbase以及从hbase读取数据

本文将介绍1、spark如何利用saveAsHadoopDataset和saveAsNewAPIHadoopDataset将RDD写入hbase2、spark从hbase中读取数据并转化为RDD操作方式为在eclipse本地运行spark连接到远程的hbase。java版本:1.7.0scala版本:2.10.4zookeeper版本:3.4.5(禁用了hbase自带zoo

2016-10-15 14:11:25 62557 13

原创 在java应用中使用JDBC连接Spark SQL(HiveServer2)

根据Spark官网所述,Spark SQL实现了Thrift JDBC/ODBC server:The Thrift JDBC/ODBC server implemented here corresponds to the HiveServer2 in Hive 1.2.1 You can test the JDBC server with the beeline script that co

2016-10-07 11:17:40 18666 1

原创 MyBatis起步

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。基本使用方法如下:一、准备数据表首先创建一个数据库my

2016-09-28 16:00:37 543

转载 TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图所谓的协议就是双方进行数据传输的一种格式。

2016-09-27 19:19:56 433

原创 新手使用Maven的那些坑

本文主要记录个人在maven使用的过程中遇到的问题、疑惑以及经过我的测试可行的一些解决方案。说明一下:我使用的开发工具是eclipse javaee版 1、配置maven的本地仓库存储位置Maven默认的本地仓库存储在:C:\用户目录\.m2/repositorymaven下载的jar包长期累积会有几个g,占用了原本就紧缺的C盘空间。可以通过配置更改默认的仓库存储目录。打开MA

2016-09-25 16:10:48 8634 2

转载 20分钟快速了解redis

Redis可以说是目前最火爆的NoSQL数据库! 过去几年,Memcached很盛行,现在有很多公司已将Memcached替换成了Redis。当然,很多人替换并不清楚为什么,只是感觉不想让主流抛弃,这也充分反映了目前Redis的强势。 Redis是基于内存的数据结构存储开源系统,采用C语言编写,运行效率极高。可作为内存数据库、缓存或消息代理中间件,前两种情况实际当中使用更多些。 Redis与M

2016-09-25 15:13:13 665

原创 Spark on yarn 提交应用的方式

Spark on yarn 提交应用的方式通过spark-submit –help可以看到spark-submit的三种用法。Usage: spark-submit [options] [app arguments]2、根据job的id杀死某个job,仅支持在standalone和Mesos模式下使用Usage: spark-submit --kill [submission

2016-09-23 11:48:53 3142

原创 shell中的条件判断与控制流程

shell编程中的条件判断,if语句,for循环,while循环等等总结。

2016-09-19 20:35:32 540

原创 使用idea构建Spark应用

操作环境:IntelliJ IDEA 14.1.5社区版操作系统:windows7步骤:1、创建工程依次:File->New->Project…勾选Scala点击next,输入工程名点击Finish即可。接下来可能会有一个弹窗(如果你在创建工程的时候已经打开过另一个了),有This Window和New Window选项。选择This Window会将当

2016-09-18 22:27:52 725

原创 java动态代理模式(jdk和cglib)

为什么需要代理假设有一个计算器类,类中定义了加,减,乘,除操作,然后我希望在每个方法执行前后打印一些提示信息,比如 “XX方法开始执行。。”,“XX方法结束执行。。”,要做到这一点,普通的解决方式是在每个方法前后加上 System.out.println("XX方法正在执行。。"),System.out.println("XX方法结束执行。。"),这样写起来十分麻烦,如果我们以后要扩充这个类,

2016-07-26 10:56:46 710

原创 用java sax处理xml文件(DBLP数据集)

在java中,可以用多种方式处理xml文件。前一段时间因为要使用到dblp数据集,而且这个数据集比较大无法一次性加载到内存中解析成文档树再处理。所以只能用sax的方式边读边处理。下面是dblp数据集的简介,在处理xml文件之前,对xml的结构的了解很重要:DBLP是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统,按年代列出了作者的科研成果。包括国际期刊和会议等公

2016-07-26 08:57:43 2489 4

原创 JDBC连接mysql及操作

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,本文主要介绍JDBC连接m

2016-06-15 12:39:49 578

原创 centos系统下mysql安装部署及用户管理

本文将介绍centos系统下mysql安装部署及用户管理,包括用户的添加删除授权等。

2016-06-07 16:42:04 446

原创 yarn的基本架构

本文简单介绍了yarn平台的基本架构以及架构中各个组件的功能。

2016-05-23 21:08:01 895

原创 ubuntu安装android studio时出错unable to run mksdcard sdk tool的解决方法

一种亲测可行的ubuntu安装android studio时出错unable to run mksdcard sdk tool的方法

2016-05-16 20:30:16 1785

原创 ArrayList的contains方法和HasMap的containsKey效率差十倍

本文阐述了ArrayList的contains方法和HashMap的containsKey方法效率相差很大的原因,如果要用contains方法,用HashMap来代替要远远快于ArrayList。

2016-05-10 12:58:39 20578 6

原创 spark streaming初试之wordcount

本文来自于spark的官方文档,在运行这个例子的时候遇到了一些问题,解决之后记录下来这个spark streaming的wordcount例子的完整运行过程。算是spark streaming的一次初体验吧。

2016-04-26 13:26:33 3629

原创 pregel 与 spark graphX 的 pregel api

本文介绍了谷歌的新“三驾马车”之一的pregel图计算框架,并详解了spark graphX中提供的pregel api。

2016-04-20 12:54:17 11302 3

原创 ubuntu下VitualBox虚拟机识别USB设备的方法

本文介绍在ubuntu系统下让virtualbox虚拟机识别USB设备的方法。

2016-04-15 15:14:31 8396

spring4.0.0 jar包(解压后使用)

spring4.0.0 jar包

2016-08-12

mysql必知必会样例表生成脚本

mysql必知必会附录B中提到的杨列表生成脚本

2015-11-09

解决vmware_虚拟机无法上网问题__纯菜鸟教程.doc

解决vmware_虚拟机无法上网问题__纯菜鸟教程

2014-01-13

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

TA关注的人

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