0


什么!你要学spark!

文章目录


前言

重生之我在CSDN写文章


一、Hadoop是什么?

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

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

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上,而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

1. 生态圈组件介绍

在这里插入图片描述

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

是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。

client:切分文件,访问HDFS,与namenode交互,获取文件位置信息,与DataNode交互,读取和写入数据。

namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。

DataNode:slave节点,存储实际的数据,汇报存储信息给namenode。

secondary namenode:辅助namenode,分担其工作量:定期合并fsimage和fsedits,推送给namenode;紧急情况下和辅助恢复namenode,但其并非namenode的热备。

2,mapreduce(分布式计算框架)

mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker。

tacktracker:slave节点,运行 map task和reducetask;并与jobtracker交互,汇报任务状态。

map task:解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。

reduce task:从map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的reduce函数执行。

3, hive(基于hadoop的数据仓库)

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

hive定于了一种类似sql的查询语言(hql)将sql转化为mapreduce任务在hadoop上执行。

4,hbase(分布式列存数据库)

hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。

5,zookeeper(分布式协作服务)

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

6,sqoop(数据同步工具)

sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。

数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。

7,pig(基于hadoop的数据流系统)

定义了一种数据流语言-pig latin,将脚本转换为mapreduce任务在hadoop上执行。

通常用于离线分析。

8,mahout(数据挖掘算法库)

mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。mahout现在已经包含了聚类,分类,推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法是,mahout还包含了数据的输入/输出工具,与其他存储系统(如数据库,mongoDB或Cassandra)集成等数据挖掘支持架构。

9,flume(日志收集工具)

cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。他将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在flume中定制数据发送方,从而支持收集各种不同协议数据。

10,资源管理器的简单介绍(YARN和mesos)

随着互联网的高速发展,基于数据 密集型应用 的计算框架不断出现,从支持离线处理的mapreduce,到支持在线处理的storm,从迭代式计算框架到 流式处理框架s4,…,在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方法如下:网页建索引采用mapreduce框架,自然语言处理/数据挖掘采用spark,对性能要求到的数据挖掘算法用mpi等。公司一般将所有的这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样便诞生了资源统一管理与调度平台,典型的代表是mesos和yarn。

二、MapReduce概述

1.MapReduce定义

Mapreduce是一个分布式运算程序的编程思想,是用户开发“基于Hadoop的数据分析应用”的核心框架,其核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上

在这里插入图片描述
1)分布式的运算程序往往需要分成至少2个阶段。
2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。
3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。
4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

2.MapReduce优缺点:

优点

a. MapReduce易于编程
它简单的实现一些接口,就可以完成一个分布式程序。
b. 良好的扩展性
当你的技术资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力
c. 高容错性
当其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败
d. 适合PB级以上海量数据的离线处理

缺点

a. 不擅长实时计算
MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果
b. 不擅长流式计算
流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。
c. 不擅长DAG(有向图)计算
多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出,在这种情况下,MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,导致性能非常的地下

三、 Spark概述

