linux常用命令操作

Linux 常用命令

1.4.1.1. 步骤一:pwd 命令    格式:pwd    功能:显示当前所在目录(即工作目录)。  

[root@localhost ~]# pwd

/root

1.4.1.2. 步骤二:ls 命令  
格式:ls [选项] [文件|目录]  
功能:显示指定目录中的文件或子目录信息。当不指定文件或目录时,显示 当前工作目录中的文件或子目录信息。  命令常用选项如下:  -a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来。  -l :长格式显示,包含文件和目录的详细信息。  -R :连同子目录内容一起列出来。  说明:命令“ls –l”设置了别名:ll,即输入 ll 命令,执行的是 ls –l 
4 命令。  
[root@localhost ~]# ls -a / 
.   bin   dev  home  lib64  mnt  proc  run   srv  tmp  var 
..  boot  etc  lib   media  opt  root  sbin  sys  usr 
[root@localhost ~]# ls -l / 
总用量 20 
lrwxrwxrwx.   1 root root    7 12月 20 2021 bin -> usr/bin 
dr-xr-xr-x.   5 root root 4096 12月 20 2021 boot 
drwxr-xr-x.  20 root root 3280 12月 20 2021 dev 
drwxr-xr-x.  75 root root 8192 11月  9 23:07 etc 
1.4.1.3. 步骤三:cd 命令  
格式:cd  <路径>  
功能:用于切换当前用户所在的工作目录,其中路径可以是绝对路径也可以 是相对路径。  [root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@localhost network-scripts]# cd ..

[root@localhost sysconfig]# ls

anaconda    cpupower         init              kernel      network-scripts  selinux authconfig  crond            ip6tables-config  man-db      rdisc            sshd cbq         ebtables-config  iptables-config   modules     readonly-root    wpa_supplicant chronyd     firewalld        irqbalance        netconsole  rsyslog console     grub             kdump             network     run-parts [root@localhost sysconfig]# cd ./network-scripts/

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

1.4.1.4. 步骤四:mkdir 命令  
格式: mkdir [选项] 目录  
功能:用于创建目录。创建目录前需保证当前用户对当前路径有修改的权 限。参数 -p 用于创建多级文件夹。  [root@localhost ~]# mkdir test

[root@localhost ~]# ls  

anaconda-ks.cfg  test

[root@localhost ~]# mkdir -p /test/test1/test2  
 

1.4.1.5. 步骤五:rm 命令  
格式: rm  [选项] <文件>  
功能:用于删除文件或目录,常用选项-r -f,-r 表示删除目录,也可以用于 删除文件,-f 表示强制删除,不需要确认。删除文件前需保证当前用户对当 前路径有修改的权限。

 [root@localhost ~]# rm  -rf  /test/ 

1.4.1.6. 步骤六:cp 命令  
格式: cp  [选项] <文件> <目标文件>  功能:复制文件或目录。  [root@localhost ~]# cp /etc/profile  ./ [root@localhost ~]# ls  anaconda-ks.cfg  profile  test   1.4.1.7. 步骤七:mv 命令  格式:mv [选项] <文件> <目标文件>  功能:移动文件或对其改名。常用选项-i -f -b,-i 表示若存在同名文件,则向用户 询问是否覆盖;-f 直接覆盖已有文件,不进行任何提示;-b 当文件存在时,覆盖 前为其创建一个备份。    

  [root@localhost ~]# ls  

anaconda-ks.cfg  profile  test

[root@localhost ~]# mv profile test/

[root@localhost ~]# ls test/

Profile 
 
1.4.1.8. 步骤八:cat 命令  

 格式:cat [选项] [文件]    功能:查看文件内容。常用选项:-n 显示行号(空行也编号)。  [root@localhost ~]# cat  -n  test/profile      

1 # /etc/profile    

 2      

3 # System wide environment and startup programs, for login setup    

 4 # Functions and aliases go in /etc/bashrc   

1.4.1.9. 步骤九: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 
 

 

1.4.2. 实验任务二:用户操作  

1.4.2.1. 步骤一:useradd 命令  
格式:useradd 用户名  

功能:创建新用户,该命令只能由 root 用户使用。

 [root@localhost ~]# useradd  teacher

[root@localhost ~]# id teacher

uid=1000(teacher) gid=1000(teacher) 组=1000(teacher) 1

 

