震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧)

这篇具有很好参考价值的文章主要介绍了震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Hadoop生态圈的构成

Hadoop生态圈的主要组成部分:

1,Hadoop分布式文件系统(HDFS):

2,MapReduce:

MapReduce具有如下特点:

3,YARN:

Yarn具有如下特点:

4,Hive:

Hive应用场景

5,Pig:

Pig与Hive的比较

6,HBase:

HBase的特点

7,ZooKeeper:

Zookeeper解决分布式环境下数据管理问题:

8,Spark:

Hadoop生态系统的特点

二,重点介绍mapreduce概述

MapReduce的体系结构

各个执行阶段流程图

​编辑

MapReduce提供了以下的主要功能:

1)数据划分和计算任务调度:

2)数据/代码互定位:

3)系统优化:

4)出错检测和恢复:

MapReduce设计上具有以下主要的技术特征:

1)向"外"横向扩展,而非向"上"纵向扩展

2)失效被认为是常态

3)把处理向数据迁移

4)顺序处理数据、避免随机访问数据

5)为应用开发者隐藏系统层细节

6)平滑无缝的可扩展性

三,介绍spark技术特点和概述

1、Spark概述  

2、Spark的特点

3、Spark生态系统

4、Spark运行架构与原理

5、Spark运行基本流程

四,mapreduce和spark的区别

1. Spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。

2. Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数。

3.Spark是粗粒度资源申请,而MapReduce是细粒度资源申请。

Spark的优势:

五,结构化数据与非结构化数据

结构化数据:

非结构化数据:

结构化数据和非结构化数据的区别

结构化数据和非结构化数据的应用

结构化数据的应用:

非结构化数据的应用:

六,Linux简单操作命令

linux文件与目录操作


一、Hadoop生态圈的构成

Hadoop生态圈是由一系列基于Hadoop开发的相关工具、库、应用程序、平台和服务组成的生态系统。它们都是用于大数据处理、分析和存储的技术,旨在解决大规模数据处理问题。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

Hadoop生态圈主要包含了资源调度器、计算框架、分布式存储、数据仓库、分布式数据库、分布式协调框架、日志收集工具、消息队列、可视化任务调度器等,由Apache基金会所开发,以下是

Hadoop生态圈的主要组成部分:

1,Hadoop分布式文件系统(HDFS):

HDFS是一个分布式文件系统,可以存储大量的数据。它将数据划分成 块,存储在多个节点上,并提供高可靠性和容错性,以确保数据不会丢失。

例如,如果一个节点失败,HDFS可以自动将其数据复制到其他节点,从而保证数据的可靠性。

2,MapReduce:

MapReduce是一个分布式计算模型,用于处理大规模数据集。它将数据划分成小块,然后在分布式计算集群上并行处理这些块。MapReduce的核心是“map”和“reduce”两个阶段。

在“map”阶段,将数据分解成键值对并进行处理;在“reduce”阶段,对中间结果进行合并和汇总。

例如,可以使用MapReduce对Web日志文件进行分析,以了解用户的访问模式和行为。

MapReduce具有如下特点:
  1. 良好的扩展性
  2. 高容错性
  3. 适合PB级以上海量数据的离线处理
3,YARN:

YARN是一个资源管理器,用于管理Hadoop集群中的计算资源。它可以分配计算资源,管理应用程序,并提供集群级别的安全性和控制。

例如,YARN可以分配计算资源,让Spark应用程序在集群上运行。

Yarn具有如下特点:
  1. 良好的扩展性、高可用性
  2. 对多种数据类型的应用程序进行统一管理和资源调度
  3. 自带了多种用户调度器,适合共享集群环境
4,Hive:

Hive由facebook开源,最初用于解决海量结构化的日志数据统计问题;是一种ETL(Extraction-Transformation-Loading)工具。它也是构建在Hadoop之上的数据仓库;数据计算使用MR,数据存储使用HDFS。

Hive定义了一种类似SQL查询语言的HiveQL查询语言,除了不支持更新、索引和实物,几乎SQL的其他特征都能支持。它通常用于离线数据处理(采用MapReduce);我们可以认为Hive的HiveQL语言是MapReduce语言的翻译器,把MapReduce程序简化为HiveQL语言。但有些复杂的MapReduce程序是无法用HiveQL来描述的。

HQL(HiveQL)用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

Hive提供shell、JDBC/ODBC、Thrift、Web等接口。

