Linux操作系统篇

x33g5p2x  于2020-10-30 发布在 Linux  
字(10.1k)|赞(0)|评价(0)|浏览(390)

Hadoop通常都是搭建在Linux操作系统之上,故在搭建Hadoop实验环境之前,首先需要创建Linux系统环境。由于我们只是搭建Hadoop实验环境,而不是生产环境,因此,为简单起见,就采用虚拟机VMware+Linux操作系统RedHat(小红帽)。本文先介绍Linux操作系统的安装过程,以及Linux操作系统的一些相关基础知识,后续文章再接着介绍Hadoop实验环境的搭建及Hadoop等一系列的知识,敬请期待。

1、实验介质准备

下面列出的软件包是本文需要进行安装使用的,其他需要安装的软件包会在后续的文章中列出来。在这里要说明下,这些软件版本并不是一成不变的,可以根据自己的习惯或偏好,选择安装其他的软件包进行替代。但要注意的是,选择安装的软件包一定要符合自己电脑操作系统的实际情况,避免出现不必要的麻烦。

VMware12 (最常使用的虚拟机)

注意:版本不能太低,否则可能不支持安装的Linux操作系统;

rhel-server-7.4-x86_64 (RedHat操作系统镜像文件)

注意:可以根据自己的情况,选择安装不同的Linux操作系统;

jdk-8u144-linux-x64.tar.gz (64位的Java开发工具包)

注意:由于Hadoop是使用Java编写的,必须安装Java JDK才能运行;

putty及mtputty (远程登录工具,mtputty为putty的多窗口插件)

注意:该工具是为了方便远程登录Linux系统,可以同时打开多个窗口;

winscp (免费的FTP工具)

注意:该工具是为了方便Windows系统和Linux系统之间上传/下载文件;

tree-1.6.0-10.el7.x86_64.rpm (tree命令rpm安装包)

注意:该工具能在Linux系统命令行中以树形方式显示目录结构;

2、Linux操作的安装

VMWare软件的安装过程实在过于简单,在此就不做介绍了。下面直接介绍虚拟机的创建及Linux操作系统的安装。

1)文件菜单里点击新建虚拟机; 2)选择自定义(高级),点击下一步;

3)使用默认设置,点击下一步; 4)选择稍后安装操作系统,点击下一步;

5)选择客户机操作系统,点击下一步;注意:此处一定要勾选Linux(L),并且版本要选择Red HatEnterprise Linux 7 64位,根据自己的实际情况进行选择,不能选错;

6)设置虚拟机名称和位置,点击下一步;注意:后续总共需要创建5台虚拟机,虚拟机命名最好容易记忆,且编号连续(例如hadoop221~hadoop225),虚拟机保存位置最好是统一放到同一个目录下;并且该位置路径不能包含汉字及空格,否则虚拟机运行可能会出现问题。

7)使用默认设置,点击下一步;8)使用默认设置,点击下一步,

注意:此虚拟机的内存使用默认值就够用;

9)设置网络类型,选择使用仅主机模式网络,点击下一步;注意:为了防止后续出现网络上的问题,此处一定设置为使用仅主机模式网络,这样虚拟机启动后会自动使用主机网络进行联网,简单易行;

10)使用默认选项,点击下一步; 11)使用默认选项,点击下一步;

12)选择创建新虚拟磁盘,点击下一步;

13)设置最大磁盘大小(GB),可以尽量设置得大一些,点击下一步;注意:不是设置为多大容量,创建虚拟机时就立刻为其分配该容量的空间,是按实际需要进行分配,并以该值为上限;

14)使用默认设置,点击下一步; 15)点击完成,终结虚拟机的安装;

16)点击hadoop221,再点击编辑虚拟机设置;

17)点击CD/DVD(SATA),选择使用ISO映像文件,并点击浏览找到对应的Red Hat系统映像文件,如:rhel-server-7.4-x86_64-dvd.iso,点击确定;

18)点击开启此虚拟机,启动Linux系统的安装过程;19)选择第一个选项,并点击回车键;

20)使用默认选项,点击Continue;

21)点击DATE & TIME,选择设置时区,设置完成后点击Done,注意:中国时区只有上海一个选项;

