- 博客(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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