Hive应用场景
  1. 日志分析:统计一个网站一个时间段内的pv、uv;比如百度。淘宝等互联网公司使用hive进行日志分析
  2. 多维度数据分析
  3. 海量结构化数据离线分析
  4. 低成本进行数据分析(不直接编写MR)
5,Pig:

Pig由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc数据分析工具。它通常用于进行离线分析

Pig定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。

Pig是一个数据分析工具,可以处理非结构化数据。它提供了一个脚本语言,可以将脚本转换为MapReduce任务。

Pig有三种运行方式:Grunt shell、脚本方式、嵌入式。

例如,可以使用Pig处理社交媒体上的文本数据,并提取有用的信息。

Pig与Hive的比较

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

6,HBase:

HBase是一个分布式的非关系型数据库,可以处理非常大的数据集。它提供了高度可伸缩性和容错性,可以存储海量的数据。

例如,可以使用HBase存储物联网传感器数据,并对数据进行分析。

HBase的特点
  1. 高可靠性
  2. 高性能
  3. 面向列
  4. 良好的扩展性
7,ZooKeeper:

Zookeeper源自Google发表于2006年11月的Chubby论文,也就是说Zookeeper是Chubby的克隆版。

ZooKeeper是一个分布式的协调服务,可以协调集群中各个节点之间的交互。它可以确保节点之间的同步和一致性,提供可靠的服务。

例如,在Hadoop集群中,ZooKeeper可以用于管理HDFS的名称节点。

Zookeeper解决分布式环境下数据管理问题:
  1. 统一命名
  2. 状态同步
  3. 集群管理
  4. 配置同步
8,Spark:

Spark是一个基于内存的计算引擎,用于处理大规模数据集。它提供了比MapReduce更快的处理速度,并支持实时数据处理和机器学习。

例如,可以使用Spark对电商网站的销售数据进行实时分析,并对用户进行个性化推荐。

此外,Hadoop生态圈还包括Flume、Sqoop等日志收集和数据传输组件,以及数据存储、处理和协调组件,以及,共同构成了一个强大而灵活的生态系统,使得Hadoop能够应对不同的大数据应用场景。

Hadoop生态系统的特点

  1. 源代码开源
  2. 社区活跃、参与者众多
  3. 涉及分布式存储和计算的方方面面
  4. 已得到企业界验证

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

二,重点介绍mapreduce概述

MapReduce是一个分布式运算程序的编程框架,是用户开发"Hadoop的数据分析应用"的核心框架。

MapReduce的思想核心是"分而治之",适用于大量复杂的任务处理场景(大规模数据处理场景)。Map负责"分",即把复杂的任务分解为若干个"简单的任务"来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。Reduce负责"合",即对Map阶段的结果进行全局汇总。

MapReduce用于大规模数据集(通常大于1TB)的并行运算,实现了Map和Reduce两个功能。

MapReduce的体系结构

主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task。
1、Client:程序通过Client提交到JT端,可以通过Cilent提供的接口查看作业运行状态。
2、JobTracker: 监控资源、调度作业,监控所有的TT和Job的健康,一旦发现失败,就会将任务转移到其他节点。
3、TaskTracker: 想JT汇报资源使用情况和作业运行情况,接受JT的命令并执行。
4、Task: Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。

各个执行阶段流程图
震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

图中的split(分片): HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,其 处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据 起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。
Map任务数量: 一个split创建一个Map,由split数量决定。
Reduce任务数量: 最优的Reduce任务个数取决于集群中可用的reduce任务槽(slot)的数目。通常设置比reduce任务槽数目稍微小一些的Reduce任务个数(这样可以预留一些系统资源处理可能发生的错误)

MapReduce提供了以下的主要功能:

1)数据划分和计算任务调度:

系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动 调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并 负责Map节点执行的同步控制。

2)数据/代码互定位:

为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向 数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻 找可用节点以减少通信延迟。

3)系统优化:

为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce节点所处理的数据可能会来自多个 Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个 Reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选最快完成者作为结果。

4)出错检测和恢复:

以低端商用服务器构成的大规模MapReduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件出错是常态,因此 MapReduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提 高数据存储的可靠性,并能及时检测和恢复出错的数据。

MapReduce设计上具有以下主要的技术特征:

1)向"外"横向扩展,而非向"上"纵向扩展

即MapReduce集群的构建完全选用价格便宜、易于扩展的低端商用服务器,而非价格昂贵、不易扩展的高端服务器。

