Spark
文章平均质量分 81
kingloneye
微信联系方式:kxswx001
展开
-
Spark 操作hive实战练习
一、最终需求:预测,在test里面的用户,下一个订单会购买哪些商品比如:user3,已经有了5月5号的订单(不公开)来评测模型的我们有的是5月4号之前的历史数据我们需要预测,通过历史(5月4号之前订单数据),预测这个用户5月5号买了什么1、数据准备:a、在hive中创建orders订单外部表b、在hive中创建products商品外部表c、在hive中创建priors(order_products__prior)订单商品关联外部表查看hadoop上文件前几行数据hadoop fs -ca原创 2020-07-10 10:54:45 · 559 阅读 · 0 评论 -
(实战)基于Spark Streaming & Flume & Kafka & HBase模拟实时流处理
基于Spark Streaming & Flume & Kafka & HBase模拟实时流处理1、所需技术及版本1、虚拟机3台2、Jdk1.83、python-3.7.24、spark-2.2.15、kafka_2.12-2.4.06、zookeeper-3.4.147、hadoop-2.6.18、apache-flume-1.9.09、hbase-1.2.62、使用python日志生成器生成日志,并通过定时调度工具每分钟产生数据a、python日志生成代码原创 2020-07-04 18:27:05 · 728 阅读 · 0 评论 -
Spark Streaming整合Kafka的两种方式
Spark Streaming整合Kafka,两种整合方式:Receiver-based和Direct方式一:Kafka准备1、分别启动zookeeper./zkServer.sh start2、分别启动kafka./kafka-server-start.sh -daemon ../config/server.properties //后台启动3、创建topic./kafka-topics.sh --create --zookeeper hadoop:2181 --replication-原创 2020-06-22 18:22:12 · 418 阅读 · 0 评论 -
Spark Streaming整合Flume的两种方式
Spark Streaming整合Flume的两种方式整合方式一:基于推1、flume和spark一个work节点要在同一台机器上,flume会在本机器上通过配置的端口推送数据2、streaming应用必须先启动,receive必须要先监听推送数据的端口后,flume才能推送数据a、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst原创 2020-06-18 23:19:56 · 257 阅读 · 0 评论 -
Spark Streaming整合Spark SQL完成词频统计操作
package com.kinglone.streamingimport org.apache.spark.SparkConfimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.SparkSessionimport org.apache.spark.streaming.{Seconds, StreamingContext, Time}/** * Spark Streaming整合Spark SQL完成词频统计操作 */原创 2020-06-15 23:35:56 · 301 阅读 · 0 评论 -
使用Spark Streaming黑名单过滤
需求:有日志例如:20200615,zs20200615,ls20200615,ww有黑名单:zsls思路:a、将日志转换成 (zs:20200615,zs)(ls:20200615,ls)(ww:20200615,ww)b、将黑名单转成 (zs:true)(ls:true)c、leftjoinpackage com.kinglone.streamingimport org.apache.spark.SparkConfimport org.apache.spark.stream原创 2020-06-15 23:28:55 · 545 阅读 · 0 评论 -
使用Spark Streaming完成词频统计,并将结果写入到MySQL数据库中
package com.kinglone.streamingimport java.sql.DriverManagerimport org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}/** * 使用Spark Streaming完成词频统计,并将结果写入到MySQL数据库中 */object ForeachRDDApp { def main(args: A原创 2020-06-15 23:12:02 · 834 阅读 · 0 评论 -
Spark Streaming处理文件系统 统计WordCount
一、pom文件见 Spark Streaming处理Socket数据 统计WordCount二、代码package com.kinglone.streamingimport org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}/** * Spark Streaming处理文件系统 * */object FileWordCount { def main(a原创 2020-06-14 23:35:20 · 223 阅读 · 0 评论 -
Spark Streaming处理Socket数据 统计WordCount
一、pom.xml <properties> <scala.version>2.11.8</scala.version> <spark.version>2.1.0</spark.version> </properties><dependency> <groupId>org.scala-lang</groupId> <artifactId>sc原创 2020-06-14 23:32:09 · 301 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(十):topN统计作业运行到YARN上
1、修改代码并打包package com.kinglone.logimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.functions._import org.apache.spark.sql.{DataFrame, SparkSession}import scala.collection.mutable.ListBuffer/** * TopN统计Spark作业:运行在YARN之上 */原创 2020-06-12 17:45:04 · 316 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(九):数据清洗作业运行到YARN上
1、打包修改代码:package com.kinglone.logimport org.apache.spark.sql.{SaveMode, SparkSession}/** * 使用Spark完成我们的数据清洗操作:运行在YARN之上 */object SparkStatCleanJobYARN { def main(args: Array[String]) { if(args.length !=2) { println("Usage: SparkStatC原创 2020-06-12 17:07:29 · 361 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(八):使用Echarts饼图动态展示主站最受欢迎的TopN课程
代码:使用Echarts饼图动态展示主站最受欢迎的TopN课程Echarts官网将大数据分析的数据存到mysql后,从mysql里读取数据在Echarts饼状图展示,效果:原创 2020-06-12 09:47:36 · 523 阅读 · 1 评论 -
【大数据spark SQL项目实战】日志分析(七):按流量统计最受欢迎的Top N的课程并写入mysql
1.按流量统计最受欢迎的Top N的课程package com.kinglone.logimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.{DataFrame, SparkSession}import org.apache.spark.sql.functions._import scala.collection.mutable.ListBuffer/** * TopN统计Spark作业原创 2020-06-11 11:57:11 · 387 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(六):按地市统计主站最受欢迎的Top N的课程并写入mysql
接 将清洗的数据存储到目标地址1.按地市统计最受欢迎的TOP3的课程package com.kinglone.logimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.{DataFrame, SparkSession}import org.apache.spark.sql.functions._import scala.collection.mutable.ListBuffer/** *原创 2020-06-11 11:07:39 · 271 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(五):统计最受欢迎的TopN课程并写入mysql
1、统计最受欢迎的TopN课程a : 使用DataFrame的方式进行统计b : 使用SQL的方式进行统计根据结果显示,两次统计的结果一致2、新建数据库(bigdata),并创建表(day_video_access_topn_stat)create table day_video_access_topn_stat(day varchar(8) not null,cms_id bigint(10) not null,times bigint(10) not null,primary key原创 2020-06-07 23:25:41 · 418 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(四):将清洗的数据存储到目标地址
//.coalesce(1) 输出文件的个数//.mode(SaveMode.Overwrite) 每次覆盖原来的文件//.partitionBy(“day”) 以天为分区import org.apache.spark.sql.{SaveMode, SparkSession}/** * 使用Spark完成数据清洗操作 */object SparkStatCleanJob { def main(args: Array[String]): Unit = { val spar原创 2020-06-07 22:50:08 · 382 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(三):ip地址解析
这里使用github上二叉树快速搜索IP地址数据库生成Jar包,通过scala调用解析IP1、将Java项目下载下来打成Jar包,并将Jar包放入scala项目中ipdatabase-1.0-SNAPSHOT.jar2、编辑intall-ipdatabase.bat文件,将Jar包install到本地仓库mvn install:install-file -Dfile=ipdatabase-1.0-SNAPSHOT.jar -DgroupId=com.ggstar -DartifactId=i原创 2020-06-07 18:03:13 · 680 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(二):日志解析
1、定义类型在日志解析前我们需要先知道我们需要从日志中获取什么,首先我们要了解一下日志:这个日志中一共有四个字段分别为:日期、网址、流量、Ip。接下来我们需要再看需求:需求一:统计imooc主站最受欢迎课程/手记的topn访问次数需求二:按地市统计imooc主站最受欢迎topn课程需求三:按流量统计imooc主站最受欢迎的topn课程从需求上我们可以发现,我们需要什么字段如下:URL(网址)CmsType(课程类型)CmsId(课程Id)traffic(流量) ip (ip地址)c原创 2020-06-07 17:21:56 · 587 阅读 · 0 评论 -
【大数据spark SQL项目实战】日志分析(一):数据初步清洗
需求一:统计imooc主站最受欢迎的课程/手记的Top N访问次数需求二:按地市统计imcco主站最受欢迎的Top N的课程根据IP地址提取出城市信息需求三:按流量统计imooc主站最受欢迎的Top N的课程数据清洗1.使用Spark SQL解析访问日志2.解析出课程编号,类型3.根据IP解析出城市信息4.使用Spark SQL将访问时间按天进行分区输出package com.kinglone.logimport org.apache.spark.sql.SparkSession/原创 2020-06-07 17:13:18 · 819 阅读 · 0 评论 -
使用外部数据源综合查询Hive和MySQL的表数据
import org.apache.spark.sql.SparkSession/** * 使用外部数据源综合查询Hive和MySQL的表数据 */object HiveMySQLApp { def main(args: Array[String]) { val spark = SparkSession.builder().appName("HiveMySQLApp") .master("local[2]").getOrCreate() // 加载Hive表数据原创 2020-06-06 23:14:14 · 189 阅读 · 0 评论 -
【spark-sql】DataFrame和RDD的互操作
一、DataFrame和RDD的互操作DataFrame和RDD的互操作 的两种方式1)反射:cass class 前提:事先需要知道字段,字段类型2)编程:Row 如果第一种情况不满足(事先不知道列)3)选型:优先考虑第一种方式/** * DataFrame和RDD的互操作 */object DataFrameRDDApp { def main(args: Array[String]): Unit = { val spark = SparkSession.builde原创 2020-06-06 22:05:03 · 192 阅读 · 0 评论 -
【spark-sql】使用JDBC编程访问,spark访问hive
使用JDBC访问,spark访问hive1.启动thriftserver服务 (一定先启动服务,否则会报错)./start-thriftserver.sh --master local[2] --jars /opt/mysql-connector-java-5.1.22-bin.jar 2.引入hive-jdbc包 <dependency> <groupId>org.spark-project.hive</groupId> <ar原创 2020-06-06 20:37:16 · 583 阅读 · 0 评论 -
【spark-sql】使用thriftserver/beeline,spark访问hive
一、使用thriftserver/beeline,spark访问hive1.启动thriftserver:默认端口是10000 (端口可以修改)cd /opt/spark/sbin./start-thriftserver.sh --master local[2] --jars /opt/mysql-connector-java-5.1.22-bin.jar 2.启动beeline -n 用户名./beeline -u jdbc:hive2://localhost:10000 -n root原创 2020-06-06 20:14:14 · 589 阅读 · 0 评论 -
【spark-sql】使用spark-sql或spark-shell访问hive
一、使用spark-shell ,spark访问hive1.将/opt/hive/conf/hive-site.xml复制到/opt/spark/conf目录下2.–jars 传递mysql驱动包3.运行spark-shell./spark-shell --master local[2] --jars /opt/mysql-connector-java-5.1.22-bin.jarspark.sql("show tables").show2、使用spark-sql,spark访问hive原创 2020-06-05 09:17:59 · 791 阅读 · 0 评论 -
使用PySpark分析空气质量并写入Elasticsearch
1、 需求:使用PySpark分析空气质量2、数据集:北京市PM2.5数据3、技术版本Spark:spark-2.2.1-bin-hadoop2.6.tgzPython:Python-3.7.2.tar.xzElasticSearch:elasticsearch-7.2.0.tar.gzKibana:kibana-7.2.0.tar.gzelasticsearch-spark-20_2.11-7.2.0.jar4、代码:from pyspark.sql import SparkSessio原创 2020-05-29 17:43:24 · 1163 阅读 · 0 评论 -
spark 运行模式(随手记)
spark 运行模式:local模式:开发过程中的运行模式例如:./spark-submit --master local[2] --name wordcount01 /opt/script/wordcount01.py file:///opt/bigdatas/hello.txtpython模式下:–master–name–py-filesstandalone 模式:假设有5台机器,就每台机器的相同路径下部署spark在spark_home/conf/slaves下配置hadoop原创 2020-05-25 16:21:11 · 129 阅读 · 0 评论 -
用pyspark开发求平均数的程序
需求:求统计平均年龄开发步骤:1、取出年龄2、计算年龄的综合3、计算记录总数 countimport sysfrom pyspark import SparkContextfrom pyspark import SparkConf"""求平均数"""if __name__ == '__main__': if len(sys.argv) !=2 : print("统计TopN <input>",file=sys.stderr) sys原创 2020-05-24 00:54:16 · 1216 阅读 · 0 评论 -
用pyspark开发用户访问量的top5程序
资源文件:链接:https://pan.baidu.com/s/1Xxkpq9OX_xjKilUpqQr0QA提取码:hq46求用户访问量的top5分析:1、将文件的数据切割 —> map(lambda x:x.split("\t"))2、拿到用户,并转换成(用户,1)格式 —> map(lambda x:(x[5],1))2、访问量求和 —> reduceByKey(lambda a,b:a+b)2、反转排序再反转,取前五 —> map(lambda x:(原创 2020-05-24 00:21:08 · 268 阅读 · 0 评论 -
用pyspark开发一个WordCount程序
一、一行代码实现WordCount并保存结果hello.txt内容:sc.textFile("/opt/bigdatas/hello.txt").flatMap(lambda line: line.split("\t")).map(lambda word: (word, 1)).reduceByKey(lambda x, y: x + y).saveAsTextFile("/opt/bigdatas/result/wc/001")统计结果:二、python代码实现WordCountimpor原创 2020-05-21 17:58:09 · 1662 阅读 · 0 评论 -
PySpark:parallelize, collect, map, reduce等API的简单用法
RDD数据类型RDD(Resilient Distributed DataSet)是一种弹性分布式数据集,是Spark的核心,其可以有由稳定存储中的数据通过转换(transformation)操作得到。RDD数据是一种可以并行操作的数据,它在创建的时候已经分区,且每次对RDD操作的结果可以放到高速缓存中,省去了MapReduce频繁的磁盘IO。针对RDD数据的操作/函数有两种类型:转换(transformation)和动作(action)。transformation类型:从一个RDD转化到另一个RD原创 2020-05-21 15:55:21 · 1719 阅读 · 0 评论 -
PySpark初识
cd /optmkdir scriptvim spark01.pyfrom pyspark import SparkContextfrom pyspark import SparkConfconf = SparkConf()sc =SparkContext("local", "count app")data = [1,2,3,4,5]disData = sc.paralle...原创 2020-04-29 23:18:54 · 118 阅读 · 0 评论 -
pyspark启动python的版本设置
spark安装以后以pyspark启动spark交互式界面的时候,默认是系统自带的Python版本启动,而本机是以python2的版本启动,如下所示:spark要以python3的方式启动,安装好python3后配置:一、加入PYSPARK_PYTHON变量# 编辑.bashrc文件vim ~/.bashrc# 加入PYSPARK_PYTHONexport PYSPARK_PYTH...原创 2020-04-29 17:12:16 · 934 阅读 · 0 评论 -
Spark之全分布式安装
一、分布环境前提:Linux环境,JDK版本1.8版本Spark:版本2.2.1Hadoop:版本2.6.1二、解压tar -zxvf spark-2.2.1-bin-hadoop2.6.tgzmv spark-2.2.1-bin-hadoop2.6 spark三、修改配置文件/opt/spark/conf spark-env.sh: export JAVA_HOME=/o...原创 2020-04-20 22:44:58 · 292 阅读 · 0 评论 -
Spark之伪分布式安装
一、伪分布环境前提:Linux环境,JDK版本1.8版本Spark:版本2.2.1Hadoop:版本2.6.1下载地址:Spark下载地址 Spark下载地址2二、解压tar -zxvf spark-2.2.1-bin-hadoop2.6.tgzmv spar...原创 2020-04-19 23:57:36 · 286 阅读 · 0 评论 -
Spark之初识
1、为什么要学Spark中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果。Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系...原创 2020-04-19 23:50:15 · 231 阅读 · 0 评论