Hadoop
文章平均质量分 87
集群
珞沫
欲望以提升热忱,毅力以磨平高山。
展开
-
Spark之IDEA创建基于Scala语言的Spark Maven项目
创建MVN1、创建Maven工程1.1 新建一个工程1.2 设置Maven配置指向2、首先我们需要搭建好相关的环境,包括:IntelliJ IDEA(官网上下载最新的就行了)、JDK(1.8)、Scala(2.12.12)、Spark(3.0.1)、Hadoop(2.7.4)Maven(如果你下载的是最新版的IDEA的话就不用下载了,因为IDEA里面已经自带了)(安装完后记得添加环境变量)1、创建Maven工程1.1 新建一个工程创建出来就是这样的1.2 设置Maven配置指向Fi原创 2021-01-17 18:58:00 · 1590 阅读 · 0 评论 -
Spark之【运行模式、环境搭建】
运行模式1、 Local模式1.1 环境搭建1.2 启动spark-shell1.3 读取文件1.4 应用场景1.2、Spark Standalone模式1.2 启动Local模式\quad \quadSpark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,也提供了多种多样的集群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择Standalone模式(Spark自带的模式)、Spark on原创 2021-01-16 21:38:02 · 1018 阅读 · 0 评论 -
Spark之Spark任务的提交方式【Spark-shell、Spark-submit】
spark-shell1、概述2、启动1、概述\quad \quadSpark-shell 是 Spark 给我们提供的交互式命令窗口(类似于 Scala 的 REPL)2、启动直接启动bin目录下的spark-shell:./spark-shell<1>直接使用 ./spark-shell表示使用local 模式启动,在本机启动一个SparkSubmit进程<2>还可指定参数 --master,如:spark-shell --master local[原创 2021-01-16 20:45:09 · 11634 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【CheckPoint】
RDD CheckPoint1、概述2、作用3、特性3、应用1、概述\quad \quad虽然 RDD 的血缘(依赖)关系天然地可以实现容错,当 RDD 的某个分区数据失败或丢失,可以通过血缘关系重建。但是对于长时间迭代型应用来说,随着迭代的进行,RDDs 之间的血缘关系会越来越长,一旦在后续迭代过程中出错,则需要通过非常长的血缘关系去重建,势必影响性能。为此,RDD 支持 checkpoint 将数据保存到持久化的存储中,这样就可以切断之前的血缘关系,因为 checkpoint 后的 RDD 不需要知原创 2021-01-16 16:47:18 · 294 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【缓存】
RDD缓存1、概述2、 API2.1 cache()2.2 persist()3、 级别4、清理缓存5、应用场景1、概述\quad \quadSpark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中。当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以被这个集合(以及这个集合衍生的其他集合)的动作(action)重复利用。这个能力使后续的动作速度更快(通常快10倍以上)。对应迭代算法和快速的交互使用来说,缓存是一个原创 2021-01-16 15:10:38 · 299 阅读 · 0 评论 -
解决之Spark Sql读写Hive表(加载源数据为.csv形式 )数据不一致
问题:Hive查询:Spark SQL 查询同一张表,结果查询效果不一样spark sql查询的表第一行即是源数据的表头,至于为什么有的是空值,是因为其所在字段都设置成int了,不相符合。原因:1、Hive表中不出现表头即脏数据的原因是我在创建表的时候跳过了文件的第一行create table trains(order_id int,product_id int,add_to_cart_order int,reordered int)row format delimite原创 2021-01-15 18:02:42 · 1143 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【执行过程、编程模型:创建、转换、输出、运行过程】
4、创建创建RDD一般有三种方法1、通过数据集进行创建由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等val rdd1=sc.textFile("文件路径")2、通过集合来创建通过集合创建RDD有两种方法:parallelize与 makeRDDmakeRDD多一个重载方法:重载分配一系列本地Scala集合形成一个RDD,可以为每个集合对象创建一个分区,并指定优先位置便于在运行中优化调度。使用本地集合创建原创 2021-01-13 11:23:41 · 462 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【任务切分、运行路径】
RDD如何运行1、RDD到底做什么?2、任务切分3、RDD运行规划图1、RDD到底做什么?RDD 是一个应用层面的逻辑概念。一个 RDD 多个分片。RDD 就是一个元数据记录集,记录了 RDD 内存所有的关系数据。2、任务切分Application:一个能够打成 jar 包的 Spark 程序就是一个应用。里面应该有一个 SparkContext。Job:一个应用中每一个 Action 操作所涉及到的所有转换叫一个 Job。Stage:一个 Job 根据 RDD 之间的宽窄依赖关系划分原创 2021-01-13 10:46:48 · 206 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【DAG的生成和划分Stage】
DAG1、概念2、DAG的生成3、划分stage4、RDD运行规划图1、概念\quad \quadDAG(Directed Acyclic Graph) 叫做有向无环图。2、DAG的生成\quad \quad原始的RDD通过一系列的转换操作就形成了DAG有向无环图,任务执行时,可以按照DAG的描述,执行真正的计算(数据被操作的一个过程)。DAG的边界开始:通过SparkContext创建的RDD结束:触发Action,一旦触发Action就形成了一个完整的DAG3、划分stage原创 2021-01-13 10:35:44 · 190 阅读 · 1 评论 -
Spark之SparkCore:RDD-数据核心/API【依赖关系:宽窄依赖】
RDD 依赖关系1、窄依赖(narrow dependency)2、宽依赖(wide dependency)3、作用\quad \quadRDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。1、窄依赖(narrow dependency)窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用 (一对一的关系)常见算子:map flatmap filter union sampl原创 2021-01-12 21:53:35 · 261 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【算子】
RDD算子1、Transformation 转换 算子(lazy)2、动作算子 Actions(non-lazy)RDD的算子分为两类:Transformation转换操作:返回一个新的RDDAction动作操作:返回值不是RDD(无返回值或返回其他的)1、Transformation 转换 算子(lazy)RDD中的所有转换都是惰性求值/延迟执行的,也就是说并不会直接计算。Spark仅记录作用于RDD上的转换操作逻辑,当遇到动作算子( Action)时才会进行真正计算。RDD常见转原创 2021-01-12 21:15:33 · 234 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【概念、属性、特点】
RDD引言1、概念2、属性2.1 多分区2.2 compute函数2.3 依赖关系2.4 分区器(Partitioner)2.5 分区优先位置列表3、特点4、创建引言为什么要有RDD?\quad \quad在许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘中,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。但是,之前的MapReduce框架采用非循环式的数据流模型,把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销。且这些框架只能支持一些特定的计原创 2021-01-12 20:45:31 · 492 阅读 · 0 评论 -
Spark之【体系架构、API】
Spark1、Spark 架构2、 Spark API2.1 SparkContext2.2 SparkSession3、核心组件1、Spark 架构Spark架构主要由以下组件构成:Application: 建立在 Spark上的用户程序,包括 Driver代码和运行在集群各节点 Executor中的代码Driver program: 驱动程序, Application中的main函数并创建 SparkContextCluster Manager : 在集群(Standalone、Mesos、原创 2021-01-12 15:25:15 · 404 阅读 · 1 评论 -
Spark之【简介、特点、生态架构】
Spark1、简介2、四大特性2.1 高效性2.2 易用性2.3 通用性2.4 兼容性3、生态架构3.1 Spark Core3.2 Spark Streaming3.3 Spark SQL3.4 Spark MLlib3.5 GraphX1、简介\quad \quadApache Spark是一个开源的、强大的、分布式的并行计算框架,是一个实现快速通用的集群计算平台,用于大规模数据处理的统一分析引擎。它是由加州大学伯克利分校AMP实验室 开发的通用内存并行计算框架,用来构建大型的、低延迟的数据分析原创 2021-01-11 20:54:07 · 797 阅读 · 0 评论 -
Hive之Hive文件存储格式
文件存储格式引言1、TextFile2、sequencefile3、orc4、 parquet引言\quad \quadHive支持的存储数的格式主要有:TextFile、SEQUENCEFILE、ORC、PARQUET。其中,TEXTFILE、SEQUENCEFILE是基于行存储,ORC、PARQUET基于列存储。行存储和列存储上图中左边为逻辑表,右上为行存储,右下为列存储。行存储特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到原创 2021-01-09 16:32:59 · 328 阅读 · 0 评论 -
Hive表设置支持中文注释、中文表数据导入
问题1、创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱create table student_score(stu_id string comment '学生id',stu_name string,courses string,scores string ); 这是因为在MySQL中的Hive元数据不支持中文,故出现乱码。2、加载中文数据到表中,结果出现乱码hive> insert into student_score values原创 2021-01-07 16:05:27 · 4543 阅读 · 0 评论 -
Hive之深入了解元数据
元数据引言1、Hive 元数据2、Hive 元数据表2.1 Hive 库2.2 VERSION 表2.3 Hive数据库相关的元数据表2.3.1 DBS—数据库表2.3.2 DATABASE_PARAMS表—数据库参数表2.4 Hive数据表相关的元数据表2.4.1 TBLS表—数据表的元数据表2.4.2 TABLE_PARAMS表—数据表属性信息表2.4.3 TBL_PRIVS—授权表2.5 Hive文件存储信息相关的元数据表2.5.1 SDS表2.5.2 SD_PARAMS表2.5.3 SERDES表原创 2021-01-07 14:49:19 · 7285 阅读 · 0 评论 -
Hive实践5之【分割函数(split)、行转列函数(explode)、lateral view】
小小实践1、split 函数—分割2、explode函数—行转列2.1 用于array类型的数据2.2 用于map类型的数据2.3 如何将其用入string类型的数据2.4 explode函数的局限性3、lateral view1、split 函数—分割作用: split()函数是用于切分数据,也就是将一串字符串切割成了一个数组,语法: split(string str, string pat)string str :待分割字符串string pat:分割符返回值: array原创 2021-01-07 10:28:57 · 15206 阅读 · 1 评论 -
Hive实践4之【列转行函数(collect_list、collect_set)、合并函数(concat、concat_ws)】
1、列转行函数Hive中collect相关的函数有collect_list、collect_set,两者都是将分组中的某一列转化为一个数组返回,需要与group by函数联合使用区别:collect_list不去重collect_set去重例子:原创 2021-01-06 17:06:47 · 5265 阅读 · 0 评论 -
Hive实践3之【排序及优化(order by,sort by,distribute by,cluster by)对比】
排序在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别:order bysort bydistribute bycluster by准备工作:Hive 提供了多重排序语句,我们这里对这几种排序方法做一解析,并进行测试编排如下:试验场景Hive 中的 ORDER BY 与其不足Hive 中的 SORT BY,DISTRIBUTE BYHive 中的CLUSTER BY 与其不足完成相同功能的Job 执行原创 2021-01-02 15:52:16 · 1951 阅读 · 3 评论 -
Hive实践2之【分桶】
分桶1、分桶原理2、分桶操作3、分桶实践4、分桶应用—数据抽样为什么要分桶?单个分区或者表中的数据量越来越大,当分区不能更细粒的划分数据时,所以会采用分桶技术将数据更细粒度的划分和管理。通俗点来说就是分区是分文件夹,分桶是将文件夹下的文件分成几个文件块去存储。比如表文件中本来是1000000条数据,由于在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便,所以我们可以分多个文件去存储。1、分桶原理分桶表是对列值取哈希值的方式,将不同数据放到不原创 2020-12-31 11:27:52 · 736 阅读 · 0 评论 -
Hive实践1之【静态分区及动态分区基本操作】
Hive分区引言1、静态分区1.1 静态分区——单分区1.2 静态分区——多分区引言分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。Hive中支持的分区类型有两种:静态分区动态分区静态分区和动态分区的主要区别在于静态分区需要手动指定,而动态分区是基于查询参数的位置去推断分区的原创 2020-12-30 21:10:51 · 1493 阅读 · 0 评论 -
Hive小技巧之查看函数定义的方法
Hive命令行窗口查看函数定义语法:desc function 函数名;原创 2020-12-29 16:19:02 · 298 阅读 · 0 评论 -
Win10环境下JDK8、maven下载安装以及环境变量配置
1、安装JDK81.JDK8下载地址:链接:https://pan.baidu.com/s/1gUG-8ElDPt4C7lm6QWxRhQ提取码:hutp2、jdk,jreJRE: Java Runtime EnvironmentJDK:Java Development KitJRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。JDK顾名思义是java开发工具包,是程序员使用j原创 2020-12-22 19:44:12 · 1652 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-4):Hive 优化
Hive 优化引言1、配置优化1.1 数据存储格式引言\quad \quadHive的底层是MapReduce,当数据表太大时,往往可以通过并行来提高效率,比如通过分区实现运行多个reduce,可是如果处理不当则容易引发数据倾斜,从而导致效率较低,这就涉及到Hive 的优化。Hive的优化主要分为3个方面,即配置优化、MapReduce优化、程序优化。1、配置优化1.1 数据存储格式Hive文件存储格式有以下几种:其中TextFile是Hive默认的文件存储格式对于大量数据的情况下,工作中原创 2020-12-21 20:18:11 · 649 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-3):常用业务操作实践
1、建库首先我们建一个库,以运行下面的任务create database test;切到这个库下:use test;2、将相关的数据进行建表现有用户历史行为数据orders,订单—商品详细数据order_products__train,基于这两数据解决一些实际问题首先将所需要的数据通过Xshell上传到本地文件2.1 创建orders,trains表下面演练一下创建orders表过程,order_products_train表同理创建orders表2.1.1 首先查看一原创 2020-12-21 10:03:54 · 915 阅读 · 1 评论 -
Hive表中load数据时,过滤首行表头
\quad \quad向Hive表中load数据的时候,一般被加载数据是不包含表头的,对于被加载数据包含表头,则需要通过以下方法变通解决。一般来说,hive加载csv文件时总是会把表头加载进来。hive 加载csv格式去除首行,有以下几种办法:方式一:shell命令思想:在load数据之前,将原数据的第一行去掉,其余数据定向输出到一个新文件里,然后我们用新文件的数据加载表sed '1d' tmp.csv > tmp_res.csvcat tmp_res.csv方式二:HQL (hi原创 2020-12-20 21:20:13 · 6230 阅读 · 0 评论 -
Hive查询语句中显示列名(字段名)
要想在hive查询语句中只显示列名,我们可以在hive命令行中手动开启:-- 显示列名set hive.cli.print.header=true; 此时显示的字段名带表名,可读性很差,列名会十分冗长,继续输入以下命令:-- 不显示表名set hive.resultset.use.unique.column.names=false;但是上述条命令有个弊端,那就是命令只能在当前会话有效,退出hive就失效,所以我们可以使用下面的方法让命令自动生效。在hive/conf/hive-site.x原创 2020-12-20 20:43:39 · 7473 阅读 · 2 评论 -
Hive处理数据结果保存
1、查询结果保存到本地一个目录hive> insert overwrite local directory "存放结果目录" > row format delimited fields terminated by "\t" > select * from orders limit 10;存放结果目录为本地已有的目录row format delimited fields terminated by “\t” 指存放结果时以什么方式分割数据最后也就是相关任务原创 2020-12-19 19:53:58 · 1603 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-2):基本命令、基本操作
Hive 基本操作1、数据库基本操作2、数据表的基本操作2.1 创建内部表2.2 创建外部表2.3 将数据加载到表中2.4 显示指定表的信息2.5 显示指定表的详细信息2.6 内部表与外部表的转换2.7 表重命名2.8 修改字段名或字段类型2.4 小实践首先:1、启动集群start-all.sh2、启动Hive:hive1、数据库基本操作创建数据库create database test;创建数据库并指定hdfs的存储位置create database test1原创 2020-12-19 16:51:34 · 444 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-1):简介、数据类型、架构、数据模型、安装
Hive——Hadoop的数据仓库框架引言1、Hive简介2、Hive VS 数据库2.1 对比传统关系型数据库2.2 HQL VS SQL3、Hive数据类型4、Hive架构引言引入Hive框架原因对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一堆MapReduce代码,比较麻烦对于统计任务,只能由动MapReduce的程序员才能搞定耗时耗力Hive基于一个统一的查询分析层,通过SQL语句的方式对HDFS上的数据进行查询、统计和分析1、Hive简介原创 2020-12-18 12:18:24 · 744 阅读 · 0 评论 -
Centos7安装MySQL5.7数据库并更改密码、开启远程访问权限的设置
前提说明:\quad \quadLinux 的软件安装目录是也是有讲究的,Linux 安装程序一般都要放到/usr/local目录下原因:/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或原创 2020-12-15 21:26:52 · 766 阅读 · 0 评论 -
大数据之Hadoop2.0框架之YARN(四)
YARN——Hadoop的集群资源管理系统引言1、YARN -(Yet Another Resource Negotiator )2、YARN 的核心思想2.1 MapReduce1.02.2 YARN、MRv23、YARN 架构3.1 核心概念3.2 YARN工作流程3.3 YARN 优势3.4 YARN 容错能力引言\quad \quadHadoop1.0中的MapReduce框架中的JobTracker/TaskTracker在可扩展性、内存消耗、可靠性和线程模型方面存在很多问题,因此Hadoo原创 2020-12-15 16:50:32 · 746 阅读 · 1 评论 -
大数据之Hadoop分布式计算框架MapReduce(三)
MapReduce一、MapReduce概述1.1 MapReduce定义1.2 MapReduce优缺点1.3 应用场景二、MapReduce框架原理2.1 执行流程2.2 MapReduce编程模型2.3 单词统计小案例一、MapReduce概述1.1 MapReduce定义\quad \quadMapReduce是一个用于处理海量数据的分布式计算框架,并发运行在一个Hadoop集群上。1.2 MapReduce优缺点优点MapReduce易于编程它简单的实现一些接口,就可以完成一个分原创 2020-12-15 14:20:15 · 853 阅读 · 0 评论 -
解决安全模式”mkdir: Cannot create directory /hadoop001/test. Name node is in safe mode.“Bug
刚刚在hadoop想创建一个目录的时候,发现报错了具体信息如下:问题:\quad \quad从错误信息可以看到hadoop当前的Name node是处于安全模式。问题原因\quad \quadhdfs在启动开始时会进入安全模式,这时文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不原创 2020-12-11 21:47:30 · 5885 阅读 · 4 评论 -
大数据之Hadoop框架之HDFS(二)
HDFS一、HDFS概述一、HDFS概述\quad \quadHDFS 是Hadoop自带的分布式文件系统,即Hadoop Distributed File System。HDFS是一个使用Java语言实现的分布式、可横向扩展的文件系统。原创 2020-12-11 12:57:10 · 894 阅读 · 1 评论 -
大数据之Hadoop框架(一)
Hadoop一、Hadoop概述二、Hadoop核心组件2.1 HDFS2.2 MapReduce2.3 YARN三、Hadoop应用四、Hadoop优势及意义4.1 优势4.2 意义一、Hadoop概述\quad \quad Apache™ Hadoop® 是一个开源的, 可靠的(reliable), 可扩展的(scalable)用于大数据存储、计算、分析的分布式存储系统和分布式计算框架。允许使用简单的编程模型跨计算机集群分布式处理大型数据集可扩展的: 从单个服务器扩展到数千台计算机,每台计算机原创 2020-12-10 18:24:24 · 415 阅读 · 0 评论 -
初识大数据
大数据一、什么是大数据二、大数据特征三、大数据技术框架四、大数据计算模式五、大数据在各个行业中的应用一、什么是大数据\quad \quad什么是“大数据”呢?如果从字面意思来看,大数据指的是巨量数据。那么可能有人会问,多大量级的数据才叫大数据?不同的机构或学者有不同的理解,难以有一个非常定量的定义,只能说,大数据的计量单位已经越过TB级别发展到PB、EB、ZB、YB甚至BB来衡量。(从数据大小的单位来看,数据大小的单位可以分为Bit<Byte<KB<Mb<GB<TB<原创 2020-12-10 17:34:28 · 288 阅读 · 0 评论