对于大规模数据处理,由于有大 量数据存储需要,显而易见,基于低端服务器的集群远比基于高端服务器的集群优越,这就是为什么MapReduce并行计算集群会基于低端服务器实现的原 因。

2)失效被认为是常态

MapReduce集群中使用大量的低端服务器,因此,节点硬件失效和软件出错是常态,因而一个良好设计、具有高容错性的并行计算系统不能因为节点 失效而影响计算服务的质量,任何节点失效都不应当导致结果的不一致或不确定性;任何一个节点失效时,其他节点要能够无缝接管失效节点的计算任务;当失效节 点恢复后应能自动无缝加入集群,而不需要管理员人工进行系统配置。

MapReduce并行计算软件框架使用了多种有效的错误检测和恢复机制,如节点自动重 启技术,使集群和计算框架具有对付节点失效的健壮性,能有效处理失效节点的检测和恢复。

3)把处理向数据迁移

传统高性能计算系统通常有很多处理器节点与一些外存储器节点相连,如用存储区域网络(Storage Area,SAN Network)连接的磁盘阵列,因此,大规模数据处理时外存文件数据I/O访问会成为一个制约系统性能的瓶颈。

为了减少大规模数据并行计算系统中的数据 通信开销,代之以把数据传送到处理节点(数据向处理器或代码迁移),应当考虑将处理向数据靠拢和迁移。MapReduce采用了数据/代码互定位的技术方法,计算节点将首先尽量负责计算其本地存储的数据,以发挥数据本地化特点,仅当节点无法处理本地数据时,再采用就近原则寻找其他可用计算节点,并把数据传送到该可用计算节点。

4)顺序处理数据、避免随机访问数据

大规模数据处理的特点决定了大量的数据记录难以全部存放在内存,而通常只能放在外存中进行处理。由于磁盘的顺序访问要远比随机访问快得多,因此 MapReduce主要设计为面向顺序式大规模数据的磁盘访问处理。

为了实现面向大数据集批处理的高吞吐量的并行处理,MapReduce可以利用集群中 的大量数据存储节点同时访问数据,以此利用分布集群中大量节点上的磁盘集合提供高带宽的数据访问和传输。

5)为应用开发者隐藏系统层细节

软件工程实践指南中,专业程序员认为之所以写程序困难,是因为程序员需要记住太多的编程细节(从变量名到复杂算法的边界情况处理),这对大脑记忆是 一个巨大的认知负担,需要高度集中注意力;而并行程序编写有更多困难,如需要考虑多线程中诸如同步等复杂繁琐的细节。由于并发执行中的不可预测性,程序的 调试查错也十分困难;而且,大规模数据处理时程序员需要考虑诸如数据分布存储管理、数据分发、数据通信和同步、计算结果收集等诸多细节问题。

MapReduce提供了一种抽象机制将程序员与系统层细节隔离开来,程序员仅需描述需要计算什么(What to compute),而具体怎么去计算(How to compute)就交由系统的执行框架处理,这样程序员可从系统层细节中解放出来,而致力于其应用本身计算问题的算法设计。

6)平滑无缝的可扩展性

这里指出的可扩展性主要包括两层意义上的扩展性:数据扩展和系统规模扩展性。

理想的软件算法应当能随着数据规模的扩大而表现出持续的有效性,性能上的下降程度应与数据规模扩大的倍数相当;在集群规模上,要求算法的计算性能应能随着节点数的增加保持接近线性程度的增长。绝大多数现有的单机算法都达不到 以上理想的要求;把中间结果数据维护在内存中的单机算法在大规模数据处理时很快失效;从单机到基于大规模集群的并行计算从根本上需要完全不同的算法设计。奇妙的是,MapReduce在很多情形下能实现以上理想的扩展性特征。

多项研究发现,对于很多计算问题,基于MapReduce的计算性能可随节点数目增长保持近似于线性的增长。

三,介绍spark技术特点和概述

1、Spark概述  

Spark最初由美国加州伯克利大学(UCBerkeley)的AMP(Algorithms, Machines and People)实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。Spark在诞生之初属于研究性项目,其诸多核心理念均源自学术研究论文。2013年,Spark加入Apache孵化器项目后,开始获得迅猛的发展,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(即Hadoop、Spark、Storm)

2、Spark的特点