22)回到如下图界面,配置安装选项,结束后点击Begin Installation;注意:进入SOFTWARE SELECTION选项后需要先勾选上Development Tools,因为这样安装时会自动安装gcc编译器,后续安装的Redis是使用c语言编写,需要使用到gcc编译器,然后根据自己的情况决定是否勾选上”Server with GUI”安装图形界面的Linux系统,但其实用不到;进入INSTALLATION DESTINATION选项中,选择先前创建好的硬盘;为了防止出现其他异常情况,需要禁用KUDUMP(去掉勾选Enable kdump)和关闭SECURITY POLICY安全策略(关闭Apply security policy开关按钮);

23)进入NETWORK & HOST NAME页面配置网络和主机名,配置结束后点击Done返回到该界面,再点击Begin Installation执行安装过程;注意:首先需要将Ethernet(ens33)网卡开关打开,然后在Host name中输入对应的主机名,如hadoop221,并点击Apply使用;点击Configure进入配置IP地址,在General下勾选上Automaticallyconnect to this network when it is available,在IPv4Settings下点击Add配置IP地址,设置该IP地址之前,到Windows命令行下查看VMnet1的IP地址,如:192.168.12.1,这里配置的IP地址需要跟VMnet1在同一个网段,否则Windows系统无法和Linux系统进行通信;配置IP为192.168.12.221,子网掩码为255.255.255.0;同时在Method选项中选择Manual;

24)点击“ROOT PASSWORD”,设置root用户的密码,注意:后续都使用root用户,密码就简单设置为root;

25)点击Reboot,重启系统,输入用户名:root,输入密码:root,完成安装向导;

然后,按照上述安装方式,再创建另外四台虚拟机,并安装好Linux操作系统(注意:虚拟机命名为hadoop222~ hadoop225,IP地址配置为192.168.12.222~192.168.12.225,其他配置均一致)。

3、Linux操作系统基础

Linux是一个自由、免费且源码开放的操作系统,它是开源软件中最著名的例子,其主要目的是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Unix兼容产品。Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds设计Linux系统核心,后来经过众多自由软件爱好者的共同努力,逐渐发展壮大,在不到三年的时间里就发展成为了一个功能完善、稳定可靠的操作系统。总体来说,Linux操作系统具有如下的特点:开放性、多用户、多任务、丰富的网络功能、可靠的系统安全、良好的可移植性、良好的用户界面(包括命令界面和图形界面)、出色的速度/性能以及标准兼容性。

A、Linux操作系统的体系结构

Linux操作系统一般有四个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起构成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性;shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,是一种命令解释器;文件系统是文件存放在磁盘等存储设备上的组织方法,Linux系统能支持多种目前流行的文件系统,如ETX2、ETX3、FAT、FAT32、VFAT以及ISO9660等。Linux操作系统的部分层次结构如下图所示:

B、Linux操作系统的目录结构

文件结构是文件存放在磁盘等存储设备上的组织方法,主要体现为对文件和目录的组织。目录提供了管理文件的一个方便有效的途径,Linux使用标准的目录结构,在安装的时候,就已经为用户创建了文件系统和完整而固定的目录组织形式,并指定了各个目录的作用和其中的文件类型。

Linux操作系统采用的是树型购,最上层是根目录,其它的所有目录都是从根目录出发而生成的。其目录结构如下图所示:

home存放所有用户文件的根目录

存放二进制可执行文件(ls,cat,mkdir等)

proc虚拟文件系统,存放当前内存的映射

usr用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录

boot存放用于系统引导时使用的各种文件

lib存放跟文件系统中的程序运行所需要的共享库及内核模块

dev用于存放设备文件

etc存放系统配置文件

var用于存放运行时需要改变数据的文件

tmp用于存放各种临时文件

mnt系统管理员安装临时文件系统的安装点

root超级用户目录

opt额外安装的可选应用程序包所放置的位置

C、目录/文件操作命令介绍

1)ls 显示文件和目录列表

ls -l—— 列出文件的详细信息,等同于ll命令;

ls -a ——列出当前目录下所有文件,包含隐藏文件和隐藏目录,带.的就是隐藏的,如隐藏文件:/root/.bash_profile,该文件用于设置root用户下的环境变量;隐藏目录: /root/.ssh,该目录用于保存root用户的公钥和私钥,可用于免密码登录(hadoop、spark需要配置免密码登录)。

类比HDFS上的查看命令:hdfs dfs -ls /

2)mkdir 创建目录

mkdir –p—— 父目录不存在的情况下,先创建父目录,再生成该目录

注意:为了后续文章描述的方便,在此处做出如下约定,

