自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 地表最强系列之浅谈Spark中的 repartition

repartition 源码 /** * Return a new RDD that has exactly numPartitions partitions. * * Can increase or decrease the level of parallelism in this RDD. Internally, this uses * a shuffle to redistribute data. * * If you are decreasing the num

2021-03-15 11:07:55 3211

原创 Hive 分区表 进行动态插入

创建分区表spark.sql( """ |create table mro_ns2_hive_db.tmp_mro_msisdn_njy_xgboots_105_ts_partitions |( |sc_longitude double |,sc_latitude double |,sc_pci double |,sc_freq

2021-01-09 15:49:31 318

原创 Spark 并行开发

开发前提这里,需要对全杭州经纬度进行xgboost模型的训练预测,需要采用CountDownLatch并行开发.CountDownLatchCountDownLatch介绍代码模板package com.nokia.zjbigdata.open.spark.imporaimport java.util.concurrent.{CountDownLatch, Executors}import ml.dmlc.xgboost4j.scala.spark.{XGBoostRegressionMo

2021-01-08 17:24:54 229

原创 2020-10-25

第二套请在 HDFS 中创建目录/app/data/exam,并将 answer_question.log 传到该目录[root@lijia1 exam]# hdfs dfs -mkdir /app/data/exam202007[root@lijia1 exam]# hdfs dfs -put ./answer_question.log /app/data/exam202007/scala> val log = sc.textFile(“hdfs://lijia1:9000/app/data

2020-10-25 12:29:39 230

原创 将json文件转化为DF格式

json文件1593136280858|{"cm":{"ln":"-55.0","sv":"V2.9.6","os":"8.0.4","g":"[email protected]","mid":"489","nw":"3G","l":"es","vc":"4","hw":"640*960","ar":"MX","uid":"489","t":"1593123253541","la":"5.2","md":"sumsung-18","vn":"1.3.4","ba":"Sumsung","sr":"I"}

2020-10-15 12:04:30 849

原创 KNN算法

K-近邻算法(KNN)概述最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中

2020-09-15 20:09:41 343

原创 项目三

flume采集部分部署flume客户端监控应用程序产生的日志信息,并发送到kafka集群中test.channels = c1test.sinks = k1test.sources.s1.type = spooldirtest.sources.s1.spoolDir = /opt/kb07file/flumeFile/testtest.sources.s1.deserializer = LINEtest.sources.s1.deserializer.maxLineLength = 6000

2020-09-14 19:22:42 65

原创 拉链表

user_his表useridusernamephonestart_dateend_date1001zhangsan130666666662020-09-019999-12-311002lisi130555555552020-09-019999-12-311003wangwu130777777772020-09-019999-12-31user_update表useridusernamephone10

2020-09-14 18:25:21 100

原创 物流项目笔记

数据清洗规则在我们的项目当中, 实际上数据清洗做了2件事, 第一个是按照分析需求进行数据过滤, 去重row_number()去重为什么要用row_number()?在我们去重的时候, 最简单的就是 distinct 弊端: 使用一个reduce进行处理, 效率低下, 生产环境一般不用我们常用的方式是row_number()+where rn=1 和 group by + max()数据清洗, 思考几个问题本地模式/集群模式在项目代码中提供了两种模式, 在运行时只需要通过参数传入, lo

2020-09-13 18:20:31 123

原创 数仓项目2笔记

在Mysql中生成原始数据在mysql中生成数据source /root/snbap_ods.sql;Hive分层这里的项目Hive分层有:ODS->DWD->DWS->DM(将DW层拆成了DWD,DWDS)DWD(data warehouse detail): 数据明细层DWS(data warehouse service): 数据服务层(轻度的汇总,DWS层一般是跨表的)DM(data market):数据集市层(高度汇总)将Mysql中的数据导入Hive的ODS

2020-09-09 00:12:19 217

原创 数仓项目笔记

库存管理子系统:领料单(领料单号,领料人,商品号,数量,日期)进料单(进料单号,订单号,进料人,收料人,日期)库存(商品号,库房号,库存量,日期)库房(库房号,仓库管理员,地点,库存商品描述)人事管理子系统:员工(员工号,姓名,性别,年龄,文化程度,部门号)部门(部门号,部门名称,部门主管,电话)主题一: 销售固有信息: 员工号,顾客号,商品号,数量,单价,日期员工信息: 员工号,姓名,性别,年龄,文化程度,部门号顾客信息: 顾客号,姓名,性别,年龄,文化程度,地址,电话商品信息:

2020-09-03 19:46:37 174

原创 Python函数和正则表达式

自定义函数定义函数def func_name(参数列表): 函数体 [return/yield 函数返回值] Python函数的特点函数参数类型多样允许嵌套函数无需声明函数返回值类型yield可以作为函数返回值的关键字函数能够被赋值给变量Python的函数参数无参函数位置参数关键字参数包裹位置参数包裹关键字参数无参函数def show_log(): print('I am a log')show_log()位置参数传入的参数与定义的

2020-08-25 23:50:22 175

原创 地表最强系列之Python入门

列表列表的特点用来储存多个数据的数据结构储存的数据是有序的,可使用位置索引列表长度和元素都是可变的可储存不同类型的数据列表的使用方法创建列表:a=[1,2,3,4,5,6,[1,2]]使用索引获取列表中的数据:x[0], x[2], x[-1], x[-3]判断值是否存在于列表中:a=[1,2,3,4,5,6,[1,2]] print(1 in a)元组元组的特点储存形式与列表相似与列表不同的地方:元素不可修改,长度不可改变常用于安全级别较高的场景应用元组的使用方法创建

2020-08-25 19:53:24 139

原创 清洗Kafka数据的API

public class UserFrienf { public static void main(String[] args) { //Properties类该类主要用于读取Java的配置文件 Properties prop=new Properties(); prop.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG,"192.168.174.41:9092"); prop.put(StreamsConf

2020-08-24 23:14:11 131

原创 地表最强系列之Spark数据分析及处理

数据样例2018-09-04T20:27:31+08:00 http://datacenter.bdqn.cn/logs/user?actionBegin=1536150451540&actionClient=Mozilla%2F5.0+%28Windows+NT+10.0%3B+WOW64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F58.0.3029.110+Safari%2F537.36+SE+2.X+MetaSr+1

2020-08-21 11:04:54 2734

原创 地表最强系列之Spark Streaming

Spark Streaming 是什么?Spark Streaming 是核心 Spark API 的扩展,支持可伸缩、高吞吐量、容错的实时数据流处理。数据可以从许多来源获取,如 Kafka、Flume、Kinesis 或 TCP sockets,可以使用复杂的算法处理数据,这些算法用高级函数表示,如 map、reduce、join 和 window。最后,处理后的数据可以推送到文件系统、数据库和活动仪表板。实际上,还可以将 Spark 的 MLlib 机器学习和 GraphX 图形处理算法应用于数据流。

2020-08-20 23:29:08 131

原创 地表最强系列之Kafka

Kafka的Linux环境搭建kafka_2.11-2.0.0 提取码:yft0 将安装包导入并解压$ tar -zvxf kafka_2.11-0.11.0.2.tgz -C /opt/install启动zookeeper集群zkServer.sh start修改server.properties中内容broker.id=0delete.topic.enable=truelisteners=PLAINTEXT://hadoop101:9092log.dirs=/da

2020-08-19 22:14:11 121

原创 地鳖最强系列之flume

flume的环境搭建flume-ng-1.6.0-cdh5.14.0.tar.gz 提取码:juak(base) [root@lijia1 install]# tar -zxf flume-ng-1.6.0-cdh5.14.0.tar.gz -C ../bigdata/(base) [root@lijia1 bigdata]# mv apache-flume-1.6.0-cdh5.14.0-bin/ flume160514(base) [root@lijia1 bigdata]# cd ./flu

2020-08-16 15:52:56 79

原创 SparkSQL与Hive的集成

Parquet类型文件Parquet文件:是一种流行的列式存储格式,以二进制存储,文件中包含数据与元数据//TODO 1.创建一个SparkSession 对象 val spark: SparkSession = SparkSession.builder() .master("local[4]").appName("test07") .getOrCreate() //导包 import spark.implicits._ val sc: Spar

2020-08-13 15:18:34 120

原创 地表最强系列之Spark SQL

Spark SQL架构Spark SQL是Spark的核心组件之一(2014.4 Spark1.0)能够直接访问现存的Hive数据提供JDBC/ODBC接口供第三方工具借助Spark进行数据处理提供了更高层级的接口方便地处理数据支持多种操作方式:SQL、API编程支持多种外部数据源:Parquet、JSON、RDBMS等Spark SQL运行原理Catalyst优化器是Spark SQL的核心,所有 SQL 操作最终都通过 Catalyst 翻译成类似的 Spark 程序代码被 Spa

2020-08-12 23:26:19 186

原创 地表最强系列之Spark GraphX

Spark GraphX 简介GraphX是Spark提供分布式图计算APIGraphX特点基于内存实现了数据的复用与快速读取通过弹性分布式属性图(Property Graph)统一了图视图与表视图与Spark Streaming、Spark SQL和Spark MLlib等无缝衔接图(Graph)的基本概念图是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种网状数据结构通常表示为二元组:Gragh=(V,E)可以对事物之间的关系建模应用场景在地图应用中寻找最

2020-08-10 23:29:21 187

原创 地表最强系列之Spark基础

什么是SparkApache Spark是专为大规模数据处理而设计的快速通用的计算引擎 [1] 。现在形成一个高速发展应用广泛的生态系统。Spark优势速度快基于内存数据处理,比MR快100个数量级以上(逻辑回归算法测试)基于硬盘数据处理,比MR快10个数量级以上易用性支持Java、Scala、Python、R语言交互式shell方便开发测试通用性一栈式解决方案:批处理、交互式查询、实时流处理、图计算及机器学习多种运行模式YARN、Mesos、EC2、Kubernetes、Sta

2020-08-05 17:15:25 189

原创 地表最强系列之Scala的扩展

模式匹配唱量模式常量模式仅匹配自身,任何字面量都可用做常量。def matchTest(x:Int):String=x match{ case 1=>"one" case 2=>"two" case _=>"many"}变量模式变量模式类似于通配模式,可以匹配任意对象,不过与通配符不同的是,Scala将变量绑定在匹配的对象上,随后可以使用该变量操作对象。val expr=10 expr match { case 0=>println("zero"

2020-08-01 19:10:43 189

原创 地表最强系列之:Scala的oop

Traittrait相当于java中的接口package ooptrait SayHello{ def sayHello(name:String)}trait ListenMusic{ def playMusic(musicName:String): Unit ={ println(musicName+"正在播放!") }}trait Fly{ def plySky(): Unit ={ println("起飞!!!!") }}trait Sea{

2020-07-29 23:49:46 138

原创 地表最强系列之Scala函数

函数定义//(a:Int,b:Int)表示输入参数的类型,:Int输出参数类型def fun(a:Int,b:Int):Int=if(a>b) a else b递归函数//在函数中使用函数def fun(a:Int):Int={if(a==1)1elsea+fun(a-1)}val result=fun(3)println(result)break的使用def fun(num:Int):Unit={import scala.util.control.BreaksBr

2020-07-27 20:15:58 126

原创 地表最强系列之带你学Hbase

什么是HBaseHBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的

2020-07-26 18:26:30 159

原创 地表最强系列之Scala下划线使用方法

导入通配符*在Scala中是合法的方法名,所以导入包时要使用_代替。//Javaimport java.util.*;//Scalaimport java.util._类成员默认值Java中类成员可以不赋初始值,编译器会自动帮你设置一个合适的初始值:class Foo{ //String类型的默认值为null String s;}而在Scala中必须要显式指定,如果你比较懒,可以用_让编译器自动帮你设置初始值:class Foo{ //String类型

2020-07-23 23:11:33 141

原创 地表最强系列之Sqoop安装以及使用

什么是SqoopSqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop的安装以及设置Sqoop安装包 提取码:m18x安装步骤 下载并解压1.上传安装包 sqoop-1.4.6-cdh5.14.2.tar.gz 到虚拟机

2020-07-23 00:27:34 129

原创 地表最强系列之Hive的性能优化

Hive性能调优工具ANALYZE:分析表数据,用于执行计划选择的参考收集表的统计信息,如行数、最大值等使用时调用该信息加速查询语法:ANALYZE TABLE employee COMPUTE STATISTICS; ANALYZE TABLE employee_partitioned PARTITION(year=2014, month=12) COMPUTE STATISTICS;ANALYZE TABLE employee_id COMPUTE STATISTICS FOR C

2020-07-18 17:28:04 149

原创 地表最强系列之:Hive的UDF函数

编写UDF的流程继承UDF类或GenericUDF类重写evaluate()方法并实现函数逻辑编译打包为jar文件复制到正确的HDFS路径使用jar创建临时/永久函数调用函数使用Java编写UDF函数//继承UDF类或GenericUDF类public class UDF extends org.apache.hadoop.hive.ql.exec.UDF { //重写evaluate()方法并实现函数逻辑. //注意这里的参数类型需要是可序列化的 public

2020-07-18 17:11:18 159

原创 地表最强系列之窗口函数

什么是窗口函数扫描多个输入行来计算每个输出值,为每行数据生成一行结果可以通过窗口函数来实现复杂的计算和聚合语法 :`Function (arg1,…, arg n) OVER ([PARTITION BY <…>] [ORDER BY <…>] [<window_clause>])功能:排序,聚合,分析`窗口函数 - 排序ROW_NUMBER()对所有数值输出不同的序号,序号唯一连续select * ,row_number() over(part

2020-07-11 22:52:57 166

原创 地表最强系列之Hive的高级查询语句

SELECT基础SELECT用于映射符合指定查询条件的行Hive SELECT是数据库标准SQL的子集1.使用方法类似于MySQL2.关键字和MySQL一样,不区分大小写3.limit子句4.where子句5.运算符、like、rlike6.group by子句7.having子句Hive的语句的书写顺序(1)select(2)from(3)join on(4) where(5)group by(6)having(7)distribute by/cluster by(

2020-07-09 23:14:50 210

原创 地表最强系列之带你学Hive

什么是Hive?hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表

2020-07-08 23:29:35 233

原创 地表最强系列之带你学Zookeeper

什么是ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper=文件系统+通知机制.Zookeeper从设计模式上来看是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册.一旦数据的状态发生变化,Zookeeper就将负责通知已

2020-07-06 22:43:25 102

原创 地表最强系列之带你学YARN

什么是YARNApache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。Hadoop1的时候并没有专门的资源调度器(JobTracker负责资源管理和程序调度),所以资源问题是Hadoop1的最大问题.Hadoop2.x MapReduce将JobTracker中的资源管

2020-07-05 14:59:25 189

原创 地表最强系列之带你学MapReduce

map task通过InputFormat接口中的TextInputFormat来读取文件package org.apache.hadoop.mapreduce;import java.io.IOException;import java.util.List;import org.apache.hadoop.classification.InterfaceAudience;import org.apache.hadoop.classification.InterfaceStability;imp

2020-07-03 23:51:42 156

原创 地表最强系列之:带你学HDFS

HDFS是什么?认识HDFSHDFS是Hadoop项目的核心子项目,用于大数据领域的数据储存 。HDFS是被设计成适合运行在通用硬件上的分布式系统它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。

2020-06-30 23:17:33 110

原创 地表最强系列之:HDFS的读写

安装并配置Mavenmaven教程编写Java程序public class TestHDFS { public static void writeToHDFS(String hdfsFile, String hdfsURL,String fileName) throws IOException { Configuration cfg=new Configuration();//配置对象 cfg.set("fs.defaultFS",hdfsURL);//获取

2020-06-29 23:40:58 135

原创 地表最强系列之:Maven的安装与配置

下载Maven的安装包Maven的安装包提取密码zrgq配置Maven修改maven的conf目录下的Settings.xml文件<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistribut

2020-06-29 23:17:02 180

原创 地表最强系列之:Hive的安装及配置

Hive的简介hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文

2020-06-28 21:22:41 148

空空如也

空空如也

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

TA关注的人

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