Spark计算框架在处理数据时,所有的中间数据都保存在内存中,从而减少磁盘读写操作,提高框架计算效率。同时Spark还兼容HDFS、Hive,可以很好地与Hadoop系统融合,从而弥补MapReduce高延迟的性能缺点。所以说,Spark是一个更加快速、高效的大数据计算平台。

特点可以概括为以下四点

1:运行速度快

2:容易使用

3:通用性

4:运行模式多样

Spark支持使用Scala Java Python和R语言编程,由于Spark采用Scala语言进行开发,因此建议采用Scala语言进行Spark应用程序的编写,采用Scala语言编写Spark应用程序,可以获得最好的性能,和其他语言相比,Scala主要有以下三个方面的优势

1:Java代码比较繁琐

2:Python语言并发性能不好

3:Scala兼容Java

3、Spark生态系统

Spark在2013年加入Apache孵化器项目,之后获得迅猛的发展,并于2014年正式成为Apache软件基金会的顶级项目。Spark生态系统已经发展成为一个可应用于大规模数据处理的统一分析引擎,它是基于内存计算的大数据并行计算框架,适用于各种各样的分布式平台的系统。在Spark生态圈中包含了Spark SQL、Spark Streaming、GraphX、MLlib等组件。


震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

Spark Core:Spark核心组件,实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含对弹性分布式数据集的API定义。

Spark SQL:用来操作结构化数据的核心组件,通过Spark SQL可直接查询Hive、HBase等多种外部数据源中的数据。Spark SQL的重要特点是能够统一处理关系表和RDD。

Spark Streaming:Spark提供的流式计算框架,支持高吞吐量、可容错处理的实时流式数据处理,其核心原理是将流数据分解成一系列短小的批处理作业。

MLlib:Spark提供的关于机器学习功能的算法程序库,包括分类、回归、聚类、协同过滤算法等,还提供了模型评估、数据导入等额外的功能。

GraphX:Spark提供的分布式图处理框架,拥有对图计算和图挖掘算法的API接口及丰富的功能和运算符,便于对分布式图处理的需求,能在海量数据上运行复杂的图算法。

独立调度器、Yarn、Mesos:集群管理器,负责Spark框架高效地在一个到数千个节点之间进行伸缩计算的资源管理。

4、Spark运行架构与原理

Spark运行架构主要由SparkContext、Cluster Manager和Worker组成,其中Cluster Manager负责整个集群的统一资源管理,Worker节点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

5、Spark运行基本流程

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

1)当一个Spark应用被提交时,根据提交参数创建Driver进程,为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控。

2)SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器Task Scheduler处理。

3)资源管理器Cluster Manager为Executor分配资源,并启动Executor进程

4)Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行并提供应用程序代码。

5)Task在Executor上运行把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源。

四,mapreduce和spark的区别

1. Spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。

MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。

2. Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数。

Spark 计算比 MapReduce 快的根本原因在于 DAG 计算模型。一般而言,DAG 相比MapReduce 在大多数情况下可以减少 shuffle 次数。Spark 的 DAGScheduler 相当于一个改进版的 MapReduce,如果计算不涉及与其他节点进行数据交换,Spark 可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘 IO 的操作。但是,如果计算过程中涉及数据交换,Spark 也是会把 shuffle 的数据写磁盘的!有一个误区,Spark 是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop 也是如此,只不过 Spark 支持将需要反复用到的数据给 Cache 到内存中,减少数据加载耗时,所以 Spark 跑机器学习算法比较在行(需要对数据进行反复迭代)

3.Spark是粗粒度资源申请,而MapReduce是细粒度资源申请。

粗粒度申请资源指的是在提交资源时,spark会提前向资源管理器(yarn,mess)将资源申请完毕,如果申请不到资源就等待,如果申请到就运行task任务,而不需要task再去申请资源。 MapReduce是细粒度申请资源,提交任务,task自己申请资源自己运行程序,自己释放资源,虽然资源能够充分利用,但是这样任务运行的很慢。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

Spark的优势:

1.每一个作业独立调度,可以把所有的作业做一个图进行调度,各个作业之间相互依赖,在调度过程中一起调度,速度快。

2.所有过程都基于内存,所以通常也将Spark称作是基于内存的迭代式运算框架。

3.spark提供了更丰富的算子,让操作更方便。

4.更容易的API:支持Python,Scala和Java

其实spark里面也可以实现Mapreduce,但是这里它并不是算法,只是提供了map阶段和reduce阶段,但是在两个阶段提供了很多算法。如Map阶段的map, flatMap, filter, keyBy,Reduce阶段的reduceByKey, sortByKey, mean, gourpBy, sort等。