1.4.2.5. 步骤五:su 命令  
格式:su [-] 用户名  功能:将当前操作员的身份切换到指定用户。如果使用选项“-”,则用户切换 后使用新用户的环境变量,否则环境变量不变。

 [root@localhost ~]# su - teacher

[teacher@localhost ~]$ exit 

Hadoop生态圈介绍

 

1. hadoop 生态概况

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

具有可靠、高效、可伸缩的特点。

Hadoop的核心是YARN,HDFS和Mapreduce

下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与spark

都能部署在yarn、mesos的资源管理系统之上

7e95eed878c64762a2d74ead1292732f.png

2、HDFS(Hadoop分布式文件系统)

源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。

HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。

HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。

3、Mapreduce(分布式计算框架)

源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。

MapReduce是一种分布式计算模型,用以进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,

其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。

MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

4. HBASE(分布式列存数据库)

源自Google的Bigtable论文,发表于2006年11月,HBase是Google Bigtable克隆版

HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。

HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

5. Zookeeper(分布式协作服务)

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

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

6. HIVE(数据仓库)

由facebook开源,最初用于解决海量结构化的日志数据统计问题。

Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

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

7.Pig(ad-hoc脚本)

由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具

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

其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

8.Sqoop(数据ETL/同步工具)

Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

9.Flume(日志收集工具)

Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。

它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。

同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。

总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。当然也可以用于收集其他类型数据

10.Mahout(数据挖掘算法库)

Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。

Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。

Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。

除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

11. Oozie(工作流调度器)

Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。

Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。

Oozie使用hPDL(一种XML流程定义语言)来描述这个图。

12. Yarn(分布式资源管理器)

YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。

Yarn是下一代 Hadoop 计算平台,yarn是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。

用于自己编写的框架作为客户端的一个lib,在运用提交作业时打包即可。该框架为提供了以下几个组件:

  - 资源管理:包括应用程序管理和机器资源管理

  - 资源双层调度

  - 容错性:各个组件均有考虑容错性

  - 扩展性:可扩展到上万个节点

13. Mesos(分布式资源管理器)

  Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。

  与yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。

14. Tachyon(分布式内存文件系统)

Tachyon(/'tæki:ˌɒn/ 意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,

能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。

Tachyon诞生于UC Berkeley的AMPLab。

15. Tez(DAG计算模型)

Tez是Apache最新开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,

即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,

这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。

目前hive支持mr、tez计算模型,tez能完美二进制mr程序,提升运算性能。

16. Spark(内存DAG计算模型)

Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。

最早Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。

Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍

17. Giraph(图计算模型)

Apache Giraph是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

最早出自雅虎。雅虎在开发Giraph时采用了Google工程师2010年发表的论文《Pregel:大规模图表处理系统》中的原理。后来,雅虎将Giraph捐赠给Apache软件基金会。

目前所有人都可以下载Giraph,它已经成为Apache软件基金会的开源项目,并得到Facebook的支持,获得多方面的改进。

18. GraphX(图计算模型)

Spark GraphX最先是伯克利AMPLAB的一个分布式图计算框架项目,目前整合在spark运行框架中,为其提供BSP大规模并行图计算能力。

19. MLib(机器学习库)

Spark MLlib是一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。

20. Streaming(流计算模型)

Spark Streaming支持对流数据的实时处理,以微批的方式对实时数据进行计算

21. Kafka(分布式消息队列)

Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。

活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。

这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

22. Phoenix(hbase sql接口)

Apache Phoenix 是HBase的SQL驱动,Phoenix 使得Hbase 支持通过JDBC的方式进行访问,并将你的SQL查询转换成Hbase的扫描和相应的动作。

23. ranger(安全管理工具)

Apache ranger是一个hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的hadoop生态圈的所有数据权限。

24. knox(hadoop安全网关)

Apache knox是一个访问hadoop集群的restapi网关,它为所有rest访问提供了一个简单的访问接口点,能完成3A认证(Authentication,Authorization,Auditing)和SSO(单点登录)等

25. falcon(数据生命周期管理工具)

Apache Falcon 是一个面向Hadoop的、新的数据处理和管理平台,设计用于数据移动、数据管道协调、生命周期管理和数据发现。它使终端用户可以快速地将他们的数据及其相关的处理和管理任务“上载(onboard)”到Hadoop集群。

26.Ambari(安装部署配置管理工具)

Apache Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,是为了让 Hadoop 以及相关的大数据软件更容易使用的一个web工具。

spark生态圈介绍

Spark 生态圈是加州大学伯克利分校的 AMP 实验室打造的,是一个力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成来展现大数据应用的平台。

cfc2610d9c0744369205f4c1bfc74a8f.png

Spark 生态圈

1. Spark Core

本节已经介绍了 Spark Core 的基本情况,下面来总结 Spark 的内核架构。

1)提供了有向无环图(DAG)的分布式并行计算框架,并提供 cache 机制来支持多次迭代计算或者数据共享,大大减少了迭代计算之间读取数据的开销,这对于需要进行多次迭代的数据挖掘和分析的性能有很大提升。

