大数据学习
python学习,R学习,hadoop、spark学习,hive、hbase学习,pyspark学习
ant_yi
这个作者很懒,什么都没留下…
展开
-
SparkStreaming——实例4:窗口操作
窗口函数,window使用窗口长度和滑动间隔来计算,假设窗口长度为3s,滑动间隔为2s,每2s窗口滑动一次,旧数据就只剩最后1s的了,丢弃左边的2s数据,右边进入新的2s的数据,计算此时新的3秒钟的数据。滑动间隔默认等于批次间隔,如果要设置,滑动间隔必须是窗口间隔的整数倍。代码:使用窗口函数:import org.apache.spark.{HashPa...原创 2019-05-04 23:05:27 · 1247 阅读 · 0 评论 -
SparkStreaming——实例3:带状态操作
带状态操作,updateStateByKey实例1、实例2只是把这5s中产生的数据wordcount,也就是每5s统计一次这5s的数据,而如果我们需要统计从一开始到现在产生的数据,就需要updateStateByKeyupdateStateByKey操作,可以让我们为每个key维护一份state,并持续不断的更新该state。1、首先,要定义一个state,可以是任意的数据类...原创 2019-05-04 23:04:34 · 2219 阅读 · 0 评论 -
SparkStreaming——实例2:批处理目录
简单:使用textFileStream替代socketTextStream即可可以向目录不断添加文件查看结果import org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}object test1 {def main(args: Array...原创 2019-05-04 23:03:42 · 1008 阅读 · 0 评论 -
SparkStreaming——实例1:批处理网络上的数据
目的:使用socketTextStream("192.168.0.160",9999)接收192.168.0.160的9999端口数据,并wordcount启动hdfs:start-all.sh使用netcat向192.168.0.160的9999端口传送数据启动netcat:nc -l -p 9999可以不断向端口传送数据,查看结果import org.a...原创 2019-05-04 23:02:53 · 1090 阅读 · 0 评论 -
SparkStreaming——原理
spark streaming可以从Kafka、Flume、HDFS、ZeroMQ、Twitter收集收据,从数据源获取数据之后,可以使用诸如map、reduce、join和window等高级函数进行复杂算法的处理。然后存储到HDFS、Databases(数据库)、Dashboards中。Kafka、Flume是日志收集系统,ZeroMQ消息系统,Twitter是一个接口。s...原创 2019-05-04 23:01:46 · 752 阅读 · 0 评论 -
spark sql——7. hive on spark
把hive的计算引擎换成spark,计算效率更快在学习hive的时候发现,启动hive时会提示,在hive 2版本,hadoop-MR已经被弃用,请考虑换成spark、tez,或换成hive 1.X版本配置:不用安装hive也可以在spark上使用hive,只需要以下两个配置文件。把core-site.xml和hive-site.xml复制到spark的con...原创 2019-04-27 15:29:39 · 1873 阅读 · 1 评论 -
spark sql——4. rdd与dataframe相互转化
dataframe转rdd:dataframe转rdd很简单,直接.rdd即可scala> val df = spark.table("people_result")df: org.apache.spark.sql.DataFrame = [id: int, name: string ... 1 more field]scala> val rdd1 = df.rdd...原创 2019-04-27 15:28:11 · 1848 阅读 · 0 评论 -
spark sql——3. Dataframe及常用操作
在《实例:spark sql操作hive表》中可以看到,都是对dataframe进行操作spark sql以DataFrame作为基础数据类型在spark-shell中操作:DataFrame:DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表。DataFrame相当于对RDD进行了封装,schema RDD,带有schema(表...原创 2019-04-27 15:25:40 · 2061 阅读 · 0 评论 -
spark sql——1. 简介
hive是shark的前身,shark是spark sql的前身hive on spark 是把hive的计算引擎换成sparkshark基于内存计算,比hive快100倍;即使基于磁盘也高10倍。spark sql又比shark计算性能高出一两个数量级shark对hive过度依赖,spark sql在hive兼容层面只依赖HQL Parser(解析器)、Hive Met...原创 2019-04-27 15:24:27 · 1386 阅读 · 0 评论 -
运行spark——7. RDD依赖、stage划分、checkpoint
RDD依赖:窄依赖:每一个父RDD的分区最多被子RDD的一个分区使用宽依赖:每一个父RDD的分区被多个子RDD分区依赖RDD依赖的作用:血统(Lineage)会记录RDD的元数据和转换行为,以便恢复丢失的分区。stage划分:DAG(有向无环图):RDD的一系列转换组成了DAG划分stage的目的是生成任务,每个stage对应一种任务,划分sta...原创 2019-04-25 22:19:20 · 1461 阅读 · 0 评论 -
运行spark——6. spark流程
启动流程:客户端执行启动命令:start-all.sh1. 首先启动Master节点(master),找到配置的slaves文件,获得需要启动的slave节点2. 然后启动Worker节点(slave1,slave2)3. Master节点要求Worker节点向Master发送注册信息(为什么要注册:Master需要掌握Worker节点的健康状态)4. Master收到注册...原创 2019-04-25 18:49:45 · 1375 阅读 · 0 评论 -
hbase——3. 导入导出表
启动hadoop:start-all.sh启动hbase:start-hbase.sh导出表:导出到hdfs:(也可以导出到本地)[root@hadoop01 ~]# hbase org.apache.hadoop.hbase.mapreduce.Export table1 hdfs://hadoop01:9000/test/hbase查看结果:[root@hadoo...原创 2019-04-21 20:58:08 · 1518 阅读 · 0 评论 -
hbase——2.hbase shell
启动hbase:1.启动hadoop,因为hbase架设在hdfs之上,start-all.sh2.启动hbase,start-hbase.sh,hbase网址端口160103.进入shell命令行,hbase shell创建表:create命令,需要指定表名和列族ColumnFamilyhbase(main):002:0> create 'table1'...原创 2019-04-21 20:56:09 · 1475 阅读 · 0 评论 -
hbase——1.基础
hbase:高可靠型、高性能、面向列、可伸缩的分布式存储数据库,hbase运行于hdfs之上,使用zookeeper作为协调工具。与关系型数据库对比:1.数据类型方面关系型数据库有很多数据类型(int,char等),hbase只有字符串。2.数据操作方面关系型数据库定义了非常多的操作。如表间的连接操作,关系型数据库效率很低;而hbase存在一张表中不需要连接,提升...原创 2019-04-21 20:51:11 · 1511 阅读 · 0 评论 -
hive——2.使用
启动hive:启动hadoop:start-all.sh启动hive:hive[root@hadoop01 ~]# hivehive>DDL操作:创建表:create命令hive> create table student(id bigint,name string,age int);OKTime taken: 0.945 seconds...原创 2019-04-21 20:48:37 · 1469 阅读 · 0 评论 -
hive——1.安装
安装mysql:(1)下载安装包文件:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm(2)安装mysql-community-release-el7-5.noarch.rpm包:rpm -ivh mysql-community-release-el7-5.noarch.rpm(3)安装mys...原创 2019-04-21 20:46:16 · 1344 阅读 · 0 评论 -
HDFS常用命令
前言HDFS命令基本格式:hadoop fs -cmd < args >ls 命令hadoop fs -ls /1列出hdfs文件系统根目录下的目录和文件hadoop fs -ls -R /1列出hdfs文件系统所有的目录和文件put 命令hadoop fs -put < local file > < hdfs file >...原创 2019-04-21 20:41:00 · 1553 阅读 · 0 评论 -
MapReduce——3.wordcount源码
现在来一部分 一部分的理解程序:要写一个mapreduce程序,首先要实现一个map函数和reduce函数。map的方法:protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, LongWritable>.Context context)/** * KEYI...原创 2019-04-21 20:40:09 · 1443 阅读 · 0 评论 -
MapReduce——2.运行WordCount
hadoop实现了wordcount.java,并打好了jar包,在目录:/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar1.启动hadoop,start-all.sh2.在hdfs上创建个待分析的文件[root@master test]# hadoop fs -mkdir -p /test...原创 2019-04-21 20:38:44 · 2100 阅读 · 0 评论 -
MapReduce——1.基础
官网教程:http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.htmlHadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。虽然Hadoop框架是用JavaTM实现的,但Map/Reduce应用程序则...原创 2019-04-21 20:34:39 · 1370 阅读 · 0 评论 -
hadoop生态圈
hdfs: 存文件的,分布式文件存储系统 map-reduce: 有map和reduce两个阶段,适用于分布式的并行计算。 yarn: 资源调度的,资源管理器,新的map-reduce版本详细介绍:https://www.cnblogs.com/yjd_hycf_space/p/6735290.html hbase: 就是一种数据库,面向列的非关系型数据库hbase...原创 2018-11-29 23:57:23 · 1398 阅读 · 0 评论 -
hadoop命令
hadoop fs 访问hadoop的HDFS 后可加ls、mkdir等等hadoop fs -ls /aaa 查看aaa目录里有什么文件(查看指定路径的当前目录结构)hadoop fs -lsr /aaa 查看aaa目录里包括子目录的所有文件(递归查看指定路径的目录结构)hadoop fs -du /aaa 统计aaa目录里文件的大小(hadoop fs -du -h /aaa 更好...原创 2018-10-09 11:45:20 · 1345 阅读 · 0 评论 -
实例:2. ALS算法(pycharm)
分为两个部分:1. 训练模型 RecommendTrain.py2. 推荐 Recommend.py 将模型保存起来,可以更方便的调用模型的保存和加载:model.save(sc, Path + "ALSmodel")model = MatrixFactorizationModel.load(sc, Path+"ALSmodel") RecommendTr...原创 2019-01-08 03:18:55 · 2831 阅读 · 0 评论 -
实例:1. ALS算法(jupyter)
ALS 是 spark 的协同过滤算法,已集成到 Spark 的 mllib 库中使用anaconda的jupyter开发,交互性好 数据集:电影数据集 ml-100k.zip,下载地址:https://grouplens.org/datasets/movielens/其中,u.dat是用户评分数据(包括用户id、电影id、评分、日期)u.item是电影数据(包括电影id、...原创 2019-01-07 23:16:59 · 1902 阅读 · 0 评论 -
7. wordcount(pycharm)
jupyter notebook的优点是交互性,但因为是.ipynb文件,不能重复使用可以使用集成开发工具(如pycharm、eclipse)来创建项目,以便重复使用 hdfs命令:开启hadoop集群:start-all.shhdfs创建test目录:hadoop fs -mkdir -p /test测试文件上传到hdfs的test目录:hadoop fs -copy...原创 2019-01-07 23:14:02 · 1631 阅读 · 0 评论 -
5. wordcount(jupyter)
本地运行代码:PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark# 读取文本数据textFile = sc.textFile("file:/ipynotebook/test.txt")# 使用flatMap空格符分割单词,读取每个单词stringRDD = textFile....原创 2019-01-07 23:03:23 · 1929 阅读 · 0 评论 -
3. pycharm配置pyspark
pycharm配置运行pyspark1. 安装pycharm2. 配置3. 测试 1. 安装pycharm官网下载pycharm:https://www.jetbrains.com/pycharm/下载 pycharm-community-2018.3.2.tar.gz解压:可以bash,也可以右键归档管理器提取此时进入bin目录 ./pycharm.sh...原创 2019-01-07 22:32:38 · 3697 阅读 · 0 评论 -
2. jupyter运行pyspark
使用anaconda的jupyter notebook来运行pyspark1. 安装anaconda(linux)2. 配置3. 本地模式运行pyspark4. yarn运行pyspark5. 遇到的问题 centos7默认python环境是2.7,我想要3.5的,使用anaconda配置python环境,anaconda还自带很多科学计算包,方便 1. 安...原创 2019-01-07 22:26:56 · 5514 阅读 · 0 评论 -
1. 运行pyspark
spark有三种运行方式:1. 本地运行spark (单机,学习、测试用)2. yarn运行spark (集群,主要使用)3. spark standalone运行spark (集群不常用)在没有hadoop的情况下实现多台计算机并行计算,需要配置,不介绍 安装好spark后在终端输入pyspark可以进入shell命令行,(此时就是本地模式)就可以输入python...原创 2019-01-07 22:22:55 · 7836 阅读 · 0 评论 -
scala——高阶函数:2. 柯里化
柯里化:把输入多个参数的函数变为输入1个参数的函数声明方式:1. 参数分开放在括号里scala> def f1(x: Int)(y: Int) = x*yscala> val curry = f1(2) _scala> curry(3)res1: Int = 62. 使用implicit固定值scala> def f2(x: Int)(...原创 2019-04-25 00:48:35 · 1364 阅读 · 0 评论 -
scala——高阶函数:1. 函数作为输入值
在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:接受一个或多个函数作为输入 输出一个函数scala> val arr = Array(1,2,3,4,5)arr: Array[Int] = Array(1, 2, 3, 4, 5)scala> val func = (x:Int) => x*xfunc: Int => Int = ...原创 2019-04-25 00:47:49 · 1477 阅读 · 0 评论 -
scala——常用操作:3. scala实现wordcount
原创 2019-04-25 00:46:48 · 1560 阅读 · 0 评论 -
scala——常用操作:2. 常用操作
ctrl+alt+V 自动创建变量名ctrl+alt+L 自动规范格式package test01object test {def main(args: Array[String]): Unit = {//创建一个listval list0 = List(2, 5, 9, 6, 7, 1, 8, 3, 4, 0)println(list0)//list每...原创 2019-04-25 00:44:51 · 1439 阅读 · 0 评论 -
scala——常用操作:1. lazy惰性操作
lazy定义的变量是惰性变量惰性变量是不可变变量,且只有在调用时才去执行package test01class test { }//只有在静态类object中才可以声明main方法object test1{def init(): Unit = {println("call init()")}def main(args: Array[String]): Unit ...原创 2019-04-25 00:44:16 · 1605 阅读 · 0 评论 -
scala——面向对象:4. 模式匹配
匹配字符串:package test01import scala.util.Random/*** 匹配字符串*/object test {def main(args: Array[String]): Unit = {val arr = Array("zhoudongyu","zhengshuang","guanxiaotong","yanzi")val name...原创 2019-04-25 00:41:20 · 1369 阅读 · 0 评论 -
scala——面向对象:3. 特质、抽象类、继承、重写
特质、抽象类、继承、重写特质:(trait)相当于java的接口。可以只声明变量,不赋值,但在调用时需要重写赋值可以只声明方法,不实现,但在调用时需要重写实现/*** 特质*/trait Flyable{//声明一个没有值的字段val distance: Int//声明一个没有实现的方法def fight: String//声明一个实现的方...原创 2019-04-25 00:40:18 · 1446 阅读 · 0 评论 -
运行spark——5. 实例:wordcount
IDEA代码:import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.SparkContext._object WordCount { def main(args: Array[String]): Unit = { val inputPath=args(0) val outputP...原创 2019-04-19 19:23:34 · 1779 阅读 · 0 评论 -
运行spark——4.sbt打jar包
sbt 是 scala 的编译工具安装:curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.reposudo mv bintray-sbt-rpm.repo /etc/yum.repos.d/sudo yum install sbt验证:(会等很长时间)root@hadoop01 ~]# sbtsbt...原创 2019-04-19 19:19:06 · 2115 阅读 · 0 评论 -
运行spark——3.idea打jar包
原创 2019-04-19 19:14:27 · 1500 阅读 · 0 评论 -
运行spark——2.spark-submit
spark-submit,以kmeans为例本地模式:使用setMaster("local"),在idea中直接右键run即可import org.apache.log4j.{ Level, Logger }import org.apache.spark.{ SparkConf, SparkContext }import org.apache.spark.mllib.cluste...原创 2019-04-19 19:12:24 · 2052 阅读 · 0 评论