五,结构化数据与非结构化数据

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

结构化数据:

结构化数据是指按照一定的规则和格式进行组织和存储的数据。它具有明确的数据类型和关系,可以通过预定义的模式或模型进行描述和解释。常见的结构化数据包括关系型数据库中的表格数据、电子表格中的数据、XML文件中的数据等。结构化数据通常可以通过查询和分析工具进行处理和分析,从中提取有用的信息和洞察。与结构化数据相对的是非结构化数据,如文本、图像、音频和视频等,它们没有明确的结构和格式,处理和分析起来更加困难。

非结构化数据:

非结构化数据是指没有明确的结构和格式的数据,它不符合传统的表格、行列或关系型数据库的组织形式。非结构化数据的特点是多样性、复杂性和不规则性,常见的非结构化数据包括文本文档、电子邮件、社交媒体帖子、音频和视频文件、图像、日志文件等。

与结构化数据不同,非结构化数据没有明确的数据模型或模式,因此处理和分析非结构化数据更具挑战性。传统的关系型数据库和查询语言无法直接处理非结构化数据,需要使用特定的技术和工具进行处理,如自然语言处理、文本挖掘、图像识别、语音识别等。

非结构化数据在现实生活中广泛存在,例如社交媒体上的用户评论、新闻文章、音频和视频文件中的内容、传感器数据等。对非结构化数据的分析和挖掘可以帮助企业和组织发现隐藏的信息、洞察用户需求、进行情感分析、进行风险评估等。

结构化数据和非结构化数据的区别

数据组织形式:结构化数据按照预定义的模式和格式进行组织,具有明确的数据类型和关系,通常以表格、行列或关系型数据库的形式存储。非结构化数据没有明确的结构和格式,多样性、复杂性和不规则性较高,以文本、图像、音频、视频等形式存在。

数据处理方式:结构化数据可以通过传统的查询语言(如SQL)进行处理和分析,可以进行数据的筛选、排序、聚合等操作。非结构化数据的处理需要使用特定的技术和工具,如自然语言处理、图像识别、语音识别等,以提取有用的信息和洞察。

数据分析能力:结构化数据由于有明确的结构和格式,可以进行较为精确的数据分析和建模,可以进行统计分析、预测建模等。非结构化数据的分析相对更具挑战性,需要使用更复杂的技术和算法,如文本挖掘、情感分析、图像识别等。

数据应用领域:结构化数据常用于企业的业务数据管理、报表生成、决策支持等方面。非结构化数据常用于社交媒体分析、舆情监测、情感分析、图像识别、语音识别等领域。

需要注意的是,现实世界中的数据往往是结构化数据和非结构化数据的混合,因此在数据处理和分析时,需要综合考虑两种类型的数据。

结构化数据和非结构化数据的应用

结构化数据的应用:
  • 企业数据管理:结构化数据常用于企业的业务数据管理,包括客户信息、销售数据、财务数据等。它们可以通过关系型数据库进行存储和管理,用于业务流程的支持和决策制定。
  • 报表生成和分析:结构化数据可以通过查询和分析工具进行数据提取、筛选、排序和统计,用于生成各种报表和数据分析,支持业务决策和业绩评估。
  • 数据挖掘和预测建模:结构化数据可以用于数据挖掘和预测建模,通过分析历史数据,发现隐藏的模式和关联,进行趋势预测、市场分析、客户行为分析等。
非结构化数据的应用:
  • 社交媒体分析:非结构化数据在社交媒体分析中起着重要的作用,可以通过文本挖掘和情感分析技术,了解用户的观点、情感和需求,进行舆情监测、品牌声誉管理等。
  • 图像和视频处理:非结构化数据中的图像和视频可以通过图像识别、目标检测、视频分析等技术进行处理,用于人脸识别、智能监控、图像搜索等应用。
  • 自然语言处理:非结构化数据中的文本可以通过自然语言处理技术进行处理,包括文本分类、实体识别、关系抽取、机器翻译等,用于智能客服、智能助手、文本分析等应用。

需要注意的是,结构化数据和非结构化数据往往是相互补充的,综合使用可以获得更全面的信息和洞察。在实际应用中,常常需要将结构化数据和非结构化数据进行整合,以支持更复杂的分析和决策需求。

六,Linux简单操作命令

