自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (3)
  • 收藏
  • 关注

原创 Permission denied: user=XX, access=WRITE, inode="/checkPoint/StateKafka":hadoop:supergroup:drwxr-xr

在Hadoop或者spark程序中,向hdfs中写入数据时常常会报这个错误:Permission denied: user=XX, access=WRITE, inode="/checkPoint/StateKafka":hadoop:supergroup:drwxr-xr原因就是你所创建的这个hdfs的文件或者文件夹没有写入的权限或者这个用户组没有执行的权限。解决办法:修改权限1.修改用...

2019-04-07 10:10:03 628

原创 在运行SparkStreaming程序时为了更好的看到结果,打印更少的日志文件

在运行SparkStreaming程序时,总是会产生很多的日志,这会影响到查看运行的结果,读取的数据准不准确。那么我们可以让他打印很少的日志内容。解决办法就是在resources中添加一个文件(这里使用的是maven项目),文件中添加如下内容:log4j.propertiesGlobal logging configurationlog4j.rootLogger=WARN, stdo...

2019-04-07 09:30:20 1336

原创 SparkStreaming--可以更新状态累加的WordCount

我们知道,在进行流式计算的时候,最怕的就是中间结果的丢失,那就需要我们将中间结果先保存起来,然后有新数据过来的时候,再将中间结果读出来进行累加。这样我们在进行聚合的时候要使用updateStateByKey方法。首先我们看一下updateStateByKey方法的源码: /** * Return a new "state" DStream where the state for eac...

2019-04-07 09:21:42 677 2

原创 SparkStreaming程序整合Kafka(0.8.2.1)

SparkStreaming从Kafka中读取数据,首先要安装好Kafka集群。Kafka的原理和详细安装步骤请参考博客:安装步骤:https://blog.csdn.net/weixin_43866709/article/details/88978954原理:https://blog.csdn.net/weixin_43866709/article/details/88989349创建D...

2019-04-07 09:01:35 224

原创 SparkStreaming第一个程序--从socket端口读取数据并统计单词数量

因为是要读取socket端口的数据,所以要启动一个socket端口,可以在虚拟机中安装nc,安装命令为:sudo yum install nc,当然也可以自己写一个socket端口。安装好之后,启动客户端和服务端:nc -lk 8888,streaming读取socket端口数据的原理:代码如下:package XXXimport org.apache.spark.streamin...

2019-04-07 08:50:33 897

原创 Kafka集群原理讲解及分区机制

首先我们要理解Kafka和zookeeper的关系:Kafka的一些基本概念:Broker : 安装Kafka服务的那台集群就是一个broker(broker的id要全局唯一)Producer:消息的生产者,负责将数据写入到broker中(push)Consumer:消息的消费者,负责从kafka中读取数据(pull),老版本的消费者需要依赖zk,新版本的不需要Topic:主题,相当...

2019-04-03 10:25:19 13254 3

原创 Kafka的JavaAPI

打开IDEA,建立maven项目,在pom.xml文件中添加Kafka的依赖:pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche...

2019-04-02 20:00:18 275

原创 Kafka集群启动时报错无法启动

使用kafka-server-start.sh启动Kafka时无法启动,然后报错,报错信息如下:出现这个错误的原因是由于这台机器上的内存太小,Kafka启动默认要求机器的最小内存是1G。解决办法:修改kafka-server-start.sh这个文件。sudo vim kafka-server-start.sh会看到如下信息:将1G修改为512M就可以了:然后再启动就可以了...

2019-04-02 19:44:04 2048

原创 Kafka集群安装--0.8版本

Kafka的一些概念Broker : 安装Kafka服务的那台集群就是一个broker(broker的id要全局唯一) Producer:消息的生产者,负责将数据写入到broker中(push)Consumer:消息的消费者,负责从kafka中读取数据(pull),老版本的消费者需要依赖zk,新版本的不需要 Topic:主题,相当于是数据的一个分类,不同topic存放不同的数据 ...

2019-04-02 19:21:55 362

原创 报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

在Windows上用IDEA本地运行Hadoop或者的spark程序时报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.19/04/02 14:50:28 ERROR Shell: Failed to locate the winutils binar...

2019-04-02 15:27:21 1532 1

原创 centos7启动MySQL时报错:MySQL server PID file could not be found!

启动MySQL时报错:MySQL server PID file could not be found!ERROR! The server quit without updating PID file(/var/lib/mysql/L1.id)我用如下方法解决了这个问题:sudo vim /etc/selinux/config将SELINUX=enforcing改为disabled...

2019-04-02 12:48:36 1116

原创 sparkSQL---spark整合hive

spark整合hive就是让hive运行在spark上面,其实跟hive没有太大的关系,就是使用了hive的标准(HQL,元数据库,UDF,序列化,反序列化机制)hive原来的计算模型是MR,将计算结果写入到HDFS中,有点慢,而spark整合hive是让hive运行在spark集群上面,使用spark中的RDD(DataFrame),这样速度很快。下面来说一下这个元数据:真正要计算的数据是...

2019-04-02 12:40:32 1370

原创 Centos7使用rpm安装MySQL教程

1.去网上下载MySQL对应版本的tar包下载地址:http://mirrors.sohu.com/mysql/我安装的是这个rpm的tar包:适合在centos上安装2.使用Xftp等工具将下载好的tar包上传到虚拟机中。3.将tar包打开,命令是:sudo tar -xvf MySQL-5.6.39-1.el6.x86_64.rpm-bundle.tar 注意:这里要区分tar...

2019-04-01 20:47:09 496

原创 SparkSQL--实现求每个学科老师访问量的排名

这里只记录一下用SparkSQL实现求每个学科老师访问量的排名。详细的RDD实现方法请参考博客:https://blog.csdn.net/weixin_43866709/article/details/88696934这里主要练习使用SQL中的窗口函数。package XXXimport java.net.URLimport org.apache.spark.sql.{DataFr...

2019-04-01 09:34:25 511

转载 MYSQL窗口函数用法及区别

本博客转自:https://blog.csdn.net/weixin_34384915/article/details/87551597 窗口函数(OLAP 实时分析处理函数) ,可以一般聚合函数无法实现的高级操作。诸如排序、生成序列号等功能。目前 DBMS 逐步都完成了对窗口函数的支持,唯独 MySql 不支持(但是 Mysql 8 开始支持了)。1. 窗口函数语...

2019-04-01 08:49:27 1637 2

原创 sparkSQL---不同数据源的读写操作

sparkSQl 可以读取不同数据源的数据,比如jdbc,json,csv,parquet执行读操作就用sparkSession.read.文件类型,执行写操作就用SparkSession.write.文件类型首先创建一个SparkSession:val spark = SparkSession.builder().appName("JdbcDataSource") .maste...

2019-03-31 17:58:10 461

原创 spark2.0新特性--执行计划

spark2.0出现了Dataset,一个更加智能的RDD(本质上还是RDD)。这个Dataset操作更加1.简单:支持标准SQL和简化的API2.执行速度更快:spark作为一个编译器3.也更加智能:Dataset结构化数据流但是这个Dataset究竟怎么智能了呢?Dataset相比RDD改进的一个重要的地方就是这个Dataset执行的时候会先生成执行计划。那为什么生成执行计...

2019-03-31 10:41:47 815

转载 sparkSQL的三种join实现

此博客参考:https://www.cnblogs.com/0xcafedaddy/p/7614299.htmlhttps://blog.csdn.net/asongoficeandfire/article/details/53574034https://mp.weixin.qq.com/s/7ohGjdaTC56T4U3ISxGwIw引言Join是SQL语句中的常用操作,良好的表结构能够...

2019-03-31 09:36:18 267

原创 sparkSQL---Dataset讲解

在sparkSQL中推出了一个叫做Dataset的数据集,它是对RDD的一个智能的封装。官方文档中对Dataset的介绍很详细:接下来我们再来看一下Dataset源码中的说明:/** * A Dataset is a strongly typed collection of domain-specific objects that can be transformed * in par...

2019-03-31 09:10:44 637

原创 sparkSQL---自定义函数(UDF,UDTF,UDAF)

自定义函数被称为(UDF)UDF分为三种:UDF :输入一行,返回一个结果 ;一对一;比如定义一个函数,功能是输入一个IP地址,返回一个对应的省份UDTF:输入一行,返回多行(hive);一对多;sparkSQL中没有UDTF,spark中用flatMap即可实现该功能UDAF:输入多行,返回一行;aggregate(聚合),count,sum这些是spark自带的聚合函数,但是复...

2019-03-30 16:42:36 2261 1

原创 IDEA新建类时自动显示创建人和时间(自定义)

在开发过程中,经常需要保留开发人员的姓名和开发时间,那么在创建一个类时,让他自动显示姓名和时间,这样很方便。首先打开IDEA,打开file->settings(或使用快捷键CTRL + ALT + s)找到Editor->File and Code Templates:然后点击Apply->OK就可以了。...

2019-03-29 20:05:46 9966

原创 sparkSQL入门--1.x和2.x编程的区别

SparkSQL1.什么是sparkSQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。2.特点:易整合,统一的数据访问方式,兼容hive,标准的数据连接DataFrame与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录...

2019-03-29 13:26:03 349

转载 Scala时间格式转换

本博客转自:https://blog.csdn.net/Neleuska/article/details/78864845 scala中关于时间格式的转换问题,总结为以下三种常用情况:1、时间字符类型转Date类型import java.text.SimpleDateFormatval time = "2017-12-18 00:01:56"val newtime...

2019-03-28 13:19:49 710

原创 spark优化--对象序列化问题

在写spark程序时,经常会遇到序列化问题,首先我们应该弄清楚为什么要进行序列化。因为当我们在Driver端创建一个对象,在Executor端要使用这个对象时,Driver要将这个对象发送给Executor,这个时候要进行序列化,只有通过序列化了,这个对象才能够通过网络进行传输。在Executor中创建一个类的实例下面先来看一个例子:Rules.scalapackage XXXc...

2019-03-28 12:22:19 828 2

转载 线程池的使用

该博客转自https://www.cnblogs.com/dolphin0520/p/3932921.html看了这位大神的文章,感觉写得很好,便保留了一份截图,共以后仔细查看。

2019-03-26 20:19:59 103

原创 spark整体执行过程详解

spark整体执行过程可分为四个步骤:1.构建DAG(调用RDD上的方法)2.DAGScheduler将DAG切分Stage(切分的依据是shuffle),将Stage中生成的Task以TaskSet的形式给TaskScheduler3.TaskScheduler调度Task(根据资源情况将Task调度到相应的Executor中)4.Executor接收Task,然后将Task丢入到线程...

2019-03-26 19:49:10 1679 1

原创 spark之JDBCRDD--从Mysql中读取数据

spark中的RDD有很多对应的实现,比如JdbcRDD,是用来从MySQL中读取数据的。先来看一下JdbsRDD的源码:/** * An RDD that executes a SQL query on a JDBC connection and reads results. * For usage example, see test case JdbcRDDSuite. * * @...

2019-03-25 12:58:21 4808

原创 spark--用六种方法实现自定义排序

在实际开发中,我们经常需要自己定义排序规则对数据进行排序。例如这有一组数据val users = Array("li 30 99","zhao 29 999","zhang 28 98","wang 28 99")数据含义为:名字,年龄,颜值现在需要对这组数据进行排序,排序规则是,按颜值从高到低进行排序,颜值相同的话,再按年龄从低到高排序。下面用六种方法进行实现:一自定义一个类,用...

2019-03-24 15:40:20 587

原创 spark小案例---根据IP计算归属地

今天学习了一个根据IP统计归属地的小案例,在此记录一下。在电商网站后台都会记录用户的浏览日志,然后根据这些日志文件就可以做数据分析,比如统计用户的地址,喜好,这样就可以给用户推荐商品了。那么怎样进行统计呢,首先我们要有一份各个省份的IP规则,然后要有一份日志文件,我们从日志文件中切分出IP字段,然后与IP规则进行对比,就可以匹配到是哪个地区的了。我们先来写一下这个小案例的需求;根据访问日...

2019-03-24 09:56:22 730

原创 spark---广播变量

一.在写spark程序时,有可能Driver会从本地读取一份数据,这个时候这份数据就会在Driver所在的机器上,那么executor端也要使用这份数据;这时就需要将Driver端的数据广播给Executor端/** * Broadcast a read-only variable to the cluster, returning a * [[org.apache.spark....

2019-03-23 20:02:21 306

原创 spark将计算结果保存到mysql中

定义一个函数,将结果保存到MySQL中:参数是一个迭代器TestIp.scaladef data2MySQL(it: Iterator[(String, Int)]): Unit = { //一个迭代器代表一个分区,分区中有多条数据 //先获得一个JDBC连接 val conn: Connection = DriverManager.getConnection("...

2019-03-23 19:44:47 1156

原创 二分法查找

在对比一个数字是否在一个范围内时,用二分法可以加快对比的速度下面是实现的代码://二分法查找 def binarySearch(lines: Array[(Long, Long, String)], ip: Long) : Int = { var low = 0 var high = lines.length - 1 while (low <= high) {...

2019-03-23 19:36:28 116

原创 将IP地址转化为十进制

今天在根据Ip统计归属地时,要进行IP对比,如果将IP地址转化为十进制的话,会更加方便。下面是一个转化的程序://将IP转化为十进制 def ip2Long(ip: String): Long = { val fragments = ip.split("[.]") var ipNum = 0L for (i <- 0 until fragments.lengt...

2019-03-23 19:33:13 2082

原创 IDEA查看源码返回上一级源码位置快捷键

IDEA中查看源码很方便,按着Ctrl ,点击需要查看的源码就可以了。但是我们有时候需要返回上一级源码的地方,这里的快捷键是Ctrl + Alt + 方向键。但是这个快捷键是windows10上面显卡中的一个快捷键,用来转换屏幕,所以我们需要更改一下电脑中快捷键的设置。首先打开电脑中的设置:点击显示:找到高级显示设置:找到这个显示适配器属性:找到显卡核芯控制面板,店家图形属性...

2019-03-23 08:43:55 24193 3

原创 spark--WordCount执行过程详解

首先看一下WordCount代码:val conf = new SparkConf().setAppName("ScalaWordCount").setMaster("local[4]") //创建spark执行的入口 val sc = new SparkContext(conf) //指定以后从哪里读取数据创建RDD(弹性分布式数据集) val lines:RD...

2019-03-22 16:54:25 1324

原创 用python自动绘制小猪佩奇

turtle是python自带的画图的一个库,很强大。下面就用这个库绘制一个小猪佩奇,直接上代码from turtle import*def nose(x,y): penup() goto(x,y) pendown() setheading(-30) begin_fill() a=0.4 for i in range(120): ...

2019-03-22 15:18:23 728

原创 python爬虫--自定义爬取网站数据并进行可视化分析

今天写了一个爬虫,爬取了豆瓣网和腾讯网上一些信息,然后又用python自带的tkinter库制作了一个图形化界面,下面时代码和思路。思路 (1)为了用户更好的操作,先用pythonGUI编程设计出一个界面。(2)编写爬虫代码,以豆瓣网为例,思考自己所需要的数据资源,并以此为基础设计自己的爬虫程序。(3)分析网页前端代码,找出数据所在的标签,并通过正则表达式或者Xpath匹配出想要的数据。...

2019-03-22 14:40:49 37829 20

原创 RDD操作实例--分组排序之三种方法求老师的访问量

现在有一组不同学科,不同老师的访问数据,需求是求出每个学科中排名前三的老师。数据样例:http://bigdata.edu360.cn/laozhang接下来用三种方法来计算:工具:hadoop集群,zookeeper集群,spark集群一.思路:1.对数据进行切分,留下学科和对应的老师2.将学科和老师当作key,和1组合在一起,形成((学科,老师),1)的元组3.把学科和老师都...

2019-03-20 19:09:41 1637

原创 使用split切分字符串时报错:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

今天写程序时,使用split切分字符串,字符串的类型是:www.baidu.com现在想经过切分取出来baidu,程序为:val line = "www.baidu.com"val split_line = line.split(".")(1)println(split_line)结果报下面错误:Exception in thread “main” java.lang.Array...

2019-03-20 15:42:46 1332

原创 RDD之foreach和foreachPartition方法

当我们创建一个RDD,并且执行map操作的时候,会生成一个新的RDD。而当我们不想要生成新的RDD时,我们要使用foreach或者foreachPartition方法foreach当执行完foreach,发现并没有打印出来结果。这个foreach方法是一个Action方法,而且任务执行的时候是在executor端执行的,所以它会将结果打印到executor端。详细解释请看博客:http...

2019-03-19 17:13:34 11306

springBoot制作web后台对接共享单车小程序

使用springBoot开发一个web后台程序,用于对接共享单车微信小程序,收集微信小程序产生的用户数据,以及单车的信息。

2019-04-21

用python绘制小猪佩奇

使用python自带的画图库turtle绘制小猪佩奇

2019-03-22

python自定义爬虫之爬取豆瓣网和腾讯招聘网信息并进行数据可视化分析文档

python自定义爬虫之爬取豆瓣网和腾讯招聘网信息并进行数据可视化分析文档

2019-03-22

空空如也

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

TA关注的人

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