mkdir /root/training—— 创建安装目录,专门用于安装软件的目标目录;

mkdir /root/tools—— 软件介质目录,专门用于存放需要安装的软件介质

类比HDFS上的创建目录命令:hdfs dfs -mkdir /data

3)cd 切换目录

使用方法:cd 路径 如:cd ~/root/tools

注意:~代表当前用户(即root用户)的家目录,等同于/root

.代表当前目录;..代表上级目录

4)touch 生成一个空文件

echo生成一个带内容的文件,使用方法为:echo 字符内容 > 文件名

如:echo helloworld > a.txt

touch命令更常用的方式是用它查看环境变量的内容,如:echo $JAVA_HOME

5)cat、tac 显示文本文件内容

cat是从第一行开始显示;

tac是从最后一行开始显示;

more命令:分页显示文件内容,如:more data.txt

类比HDFS上查看文件内容的命令:hdfs dfs -cat /data/data.txt

6)cp 复制文件或目录

基本拷贝:cp data.txt a.txt

scp是在网络上进行拷贝的命令(安装Hadoop、Spark、Storm全分布环境的时候需要用到)

如:scp /root/training/hadoop2.7.3 root@hadoop222:/root/training

类比HDFS上拷贝文件的命令:hdfs dfs -cp /data/data.txt /data/bbb.txt

7)rm 删除文件

rm -r ——同时删除该目录下的所有文件

rm -f ——强制删除文件或目录

如:rm -rfa.txt;rm –rf /root/data

类比HDFS上删除文件/目录的命令: hdfs dfs -rmr /data

8)tar命令:打包压缩命令

Linux上常用软件安装介质的后缀为.tar.gz格式,如:hadoop-2.7.3.tar.gz,

jdk-8u144-linux-x64.tar.gz

使用举例:tar -zxvf hadoop-2.7.3.tar.gz –C /root/training

-x:解压;-c:建立压缩文档;-t:查看内容;

-u:更新源压缩包中的文件;-r:向压缩归档文件末尾追加文件。

注意:这五个是独立的命令参数,压缩/解压都要用到其中一个,可以和别的命令连用但只能用其中的一个。

-v:显示所有过程;-z:有gzip属性的,即gz;

-f:使用文件名字,是最后一个参数,后面只能接文件名;

-C:dir参数,将tar的工作目录进行切换,也就是将文件解压到指定目录。

9)kill 命令

kill命令最常用的参数为-9,用于杀死指定的进程,如:kill -9 PID

另外一个参数:kill -3 PID,对于Java程序来说,可以打印出其Thread Dump信息(分析死锁、性能瓶颈非常管用)

10)find 在文件系统中查找指定的文件

该命令后面的参数为-name 文件名

如: find . -name /.txt,.表示当前目录和子目录,/为通配符

11)man命令帮助信息查询

打印出相应命令的使用帮助信息

如:man ls,man touch

12)Linux通道

简单地说,一个通道接受一个工具软件的输出,然后把那个输出输入到其他工具软件。使用Unix/Linux的词汇,这个通道接受一个过程的标准输出,并把这个标准的输出作为另一个过程的标准输入。如果没有重新定向这个输出,这个输出就在屏幕上显示出来。使用一个通道,可以重新定向这个输出,这样它就变成了另一个工具软件的标准输入。

简单概括,该命令的使用格式为:命令1 | 命令2,把命令1的输出作为命令2的输入

如:cat data.txt| more

grep best /home//|more

ps -ef——查看所有的进程

ps -ef | grep java——把所有的进程进行过滤,只查看java的进程

13)RPM软件包管理

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称上虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的发型版本都有采用,可以算是公认的行业标准了。

RPM文件在Linux系统中的安装最为简便,作为一个软件包管理工具,RPM管理着系统已安装的所有RPM程序组件的资料,也可以使用RPM来卸载相关的应用程序。

-i:安装应用程序

-e:卸载应用程序

-vh:显示安装进度

-U:升级软件包

-qa:显示所有已安装软件包

-qa | grep:检测是否已安装某软件包

如:rpm –qa | grep tree ,检测是否已安装tree命令工具

14)其他常用命令

mv—— 移动文件或目录,也可以对文件或目录进行改名

如:mv/root/data/a.txt /root/temp/

grep—— 在指定的文本文件中查找指定的字符串

如:grep best/root/book.txt

more,less —— 分页显示文本文件内容

head,tail —— 分别显示文件开头/结尾内容