根目录

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

linux文件与目录操作

pwd 命令

格式:pwd

功能:显示当前所在目录(即工作目录)。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

ls 命令

格式:ls [选项] [文件|目录]

功能:显示指定目录中的文件或子目录信息。当不指定文件或目录时,显示 当前工作目录中的文件或子目录信息。

命令常用选项如下: -a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来。

-l :长格式显示,包含文件和目录的详细信息。

-R :连同子目录内容一起列出来。

说明:命令“ls –l”设置了别名:ll,即输入 ll 命令,执行的是 ls –l 4 命令。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

cd 命令

格式:cd 路径>

功能:用于切换当前用户所在的工作目录,其中路径可以是绝对路径也可以 是相对路径。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

mkdir 命令

格式: mkdir [选项] 目录

功能:用于创建目录。创建目录前需保证当前用户对当前路径有修改的权 限。

参数 -p 用于创建多级文件夹。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

rm 命令

格式: rm [选项] 文件>

功能:用于删除文件或目录,常用选项-r -f,-r 表示删除目录,也可以用于 删除文件,-f 表示强制删除,不需要确认。删除文件前需保证当前用户对当 前路径有修改的权限。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

cp 命令

格式: cp [选项] 文件> 目标文件>

功能:复制文件或目录。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

mv 命令

格式:mv [选项] 文件> 目标文件>

功能:移动文件或对其改名。

常用选项-i -f -b,-i 表示若存在同名文件,则向用户 询问是否覆盖;-f 直接覆盖已有文件,不进行任何提示;-b 当文件存在时,覆盖 前为其创建一个备份。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

cat 命令

格式:cat [选项] [文件]

功能:查看文件内容。常用选项:-n 显示行号(空行也编号)。

震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧),linux

tar 命令

格式:tar [选项] [档案名] [文件或目录]

功能:为文件和目录创建档案。利用 tar 命令,可以把一大堆的文件和目录 全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便 于网络传输是非常有用的。该命令还可以反过来,将档案文件中的文件和目 录释放出来。

常用选项: -c 建立新的备份文件。

-C 目录> 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于 仅压缩特定目录里的内容或解压缩到特定目录。

-x 从归档文件中提取文件。

-z 通过 gzip 指令压缩/解压缩文件,文件名为*.tar.gz。

-f备份文件> 指定备份文件。

-v 显示命令执行过程。

[root@localhost ~]# ls

anaconda-ks.cfg test

[root@localhost ~]# tar -cvf test.tar test

test/

test/profile

[root@localhost ~]# ls

anaconda-ks.cfg test test.tar

[root@localhost ~]# tar -zcvf test.tar.gz test

test/

test/profile

[root@localhost ~]# ls

anaconda-ks.cfg test test.tar test.tar.gz

[root@localhost ~]# tar -zxvf test.tar.gz -C /opt/

test/

test/profile

[root@localhost ~]# ls /opt/

Test

passwd 命令

格式:passwd 用户名

功能:设置或修改指定用户的口令。

[root@localhost ~]# passwd teacher

更改用户 teacher 的密码 。 新的 密码: 无效的密码: 密码是一个回文 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。

chown 命令

格式:chown [选项]

功能:将文件或目录的拥有者改为指定的用户或组,用户可以是用户名或者 用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件 列表支持通配符。选项“-R”表示对目前目录下的所有文件与子目录进行相同 的拥有者变更。

[root@localhost ~]# chown teacher:teacher test.tar.gz

[root@localhost ~]# ll

总用量 20

-rw-------. 1 root root 1241 12月 20 2021 anaconda-ks.cfg

drwxr-xr-x. 2 root root 21 11月 9 23:19 test

-rw-r--r--. 1 root root 10240 11月 10 00:01 test.tar

-rw-r--r--. 1 teacher teacher 1008 11月 10 00:02 test.tar.gz

[root@localhost ~]# chown -R teacher:teacher test

[root@localhost ~]# ll

总用量 20

-rw-------. 1 root root 1241 12月 20 2021 anaconda-ks.cfg

drwxr-xr-x. 2 teacher teacher 21 11月 9 23:19 test

-rw-r--r--. 1 root root 10240 11月 10 00:01 test.tar

-rw-r--r--. 1 teacher teacher 1008 11月 10 00:02 test.tar.gz

[root@localhost ~]# ll test/ 11