2)在 Spark 中引入了 RDD 的抽象,它是分布在一组结点中的只读对象集合,这些集合是弹性的,如果数据集的一部分丢失,则可以根据血缘关系对它们进行重建,保证了数据的高容错性。

3)移动计算而非移动数据,RDD 分区可以就近读取 HDFS 中的数据块到各个结点内存中进行计算。

4)使用多线程池模型来减少 Task 启动开销。

5)采用容错的、高可伸缩性的 Akka 作为通信框架。

2. Spark Streaming

Spark Streaming 是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如 Kafka、Flume、Twitter、Zero 和 TCP 套接字)进行类似 map、reduce 和 join 的复杂操作,并将结果保存到外部文件系统、数据库中,或应用到实时仪表盘上。

Spark Streaming 的核心思想是将流式计算分解成一系列短小的批处理作业,这里的批处理引擎是 Spark Core。也就是把 Spark Streaming 的输入数据按照设定的时间片(如 1 秒)分成一段一段的数据,每一段数据都转换成 Spark 中的 RDD,然后将 Spark Streaming 已经为大家精心准备了大数据的系统学习资料,从Linux-Hadoop-spark-......,需要的小伙伴可以点击中对 DStream 的转换操作变为对 Spark 中的 RDD 的转换操作,将 RDD 经过操作变成的中间结果保存在内存中。

根据业务的需求,整个流式计算可以对中间结果进行叠加,或者将中间结果存储到外部设备。本教程会在后边对 Spark Streaming 做详细介绍。

3 . SparkSQL

Spark SQL 允许开发人员直接处理 RDD,以及查询存储在 Hive、HBase 上的外部数据。Spark SQL 的一个重要特点是其能够统一处理关系表和 RDD,使得开发人员可以轻松地使用 SQL 命令进行外部查询,同时进行更复杂的数据分析。

4. Spark MLlib

Spark MLlib 实现了一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维及底层优化,并且该算法可以进行扩充。Spark MLlib 降低了机器学习的门槛,开发人员只要具备一定的理论知识就能进行机器学习的工作。本教程将在后面对 Spark MLlib 做进一步介绍。

5. Spark GraphX

Spark GraphX 是 Spark 中用于图并行计算的 API,可以认为是 GraphLab 和 Pregel 在 Spark 上的重写及优化。与其他分布式图计算框架相比,Spark GraphX 最大的贡献是在 Spark 之上提供了一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。

Mapreduce的运行框架

7167a864ebf14ff6a5d5b8fa0cf9fa9c.png

Hadoop与spark对比

1,编程方式

Hadoop的MapReduce计算数据时,要转化为Map和Reduce两个过程,从而难以描述复杂的数据处理过程;而Spark的计算模型不局限于Map和Reduce操作,还提供了多种数据集的操作类型,编程模型比MapReduce更加灵活。

2,数据存储

Hadoop的MapReduce进行计算时,每次产生的中间结果都存储在本地磁盘中;而Spark在计算时产生的中间结果存储在内存中

3,数据处理

Hadoop在每次执行数据处理时,都要从磁盘中加载数据,导致磁盘IO开销较大;而Spark在执行数据处理时,要将数据加载到内存中,直接在内存中加载中间结果数据集,减少了磁盘的IO开销。

4,数据容错

MapReduce计算的中间结果数据,保存在磁盘中,Hadoop底层实现了备份机制,从而保证了数据容错;Spark RDD实现了基于Lineage的容错机制和设置检查点方式的容错机制,弥补数据在内存处理时,因断电导致数据丢失的问题

 

  • 34
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值