ln—— 建立链接文件

假如当前所在目录为/root/local,而需要经常访问/usr/local/linux/work,那么就可以在/root/local下建立一个链接文件linkwork,建立两者之间的链接

如:ln –s /usr/local/linux/work /root/local/linkwork

wc—— 统计文本文档的行数,字数,字符数

pwd—— 显示当前工作目录

clear—— 清屏,即将屏幕显示的内容清空

shutdowm—— 系统关机

-r:关机后重启; -h:关机后不重新启动; -now:立即关机

halt—— 关机后关闭电源

reboot—— 重新启动

D、vi编辑器介绍

vi编辑器的命令格式为:vi 文件名,如果文件存在,就打开该文件;如果文件不存在,就创建该文件并打开。

vi编辑器有三种运行模式,如下:

编辑模式(默认进入便是该模式):等待编辑命令的输入;在编辑模式下,按i 键就进入到插入模式,可输入文本信息;在编辑模式下,输入:就进入到命令模式;在编辑模式下,按/键就进入到搜索模式,可搜索相应的字符串;

插入模式:在该模式下,可以输入文本信息,完成后按esc键,则回到编辑模式;

命令模式:在该模式下,可以使用如下这些命令:

w ——保存;

q—— 退出;

wq—— 保存退出;

!—— 在命令后加上! ,表示强制执行;

set number—— 打开行号;

set nonumber—— 关闭行号;

set wrap—— 换行显示;

set nowrap—— 不换行显示

E.Linux系统管理

stat—— 显示指定文件的相关信息,比ls命令显示的内容更详细

如:stat /root/tools/hadoop-2.7.3.tar.gz

who—— 显示当前在线登录用户

hostname—— 显示主机名称

uname—— 显示系统信息

df—— 显示文件系统磁盘空间的使用情况

top—— 显示当前系统中耗费资源最多的进程

如:top –d 2,每两秒钟更新一次top,观察整体信息

ps—— 显示当前时刻进程的状态

如:ps –ef使用标准格式显示每个进程的状态信息

du—— 显示指定文件(目录)已使用的磁盘空间的总量(磁盘块数)

free—— 显示当前内存和交换空间的使用情况

ifconfig—— 显示网络接口信息,查看网卡IP地址等信息经常用到

ping—— 测试网络的连通性

如:ping 192.168.12.222

netstat—— 显示网络连接状态信息

F、用户和组账户管理

Linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源,系统会根据账户来区分每个用户的文件、进程、任务和工作环境,使得每个用户工作都不受干扰。

用户账户

普通用户账户:普通用户在系统上的任务是进行普通操作

超级用户账户:管理员在系统上的任务是对普通用户和整个系统进行管理,对系统具有绝对的控制权,能够对系统进行一切操作

组账户

私有组:当创建一个用户时没有指定属于哪个组,Linux就会建立一个与用户同名的私有组,此私有组只含有该用户

标准组:当创建一个用户时可以选定一个标准组,如果一个用户同时属于多个组时,登录后所属的组为主组,其他的为附加组

账户系统文件(/etc/passwd)

每行定义一个用户账户,此文件对所有用户可读,每行账户包含如下信息:

用户名:口令:用户标识号:组标识号:注释:宿主目录:命令解释器

如:root:x:0:0:RedHat Linux:/root:/bin/bash

口令是x,说明用户的口令是被/etc/shadow文件保护的

用户标识号,系统内唯一,root用户的UID为0,普通用户从500开始,1-499是系统的标准账户

宿主目录,用户登录系统后所进入的目录

命令解释器,指定该用户使用的shell,默认的是/bin/bash

账户系统文件(/etc/shadow)

为了增加系统的安全性,用户口令通常用shadow passwords进行保护,只有root可读,每行包含如下信息:

用户名:口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

如:root:$1$K4gXdkjf$TIKrvWuldq6oQ4HEoFIGQ/:14831:0:99999:7:::

最后一次修改时间,从1970-1-1起,到用户最后一次更改口令的天数

最小时间间隔,从1970-1-1起,到用户可以更改口令的天数

最大时间间隔,从1970-1-1起,必须更改的口令天数

警告时间,在口令过期之前几天通知

不活动时间,在用户口令过期后到禁用账户的天数

账户系统文件(/etc/group)

将用户进行分组时,Linux对用户进行管理及控制访问权限的一种手段,一个组中可以有多个用户,一个用户可以同时属于多个组,该文件对所有用户可读。