总用量 4 -rw-r--r--. 1 teacher teacher 1795 11月 9 23:17 profile文章来源地址https://www.toymoban.com/news/detail-843263.html

到了这里,关于震惊!!!跟着我学Hadoop,既然如此简单。(快收藏起来学习吧)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop-MapReduce-跟着日志理解整体流程

    vi input_01.txt vi input_02.txt vi input_03.txt 文本内容如下: -----------------input_01.txt---------------- java    scala   python c++     java    js go      go      vba c       c       c++ java    scala   python php     css     html js      java    java    scala   vba c#      .net R       R       R    

    2024年01月25日
    浏览(29)
  • Hadoop为什么如此流行——史上最详解

    作者:禅与计算机程序设计艺术 Hadoop是一个开源的分布式计算框架,其出现主要是为了解决海量数据的存储、计算、分析、和处理问题。随着互联网的数据量不断增加,分布式系统越来越普及,Hadoop也越来越受到青睐。它具备高容错性、高可靠性、弹性扩展等特性,能够适应

    2024年02月08日
    浏览(50)
  • HBase完全分布式配置(上)hadoop篇 保姆级教程(近乎零基础跟着配也能配对)

    本文从安装好新虚拟机开始介绍 改成 基础配置详细(带截图)可以看我的Hadoop和hbase伪分布式模式配置一文。这里不再详细展开,接下来转到tabby连接上并上传jdk、hadoop和hbase,同样不再赘述。解压、改名,详见上一篇文章,这里只截取环境变量配置好的图片。 解压jdk: 改名

    2024年04月15日
    浏览(62)
  • Apollo让自动驾驶如此简单

            最近被新能源的电价闹的不行,买了电车的直呼上当了、不香了。但电车吸引人不只是公里油耗低,还有良好的驾车使用感。比如辅助驾驶、甚至是自动驾驶。今天来介绍一个头部自动驾驶平台Apollo,Apollo是一个开源的、自动驾驶的软件平台,由百度公司开发。它提

    2024年02月14日
    浏览(54)
  • 新知实验室-TRTC如此简单

    腾讯实时音视频(Tencent Real-Time Communication,TRTC),将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。 1、多人音

    2023年04月27日
    浏览(88)
  • 【算法 - 动态规划】原来写出动态规划如此简单!

    从本篇开始,我们就正式开始进入 动态规划 系列文章的学习。 本文先来练习两道通过 建立缓存表 优化解题过程的题目,对如何将 递归函数 修改成 动态规划 的流程有个基本的熟悉。 用最简单的想法完成题目要求的 递归 函数; 定义明确 递归函数 的功能!!! 分析是否存

    2024年02月21日
    浏览(44)
  • LAMMPS推出GUI界面,模拟从未如此简单

    lammps一直没有编辑界面,对新手来说特别的不友好,不过,今年8月4号lammps推出了一款包含界面的版本。 运行效果如下图所示,这个版本带有独立的编辑界面,可以使用菜单新建或者打开in文件,也可以使用菜单运行in文件,甚至可以直接查看运行结果。 下面详细介绍这个版

    2024年02月14日
    浏览(45)
  • PyCharm连接MySQL数据库竟然如此简单!

    在 PyCharm 中是可以通过内置的工具来连接、操作数据库的,并且对于市面上大多数主流数据库都是支持的。 本篇教程就教大家如何通过 Pycharm 内置的数据库工具连接 MySQL 数据库。 连接 MySQL 首先打开 PyCharm ,点击菜单栏的 View -- Tool Windows -- Database 或者直接点击 PyCharm 右侧的

    2024年02月04日
    浏览(41)
  • DevChat:你的私人助理,让工作变得如此简单!

    首先我们来浅浅说下AI吧。有小伙伴把AI看得十分“高高在上”,觉得它属于“诸神之战”,与我等凡人无关。其实这个看法是不对的。就好像我们刚开始对于手机系统或者电脑系统感觉很有陌生感一样,一直到技术落地到抖音、微信等等应用层面,才广泛普及,AI技术也是一

    2024年02月06日
    浏览(35)
  • ESP32网页控制显示数据原来如此简单

            本文着重于ESP32与网页的交互,并没有针对网页进行UI优化,也不会对HTM5的组件进行详细介绍,只讲解一些关键的JS函数。         代码以Arduino框架进行开发,使用ESPAsyncWebServer库实现WebServer,通过JS代码配合库文件的回调函数进行使用,只讲交互部分,文章内容不关

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包