1. 什么是Spark(官网:http://spark.apache.org

在这里插入图片描述

Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。Spark得到了众多大数据公司的支持,这些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark已应用于凤巢、大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当前已知的世界上最大的Spark集群。

2. 为什么要学Spark

中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

3. Spark特点

3.1. 快
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。
在这里插入图片描述

3.2. 易用
Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。
在这里插入图片描述

3.3. 通用
Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。

3.4. 兼容性
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。
在这里插入图片描述

4. Spark运行构架及流程

在这里插入图片描述
Spark运行架构特点:
每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task。
Spark运行过程与资源管理器无关,只要能够获取Executor进程并保存通信即可。
Task采用数据本地性和推测执行等优化机制。

在这里插入图片描述

四、对比mapreduce和spark的区别

1.spark和Mapreduce的简单介绍

MapReduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

spark:Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

2.特点

mr:稳点,但是编程API不灵活、速度慢、只能做离线计算

spark:通用、编程API简洁、快,但是相较于mr没有mr更稳定

3.关于运行环境:

MR运行在YARN上,

spark

local:本地运行
standalone:使用Spark自带的资源管理框架,运行spark的应用
yarn:将spark应用类似mr一样,提交到yarn上运行
mesos:类似yarn的一种资源管理框架

4.MapReduce和Spark的本质区别:

MR只能做离线计算,如果实现复杂计算逻辑,一个MR搞不定,就需要将多个MR按照先后顺序连成一串,一个MR计算完成后会将计算结果写入到HDFS中,下一个MR将上一个MR的输出作为输入,这样就要频繁读写HDFS,网络IO和磁盘IO会成为性能瓶颈。从而导致效率低下。

spark既可以做离线计算,有可以做实时计算,提供了抽象的数据集(RDD、Dataset、DataFrame、DStream)有高度封装的API,算子丰富,并且使用了更先进的DAG有向无环图调度思想,可以对执行计划优化后在执行,并且可以数据可以cache到内存中进行复用。

五、什么是 结构化数据 什么是 非结构化数据

1.总括

相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

2.结构化数据

结构化数据是数据的数据库(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)

如下图所示:
在这里插入图片描述
我们可以清楚的看到能够形式化存储在数据库中,每一个列都有具体的含义。

3.非结构化数据

非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等

如下图:
在这里插入图片描述
非结构数据与结构化数据相比较而言,更难让计算机理解。

六、Linux简单操作命令实训练习

1. pwd 命令
格式:pwd
功能:显示当前所在目录(即工作目录)。
[root@localhost ~]# pwd
/root
2. ls 命令
格式:ls [选项] [文件|目录]
功能:显示指定目录中的文件或子目录信息。当不指定文件或目录时,显示
当前工作目录中的文件或子目录信息。
命令常用选项如下:
-a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来。
-l :长格式显示,包含文件和目录的详细信息。
-R :连同子目录内容一起列出来。
说明:命令“ls –l”设置了别名:ll,即输入 ll 命令,执行的是 ls –l
命令。
[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
[root@localhost ~]# ls -R /home/
/home/:
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
[root@localhost network-scripts]#
4.mkdir 命令
格式: mkdir [选项] 目录
功能:用于创建目录。创建目录前需保证当前用户对当前路径有修改的权
限。参数 -p 用于创建多级文件夹。
[root@localhost ~]# mkdir test
[root@localhost ~]# ls
anaconda-ks.cfg test
[root@localhost ~]# mkdir -p /test/test1/test2
5.rm 命令
格式: rm [选项] <文件>
功能:用于删除文件或目录,常用选项-r -f,-r 表示删除目录,也可以用于
删除文件,-f 表示强制删除,不需要确认。删除文件前需保证当前用户对当
前路径有修改的权限。
[root@localhost ~]# rm -rf /test/
6.cp 命令
格式: cp [选项] <文件> <目标文件>
功能:复制文件或目录。
[root@localhost ~]# cp /etc/profile ./
[root@localhost ~]# ls
anaconda-ks.cfg profile test
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
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
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
10.useradd 命令
格式:useradd 用户名
功能:创建新用户,该命令只能由 root 用户使用。
[root@localhost ~]# useradd teacher
[root@localhost ~]# id teacher
uid=1000(teacher) gid=1000(teacher) 组=1000(teacher)
11.passwd 命令
格式:passwd 用户名
功能:设置或修改指定用户的口令。
[root@localhost ~]# passwd teacher
更改用户 teacher 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
12.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/
总用量 4
-rw-r–r–. 1 teacher teacher 1795 11月 9 23:17 profile
1.4.2.4. 步骤四:chmod 命令
格式:chmod [-R] 模式 文件或目录
功能:修改文件或目录的访问权限。选项“-R”表示递归设置指定目录下的所
有文件和目录的权限。
模式为文件或目录的权限表示,有三种表示方法。
(1) 数字表示
用 3 个数字表示文件或目录的权限,第 1 个数字表示所有者的权限,第 2个
数字表示与所有者同组用户的权限,第 3 个数字表示其他用户的权限。每类
用户都有 3 类权限:读、写、执行,对应的数字分别是 4、2、1。一个用户
的权限数字表示为三类权限的数字之和,如一个用户对 A 文件拥有读写权
限,则这个用户的权限数字为 6(4+2=6)。
示例:
[root@localhost ~]# chmod 764 test.tar.gz
[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
-rwxrw-r–. 1 teacher teacher 1008 11月 10 00:02 test.tar.gz
(2)字符赋值
用字符 u 表示所有者,用字符 g 表示与所有者同组用户,用字符 o 表示其他
用户。用字符 r、w、x 分别表示读、写、执行权限。用等号“=”来给用户赋
权限。
示例:
[root@localhost ~]# chmod u=rwx,g=rw,o=r test.tar.gz
[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
-rwxrw-r–. 1 teacher teacher 1008 11月 10 00:02 test.tar.gz
(3)字符加减权限
用字符 u 表示所有者,用字符 g 表示与所有者同组用户,用字符 o 表示其他
用户。用字符 r、w、x 分别表示读、写、执行权限。用加号“+”来给用户加
权限,加号“-”来给用户减权限。
示例:
[root@localhost ~]# chmod u+x,g+x,o-w test.tar.gz
[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
-rwxrwxr–. 1 teacher teacher 1008 11月 10 00:02 test.tar.gz
13.su 命令
格式:su [-] 用户名
功能:将当前操作员的身份切换到指定用户。如果使用选项“-”,则用户切换
后使用新用户的环境变量,否则环境变量不变。
[root@localhost ~]# su - teacher
[teacher@localhost ~]$ exit
14.vi命令
格式:vi [文件名]
功能:vi 是 Linux 的常用文本编辑器,vim 是从 vi 发展出来的一个文本编辑器,
其在代码补全、编译等方便的功能特别丰富,在程序员中被广泛使用。
vi/vim 有三个工作模式:
1.命令模式
用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被 vi
识别为命令,而非输入字符。以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到末行模式,用以在最底一行输入命令
[root@localhost ~]# cd test
[root@localhost test]# vi profile
之后输入 i、x 或:会有相应的效果
2.输入模式
在输入模式下可以对文件执行写操作,编写完成后按 Esc 键即可返回命令模式。
3.末行模式
如果要保存、查找或者替换一些内容等,就需要进入末行模式。以下是常用的几个命
令:
Set nu:每一行显示行号
r 文件名:读取指定的文件。
w 文件名:将编辑内容保存到指定的文件内。
q:退出 vi
wq:保存文件并退出 vi
q!:强制退出 vi,不管是否保存文档内容。
15.clear 命令
格式:clear
功能:清除屏幕。实质上只是让终端显示页向后翻了一页,如果向上滚动屏
幕还可以看到之前的操作信息。
[root@localhost test]# clear
16.hostname 命令
格式:hostname [选项]
功能:用于显示和设置系统的主机名称。在使用 hostname 命令设置主机名
后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机
名。如果需要永久修改主机名,需要同时修改/etc/hostname 的相关内容。
常用选项:
-a 显示主机别名,-i 显示主机的 ip 地址。
[root@localhost ~]# hostname
localhost
17.hostnamectl 命令
格式 1:hostnamectl
功能:显示当前主机的名称和系统版本。
格式 2:hostnamectl set-hostname
功能:永久设置当前主机的名称。
示例:
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@master ~]#
18.ip 命令
CentOS 7 已不使用 ifconfig 命令,其功能可通过 ip 命令代替。
格式 1:ip link <命令选项> dev <设备名>
功能:对网络设备(网卡)进行操作,选项 add、delete、show、set 分别对
应增加、删除、查看和设置网络设备。
示例:
[root@master ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP mode DEFAULT qlen 1000
link/ether 00:0c:29:b7:35:be brd ff:ff:ff:ff:ff:ff
格式 2:ip address <命令选项> dev <设备名>
功能:对网卡的网络协议地址(IPv4/IPv6)进行操作,选项 add、change、
del、show 分别对应增加、修改、删除、查看 IP 地址。
示例: #这里将 address 缩写为 addr
[root@master ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000
link/ether 00:0c:29:b7:35:be brd ff:ff:ff:ff:ff:ff
inet 192.168.47.140/24 brd 192.168.47.255 scope global dynamic ens33
valid_lft 1610sec preferred_lft 1610sec
inet6 fe80::29cc:5498:c98a:af4b/64 scope link
valid_lft forever preferred_lft forever
19.systemctl 命令
格式:systemctl <命令选项> service_name.service
功能:管理系统中的服务,“.service”表示管理的服务均包含了一个
以 .service 结尾的文件,存放于 /lib/systemd/目录中,可以省略。命令选项
有 start、restart、reload、stop、status,分别对应服务的启动、重启、重
新加载、停止和显示状态。另外选项 enable 表示开机时启动,disable 表示
撤销开机启动。
示例:
#启动网络服务
[root@master ~]# systemctl start network
#关闭防火墙,注意 CentOS 7 的防火墙服务名称改为 firewalld
[root@master ~]# systemctl stop firewalld
#查看 ssh 服务的状态
[root@master ~]# systemctl status sshd
#设置 ssh 服务开机启动
[root@master ~]# systemctl enable sshd
20.reboot 命令
格式: reboot
功能:用于重新启动计算机,但是机器重启必须要 root 用户才有权限。
注意:本操作无需在平台系统执行
[root@master ~]# reboot
21.poweroff 命令
格式:poweroff
功能:用来关闭计算机操作系统并且切断系统电源。如果确认系统中已经没
有用户存在且所有数据都已保存,需要立即关闭系统,可以使用 poweroff
命令。
注意:本操作无需在平台系统执行
[root@master ~]# poweroff
22.export 命令
格式:export [选项] [变量名]
功能:用于将 Shell 变量输出为环境变量,或者将 Shell 函数输出为环境变
量。一个变量创建时,它不会自动地为在它之后创建的 Shell进程所知,而
命令export 可以向后面的 Shell 传递变量的值。当一个Shell 脚本调用并执行
时,它不会自动得到父脚本(调用者)里定义的变量的访问权,除非这些变
量已经被显式地设置为可用。export 命令可以用于传递一个或多个变量的值
到任何子脚本。
常用选项:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行
环境中。
-p 列出所有的 Shell 赋予程序的环境变量。
示例:
[root@master ~]# export -p #列出当前所有的环境变量
[root@master ~]# export MYENV=8 #定义环境变量,并赋值 MYENV=8
23.echo 命令
格式:echo [字符串]
功能:用于在终端设备上输出字符串或变量提取后的值。一般使用在变量前
加上

     符号的方式提取出变量的值,例如: 
    
   
  
    符号的方式提取出变量的值,例如: 
   
  
符号的方式提取出变量的值,例如:PATH然后再用 echo 命令予以

出。
示例:
#输出一段字符串 LinuxCool.com
[root@master ~]# echo “LinuxCool.com”
LinuxCool.com
#输出变量 PATH 值
[root@master ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
24.source 命令
格式:source [文件]
功能:用于重新执行刚修改的初始化文件,使之立即生效,而不必注销用
户,重新登录。
示例: #读取和执行/etc/profile 文件
[root@master ~]# source /etc/profile


本文转载自: https://blog.csdn.net/2201_75381968/article/details/136536784
版权归原作者 晶晚不熬夜 所有, 如有侵权,请联系我们删除。

“什么!你要学spark!”的评论:

还没有评论