格式为:组名:组口令:组标识号:组内用户列表

如:root:x:0:root daemon:x:1: bin:x:2: sys:x:3:

账户系统文件(/etc/gshadow)

该文件用于定义用户组口令、组管理员等信息,是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件中,只有root用户可读。

格式为:组名:组口令:组管理者:组内用户列表

如:root:::root bin:::root,bin,daemon

管理用户和组常用命令

su用户名 —— 切换用户账户,如su root,su - root

id用户名 —— 显示用户的UID,GID信息

whoami—— 显示当前用户名称

groups—— 显示用户所属组

passwd用户账户名 —— 设置用户口令

passwd –d用户账户名 —— 删除账户口令

useradd用户名—— 新增用户

useradd –m用户名 —— 参数-m用于设定系统添加账户时自动建立用户根目录

G、Linux权限管理

目录和文件可拥有:读r、写w以及执行x的权限,可使用ls –l命令查看当前目录下文件及目录的权限信息。

权限对文件的作用

r:读取文件内容(可用于cat、more、head、tail等命令)

w:编辑、新增、修改文件内容(可用于vi、echo等命令),但不包含删除文件

x:可执行

对于文件来说,最高权限是执行权限(x),所以文件要尽量少赋予执行权限。

权限对目录的作用

r:可以查看目录下所有的文件(可用于ls命令)

w:具有修改目录结构的权限,如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切此目录下文件或目录,(可用于touch、rm、mv、cp等命令)

x:可以进入目录(用于cd命令)

对目录来说,最高权限是写权限(w),所以目录要尽量少赋予写权限。

举例:

在上图中可以看到,每个文件最前面有一组字符,如drwxr-xr-x,总共有十位,第一位是标识位,用于标识是目录(d)还是文件(-);后面九位每三位为一组,前三位代表当前用户的权限;中间三位代表同组用户的权限;最后三位代表其他用户的权限。每一组中的三位依次代表可读、可写、可执行的权限,如果拥有相应的权限,对应的那位就赋值为1;否则,就赋值为0,这三位都是二进制位,也可转换为十进制数。

比如data.txt文件的权限为-rwxrw-r--,表示该文件是文件类型,当前用户root对该文件拥有可读可写可执行的权限;同组用户对该文件拥有可读可写的权限;其他用户对该文件只拥用可读权限。可以使用chmod命令对data.txt文件的权限进行修改,从上图可以看到,运行chmod 764 data.txt后,data.txt文件的权限变为了-rwxrw-r--。

类比HDFS上修改文件权限的命令:hdfs dfs –chmod764 /data/data.txt

4、软件安装和配置

A、安装putty和winscp

putty(包括mtputty)远程登录工具和winscp FTP工具都是windows程序,跟安装普通的软件没有区别,这里就不再讲述其安装过程。注意,在安装其他Linux软件包前,需要先安装这两个程序,以方便从windows端上传相应的软件包到Linux系统中。

B、安装Java JDK

首先,使用windows上安装的winscp工具将JDK安装包、tree安装包一并上传到Linux系统/root/tools目录下,然后进入到该目录下,使用tar命令对jdk软件包进行解压即可,如下:

tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training/

C、设置JDK环境变量

使用命令vi /root/.bash_profile,编辑该隐藏文件.bash_profile,在文件末尾添加如下几行文字:

JAVA_HOME=/root/training/jdk1.8.0_144

export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

export PATH

注意:保存退出后,运行命令source /root/.bash_profile使环境变量生效;

然后,运行命令java –version检验java环境变量是否配置生效,如下:

D、安装tree命令工具

在/tools/目录下直接使用命令rpm -ivh tree-1.6.0-10.el7.x86_64.rpm安装即可。使用方法为:tree –d –L 数字

-d:只显示目录,可省略,则既显示目录又显示文件

-L:表示最多显示的目录层级数目

如:[root@hadoop221 jdk1.8.0_144]/# tree -d -L 2

Linux操作系统博大精深,本文只对将来Hadoop学习过程中可能会使用到的Linux知识点进行了简单介绍,具体内容可以上网进行更深入的学习,在此就不再过多赘述,敬请期待下篇文章的更新!

参考资料:

——《百度百科》

——《CSDN博客》

——《潭州大叔就课程课件》

转自https://mp.weixin.qq.com/s/z1EOPZD-b762MzmOVazwYA

相关文章