- 博客(59)
- 收藏
- 关注
原创 Fluem 数据集成
1.监控 一个目录,将数据打印出来创建 spoolingtest.confa: 代表agent的名称type=spooldir ; 监控一个目录,只要目录中有新的文件就会被取过来,不能出现文件名一样的文件a.sources = r1a.sinks = k1a.channels = c1#指定spooldir的属性a.sources.r1.type = spooldira.sources.r1.spoolDir = /usr/local/soft/dataa.sources.r1.fil
2020-11-21 22:51:01
487
原创 sqoop 数据集成
############ mysql 数据集成 到 hdfs 中创建一个 .conf 文件 将参数 放进去 直接 sqoop --options-file 文件名.conf 就可以执行了import–connectjdbc:mysql://master:3306/user //mysql 地址–username // 用户root–password //密码123456–table //表名student–m
2020-11-21 21:51:41
365
原创 hive 数据库删除语句
1.删除空数据库hive>drop database db_hive2;2.如果删除的数据库不存在,最好采用 if exists判断数据库是否存在hive> drop database db_hive;FAILED: SemanticException [Error 10072]: Database does not exist: db_hivehive> drop database if exists db_hive2;3.如果数据库不为空,可以采用cascade命令,强制删
2020-11-16 16:07:00
2037
原创 Spark BlockManager
blocakManager 也叫作快管理器是存放在Executor 中BlockManager中含有四个 组件1.ConnectionManager 作用:和其他Executor中的BlockManager 建立连接2.BlockTransferService 作用:拉取数据3.MemoryStore 作用:管理内存数据4.DiskStore 作用: 管理磁盘上的数据blockManager 用来存储三种数据1.RDD的缓存数据 2. 广播变量和累加器 3.shuffle的文件广播变量拉
2020-11-11 00:24:44
218
原创 Spark 累加器
1.在算子内部修改Driver端的一个变量是不会生效的,因为算子里面的代码在 Executor 端运行算子外卖的代码在Driver 端运行,属于不同jvm2.在Driver端定义一个累加器3.在executor 端进行累加4.在Driver端进行获取累加结果//读取分数表val student: RDD[String] = sc.textFile(“spark/students.txt”)// 定义累加器 Acval acc: LongAccumulator = sc.longAccumul
2020-11-10 21:28:28
183
原创 spark广播变量
1.当在算子内使用到Driver端的一个变量的时候,这个变量封装到Task中,变为一个变量副本,发送到Executor中执行2.由于task 的数量一般大于executor 的数量,会产生很多的变量副本,会降低任务执行的速度3.使用广播变量的步骤在 Driver端定义一个广播变量在算子中如果使用到广播变量,会先向executor 中索取如果executor中没有这个广播变量,executor回去Driver端获取广播变量后续的 Task 可以直接使用使用广播变量后 广播变量的 副本数 M<
2020-11-10 21:10:23
207
原创 Spark checkpoint
1.将Rdd 的数据保存到Hdfs 会切断Rdd 的依赖关系2.当第一个job执行完成之后会向前回溯,如果有RDD 做了checkpoint ,会打上一个标记3.重新启动一个Job任务计算RDD 数据,将RDD 的数据保存到Hdfs4.在Checkpoint 前可以先缓存一下val sc = new SparkContext(conf)//设置checkpoint的路径sc.setCheckpointDir(“spark/data/checkpoint”)//读取分数表val student
2020-11-10 18:11:08
156
原创 Spark 缓存
1.Rdd 中默认不保存数据2.如果多次使用Rdd 中的数据 可以将RDD 进行缓存3.缓存级别 , 常用三种Memry_only 内存足够的时候 推荐Memory_only_serMemory_and_dsik_ser4.缓存的数据实际保存在 executor的内存或者磁盘上是由BlockManager 来管理...
2020-11-10 18:04:07
114
原创 Spark 任务调度 资源调度
资源调度分为两种一种是 client 用于测试当代码中出现 New SparkConf在本地启动一个 Driver 和executor 并向 ResourceManager 申请 一个启动 ApplicationManager 的节点 ,ResourceManager 接到申请后启动 ApplicationManager ,ApplicationManager 启动后 向ResourceManager申请资源,ResourceManager 会随机向 NodeManager 启动Containe.
2020-11-10 17:36:36
214
原创 spark 隐士转换
如果 这里 导入 后 不可以引用的 $" * " 的话 要看看 你的 sparkSession 的 名字是什么这个 如果 是你别的 名字 你导入的 就要换 你写的 那个名字如 val ssss =SparkSession就应该导入 import ssss.implicits._...
2020-11-08 12:45:21
263
原创 Spark 运行模式
Spark 运行 模式 分为 四种local 本地运行独立集群 基本上已经淘汰了 我就不说了yarn 模式 目前 公司 主流模式mesos我今天 主要 介绍 Yarn 模式 其他模式 不多说Yarn 模式 主要分为 两种 模式yarn-client 模式yarn-cluster 模式yarn-client1.Driver 实在 本地启动的 主要负责任务的调度任务调度 构建 DAG 有向无环图2.DAGScheduler 根据宽窄依赖切分 Stage ,DagScheduler将
2020-11-06 00:53:33
125
原创 Spark RDD五大特征
1.Rdd由一组分区组成 (partition) 默认是一个block 对应一个分区2.每个分区都有一个 Task 来处理 ,函数实际上 是作用在每一个分区上的3.RDD 直接由一系列的依赖关系 宽依赖 与窄 依赖宽依赖 存在 shuffle 算子分区对应的关系 是一对多 关系 窄依赖 没有 shuffle 算子 分区对应一对一关系根据宽窄依赖切分 Stage , Stage 是一组并行计算的 task4.分区类算子都会作用在 key value 的 RDD 上5.spark为 task 提.
2020-11-06 00:44:07
2756
原创 Spark-sql 链接hive 元数据 数据的表
需要修改 hive conf 中的 hive-site.xml 文件增加过这个配置之后 hive 就会用不了接下来启动hive元数据服务nohup hive --service metastore >> metastore.log 2>&1 &启动过后 jps 会有 一个 runjar配置环境 变量 可以直接 执行 没有 的 话 要去 hive bin 目录下 执行2、将hive-site.xml 复制到spark conf目录下4、 将mysql
2020-11-05 23:44:31
241
原创 Exception in thread “main“ org.apache.spark.sql.AnalysisException: Table or view not found: student;
sqark sql 在创建视图的时候 会出错 是因为 使用的 临时 视图要改成 局部的
2020-11-05 16:39:48
1550
原创 Spark 算子
1.map:将原来RDD的每个数据项通过 map 中的用户自定义函数映射转变为一个新的元素。输入一条输出一条;val newRDD = listRDD.map(line=>line.split(",")) //每一行变成了一个数组2.flatMap:先进行一次 map 操作,然后把输出的结果合并成一个对象listRDD.flatMap(line=>line.split(",")).foreach(println)//一行变成多行//输出结果// a// b//
2020-11-01 23:50:27
148
1
原创 spark 常用算子 1
1.map 对数据进行处理 传入一行返回一行2.filter3.FlatMap4.sample5.groupByKey6.ReduceBykey7.Union8.JOin
2020-11-01 23:49:30
110
原创 java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org
这个 FileSplit 的jar 包是错误的
2020-10-28 14:44:10
337
原创 Scala WordCount
object Demo17WordCount {def main(args: Array[String]): Unit = {//1、读取数据val lines: List[String] = Source.fromFile("scala/data/words.txt").getLines().toList//2、使用flatMap 将单词展开val words: List[String] = lines.flatMap(line => line.split(","))//3、按照单
2020-10-27 23:10:39
106
原创 Scala Map
object Demo16Map {def main(args: Array[String]): Unit = {/** * map : key-value * */// 不可变mapval map = Map("001" -> "张三", "002" -> "李四", ("003", "王五"))//通过key获取valueprintln(map("001")) //如果key不存在会报错println(map.getOrElse("005", "默认值"))
2020-10-27 23:09:55
91
原创 Scala Set集合
object Demo15Set {def main(args: Array[String]): Unit = {/** * * Set : 无序唯一 * *///默认是一个不可变的集合val set = Set(100, 1, 2, 3, 1, 2, 2, 1, 1, 12, 1)println(set)val l = List(1, 2, 3, 1, 1, 21, 2, 3, 1, 2)//对list去重println(l.distinct)println(l
2020-10-27 23:08:40
399
原创 Scala 元祖
/*** 元组 : 不可变集合*/val t=(1,2,3,4,5,6)val t1=Tuple4(1,2,3,4)println(t1._2)//元组可以直接通过 _下标方式获取数据//在写代码的时候 已经明确了集合的长度,不肯能下标越界println(t._1)
2020-10-27 23:07:20
96
原创 Scala ListBuffer 可变集合
object Dome13ListBuffer {def main(args: Array[String]): Unit = {/***可变集合* listBuffer* scala.collection.mutable.所在集合*scala.collection.immutable*/val as: ListBuffer[Int] = new ListBuffer[Int]//增加元素as += 5as += 10as += 111// 指定下标插入元素as.insert(1,
2020-10-27 23:06:48
262
原创 Scala list 集合
def main(args: Array[String]): Unit = {/*** scala 中集合分为* list:有序(插入顺序)。可以重复* Set:无序,唯一* Map:key-value* Tuple:相当于数组**/// List :默认是不可变的集合val list: List[Int] = List(1,2,3,5,600,8,4,5)println(list.sum) //求和println(list.max) //获取最大值println(list.min
2020-10-27 23:05:34
234
原创 连接zk 报错连接不上hbase jdbc
看一下 设置的依赖 是否有问题还有编码格式org.apache.maven.pluginsmaven-compiler-plugin1.81.8在依赖中添加这个
2020-10-25 11:19:25
375
原创 Phoenix 调优
1、建立索引超时,查询超时修改配置文件,hbase-site.xml两个位置phoenix-4.15.0/binhbase-1.4.6/conf所有节点增加配置phoenix.query.timeoutMs500000建与不键是有很大差距的,数据越大差距越大hbase 建表的时候可以预分区,Phoenix建表的时候也可以预分区CREATE TABLE IF NOT EXISTS STUDENT (id VARCHAR NOT NULL PRIMARY KEY,name VARC
2020-10-25 10:04:40
285
原创 Phoenix二级索引
3、Phoenix二级索引对于Hbase,如果想精确定位到某行记录,唯一的办法就是通过rowkey查询。如果不通过rowkey查找数据,就必须逐行比较每一行的值,对于较大的表,全表扫描的代价是不可接受的。1、开启索引支持# 关闭hbase集群stop-hbase.sh# 在hbase-site.xml中增加如下配置 phoneix 与 hbase 的都要去设置<property> <name>hbase.regionserver.wal.codec&
2020-10-24 22:04:42
196
原创 Phoenix
Phoenix是hbase 的一个工具 ,可以将hbase中的数据通过sql语句执行默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的,而在phonenix中创建 可以在hbase shell 通过 list查看 (因为hbase中的表示没有结构的只有一个表名和列蔟,而phonenix中的表示结构表, 不过可以通过phonenix表映射获取hbase中键的表视图映射put ‘test’,‘001’,‘name:firstname’,‘zhangsan’put ‘test’,‘00
2020-10-24 21:21:14
169
原创 hbase 过滤器
//正则比较器//RegexStringComparator rex = new RegexStringComparator(“理科*”);//字符串包含比较器//SubstringComparator rex = new SubstringComparator(“文科”); //前缀二进制比较器 // BinaryPrefixComparator rex = new BinaryPrefixComparator("文科".getBytes()); //二进制
2020-10-24 21:10:51
124
原创 hive 与 HBase的区别及应用场景
1.定义hive是基于hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,默认情况下可以将sql语句转换为mapreduce 任务进行运行HBase 是Hadoop 的数据库 ,一个分布式 可扩展,大数据的存储2.区别hivesql 默认转换为MapReduce进行计算,所以比较慢,只能做离线数据分析,不能做实时查询HBase 是nosql 数据库,是物理表,不是逻辑表,虽然数据是存储在hdfs,但是读写非常快,适合做大数据量的即时查询3联
2020-10-21 09:43:06
419
原创 Hbase shell 命令
进入Hbase shell语法:create , {NAME => , VERSIONS => }创建一个User表,并且有一个info列族create ‘User’,‘info’listdescribe ‘User’查看表的详细删除指定的列族alter ‘User’, ‘deletc’ => ‘info’增加新的列族alter ‘User’, NAME => ‘info’插入数据语法:put ,,family:column,put ‘User’, ‘
2020-10-20 22:43:09
254
原创 HBase 简介
1.HBase-Hadoop database,是高可靠性、高性能、面向列、可伸缩实时读写的分布式数据库2.mysql 是单机的 可以实时查询 数据量小hbase 数据量大 在hdfs上 可伸缩 最终存在hdfs上,hbase 会在hdfs 基础上键很多索引索引 用空间换时间 hbase 就是用空间换时间 的框架 当然也会有冗余3.利用Hadoop Hdfs 作为其文件存储系统,利用hadoop MApreduce 来处理Hbase 中的海量数据,利用Zookeeper 作为其分布式协同服务h
2020-10-20 22:18:33
192
1
原创 hive 窗口函数
hive高级函数:row_number、rank、dense_rank这三个窗口函数的使用场景非常多row_number()从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位DENSE_RANK() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位例子:员工表中,求每个岗位薪水前两名的员工信息(name,入职日期,sal)row_numbe
2020-10-18 22:51:21
97
原创 hive 是什么
hive 是做数据仓库的工具之一,不是数据仓库,更不是数据库;hive 是站在hdfs上面 没有hdfs就没有hive,hive是建立在Hadoop 上的数据仓库基础架构。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive定义了简单的类sql查询语言,成为Hql,他熟悉sql的用户查询数据。同时,这个语言也允许熟悉MapReduce开发者的开发自定的mapper和reducer 来处理内建的mapper和red
2020-10-18 22:49:04
2467
原创 hive 分区表 分组表 分桶表
第一种常用新建原始表:create [EXTERNAL] table vv_stat_fact(userid string,stat_date string,tryvv int,sucvv int,ptime float)PARTITIONED BY ( 非必选;创建分区表dt string)clustered by (userid) into 3000 buckets // 非必选;分桶子ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’
2020-10-16 13:20:44
424
原创 hadoop 优化方式
hadoop 优化:MapReduce:Map:切片优化:调整map的数量当集群的资源(cup,内存)比较充足。可以适当将切片大小,调小。这个时候会增加map的数量,加快读取处理速度。当集群的资源(cup,内存)比较紧缺,可以适当将切片大小,调大。这个时候会减少map的数量,可以一定程度提高效率。数据本地化,任务本地化处理:可以适当增加副本数(前提是磁盘空间充足)调整Reduce数量:reduce的数量默认由分区决定,也可以直接手动设置reduce个数。job.setNumReduce
2020-10-14 20:03:15
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人