當前位置:
首頁 > 最新 > Linux操作系統篇

Linux操作系統篇

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可讀,每行包含如下信息:

用戶名:口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

最後一次修改時間,從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環境變數是否配置生效,如下:

C、安裝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博客》

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


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序猿的修身養性 的精彩文章:

大數據技術背景介紹

TAG:程序猿的修身養性 |