Linux 快速入門與實戰 — 基礎知識、容器與容器編排、大數據系統運維
內容描述
本書基於CentOS 8編寫,共分9章,分別是:
Linux基礎,快速上手Linux,Linux進階,Shell編程,使用Docker實現Linux應用容器化,Kubernetes容器編排與運維,
Hadoop集群構建與運維,Spark集群構建、配置及運維,使用Zabbix進行系統監控。
此外,本書還提供配套的《Linux快速入門與實戰—擴展閱讀與實踐》
免費電子書,以及介紹虛擬機使用方法的免費高清視頻資源。
本書精選Linux知識點,以容器和大數據等Linux熱點應用方向為切入點,
幫助讀者快速入門Linux的使用,紮實掌握Linux在系統運維、容器、
容器編排和大數據等應用方向的實用技術。
本書既可作為Linux學習者、雲計算和大數據從業者的技術參考書,
也可以作為高等院校雲計算和大數據相關專業的教材
目錄大綱
目錄
前言
第1章 Linux基礎1
1.1 初識Linux1
1.1.1 Linux簡介1
1.1.2 Linux的相關術語2
1.1.3 Linux的應用領域7
1.2 走進Linux7
1.2.1 Linux的組成7
1.2.2 Linux的啟動過程14
1.2.3 Linux的登錄過程(擴展閱讀1)23
1.2.4 Linux的交互過程(擴展閱讀2)23
1.3 高效學習Linux23
1.3.1 Linux學習中的關鍵點23
1.3.2 Linux快速學習路線圖24
1.3.3 利用本書資源高效學習Linux25
1.3.4 本書所使用的軟件和版本
(重要,必看)26
第2章 快速上手Linux27
2.1 安裝Linux27
2.1.1 定制虛擬機(實踐1)28
2.1.2 最小化安裝CentOS 8(實踐2)28
2.2 Linux使用的基本概念28
2.2.1 重定向28
2.2.2 Linux用戶32
2.2.3 Linux文件36
2.2.4 環境變量40
2.2.5 掛載42
2.3 常用的Linux命令44
2.3.1 快捷鍵45
2.3.2 用戶管理46
2.3.3 文件操作48
2.3.4 幫助查看54
2.3.5 Linux下的WinRAR—tar56
2.3.6 Linux下的搜索神器—find57
2.3.7 Linux高手的編輯神器—VIM59
第3章 Linux進階64
3.1 Linux網絡管理64
3.1.1 設置IP地址64
3.1.2 連接互聯網67
3.1.3 遠程登錄和文件傳輸(實踐3)68
3.1.4 遠程無密碼登錄(實踐4)68
3.2 Linux包管理68
3.2.1 配置安裝源68
3.2.2 常用包管理命令72
3.3 Linux存儲75
3.3.1 Linux存儲基本概念75
3.3.2 Linux存儲體系79
3.3.3 Linux存儲基本操作81
3.3.4 LVM使用86
3.4 Linux系統管理90
3.4.1 進程管理(擴展閱讀3)90
3.4.2 計劃任務(擴展閱讀4)91
3.4.3 服務管理(擴展閱讀5)91
第4章 Shell編程92
4.1 Shell編程基礎92
4.1.1 Shell基礎和原理(擴展閱讀6)93
4.1.2 Shell編程通用步驟93
4.2 Shell編程語法94
4.2.1 Shell變量94
4.2.2 Shell特殊字符(擴展閱讀7)97
4.2.3 Shell分支結構97
4.2.4 Shell循環99
4.2.5 Shell函數102
4.3 Shell編程實例:基於Shell
腳本的計算器(實踐5)105
第5章 使用Docker實現Linux應用
容器化106
5.1 Docker的核心概念和技術106
5.1.1 Docker的定義106
5.1.2 Docker的核心概念107
5.1.3 Docker的架構110
5.1.4 Docker容器與虛擬機的區別
(擴展閱讀8)113
5.1.5 Docker的價值(擴展閱讀9)113
5.1.6 Docker的底層技術
(擴展閱讀10)113
5.2 Docker的安裝與使用(實踐6)113
5.3 Docker網絡原理和使用113
5.3.1 Docker網絡驅動114
5.3.2 查看Docker網絡114
5.3.3 Docker默認網絡的基本原理115
5.3.4 Docker自定義bridge網絡
原理及使用117
5.3.5 Docker host網絡原理及使用121
5.3.6 Docker overlay網絡原理和使用
(擴展閱讀11)122
5.3.7 Docker MACVLAN網絡原理和
使用122
5.4 基於Docker的Linux應用
容器化實踐129
5.4.1 構建Linux應用的Docker基礎
鏡像130
5.4.2 編寫Dockerfile133
5.4.3 將Docker容器直接存儲為
Docker鏡像144
5.4.4 Docker鏡像的版本管理144
5.4.5 公有Registry的Docker鏡像
操作146
5.4.6 私有Registry的構建和Docker
鏡像操作149
5.5 Linux應用容器化實例:在單機
上構建100個節點的集群152
5.5.1 編寫Dockerfile構建鏡像152
5.5.2 編寫腳本啟動基於Docker容器的
集群155
5.5.3 運維基於Docker容器的集群156
第6章 Kubernetes容器編排與運維158
6.1 Kubernetes核心概念和架構158
6.1.1 Kubernetes的定義及背景158
6.1.2 Kubernetes的核心概念160
6.1.3 Kubernetes的架構169
6.1.4 Kubernetes和Docker173
6.2 基於kubeadm快速構建
Kubernetes集群174
6.2.1 Kubernetes集群的規劃174
6.2.2 構建Kubernetes集群174
6.3 Kubernetes的基礎操作186
6.3.1 使用YAML創建
Kubernetes resource186
6.3.2 Pod典型使用188
6.3.3 RC/RS的基本操作(實踐7)192
6.3.4 Deployment的典型使用
(實踐8)193
6.3.5 Service的典型使用(實踐9)193
6.4 Kubernetes容器編排實踐193
6.4.1 Kubernetes中容器的高可用實踐
(實踐10)193
6.4.2 使用Pod實現容器在指定的
節點上運行194
6.4.3 在Pod中運行多個容器196
6.4.4 實現Pod中容器數據的持久化
存儲(PersistentVolume)198
6.4.5 利用Ingress從外部訪問Pod中
容器的服務204
6.4.6 利用HPA實現容器規模的自動
伸縮212
6.5 Kubernetes運維實踐218
6.5.1 Kubernetes節點性能數據採集218
6.5.2 Web UI的安裝與使用220
6.5.3 Kubernetes故障調試222
第7章 Hadoop集群構建與運維227
7.1 Hadoop的原理及核心組件架構
(擴展閱讀12)227
7.2 HDFS的使用與運維228
7.2.1 構建基於容器的HDFS集群
(實踐11)228
7.2.2 HDFS常用命令(實踐12)229
7.2.3 HDFS動態擴容229
7.2.4 HDFS HA 實踐(實踐13)231
7.2.5 HDFS 糾刪碼存儲機制與使用231
7.3 YARN構建與運維238
7.3.1 構建基於容器的YARN集群
(實踐14)238
7.3.2 在YARN上運行MapReduce程序
(實踐15)239
7.3.3 YARN日誌分類與查看239
7.4 Ozone使用與運維240
7.4.1 構建基於容器的Ozone集群240
7.4.2 Ozone常用命令244
7.4.3 Ozone運維實踐249
第8章 Spark集群構建、配置及運維251
8.1 Spark技術基礎(擴展閱讀13)251
8.2 構建基於容器的Spark集群252
8.2.1 Spark集群規劃和部署252
8.2.2 構建Spark基礎鏡像252
8.2.3 Spark容器啟動腳本的編輯與
使用254
8.3 Spark程序運行256
8.3.1 Spark程序Local運行
(實踐16)256
8.3.2 提交Spark程序到Standalone
運行(實踐17)256
8.3.3 提交Spark程序到YARN運行
(實踐18)257
8.4 Spark常用配置257
8.4.1 Spark配置分類說明257
8.4.2 Spark常用配置說明257
8.4.3 Spark配置基本使用方法258
8.4.4 Spark配置示例259
8.5 Spark常用運維技術與工具261
8.5.1 Spark Standalone日誌261
8.5.2 spark-shell的使用(實踐19)262
8.5.3 Spark程序運行監控262
8.5.4 配置和使用Spark History Server266
第9章 使用Zabbix進行系統監控269
9.1 Zabbix基礎269
9.1.1 Zabbix核心概念269
9.1.2 Zabbix系統架構272
9.1.3 Zabbix使用和監控流程273
9.2 Zabbix快速部署與使用274
9.2.1 Zabbix系統規劃274
9.2.2 構建centos8_zabbix_server鏡像
(實踐20)274
9.2.3 Zabbix server Web配置274
9.2.4 Zabbix快速使用277
9.3 Zabbix監控實踐282
9.3.1 監控服務器282
9.3.2 監控日誌285
9.3.3 監控數據庫289
9.3.4 監控Web服務器290
9.4 綜合實戰:使用Zabbix監控HDFS
分佈式文件系統292
9.4.1 設計HDFS監控系統方案292
9.4.2 導入Hadoop監控Template293
9.4.3 創建Host group、User group和
User295
9.4.4 監控Windows297
9.4.5 構建Zabbix agent鏡像
(實踐21)301
9.4.6 構建Proxy鏡像(實踐22)301
9.4.7 監控Docker301
9.4.8 監控HDFS304
參考文獻309
作者介紹
文艾,筆名艾叔,系統分析師,原解放軍理工大學-奇虎360雲計算聯合實驗室技術負責人,51CTO學院嚴選講師。具有多年的計算機研發和教學經驗,指導學生參加OOO科技創新和編程比賽,獲得特等獎一次、一等獎兩次、二等獎兩次。創辦“艾叔編程”公眾號,並在網易云課堂上開設了一系列免費視頻課程,至今已幫助8萬多名初學者入門編程,並獲得諸多好評。