成都網(wǎng)站設(shè)計(jì)開發(fā)做得好怎樣做網(wǎng)絡(luò)推廣營銷
文章目錄
- 實(shí)戰(zhàn)章節(jié):在Linux上部署各類軟件
- tar -zxvf各個(gè)選項(xiàng)的含義
- 為什么學(xué)習(xí)各類軟件在Linux上的部署
- 一 MySQL數(shù)據(jù)庫管理系統(tǒng)安裝部署【簡單】
- MySQL5.7版本在CentOS系統(tǒng)安裝
- MySQL8.0版本在CentOS系統(tǒng)安裝
- MySQL5.7版本在Ubuntu(WSL環(huán)境)系統(tǒng)安裝
- MySQL8.0版本在Ubuntu(WSL環(huán)境)系統(tǒng)安裝
- 二 Tomcat安裝部署【簡單】
- 安裝JDK環(huán)境
- 解壓并部署Tomcat
- 三 Nginx安裝部署【簡單】
- 四 RabbitMQ安裝部署【簡單】
- 五 Redis安裝部署【簡單】
- 六 ElasticSearch安裝部署
- 七 集群化環(huán)境前置準(zhǔn)備
- 配置SSH免密登錄
- 關(guān)閉防火墻和SELinux
- 添加快照
- 補(bǔ)充命令 - scp
- 八 Zookeeper集群安裝部署
- 九 Kafka集群安裝部署
- 十 大數(shù)據(jù)集群(Hadoop生態(tài))安裝部署
- 十一 大數(shù)據(jù)NoSQL數(shù)據(jù)庫HBase集群部署
- 十二 分布式內(nèi)存計(jì)算Spark環(huán)境部署
- 十三 分布式內(nèi)存計(jì)算Flink環(huán)境部署
- 十四 運(yùn)維監(jiān)控Zabbix部署
- zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix1234!
- 十五 運(yùn)維監(jiān)控Grafana部署
實(shí)戰(zhàn)章節(jié):在Linux上部署各類軟件
tar -zxvf各個(gè)選項(xiàng)的含義
tar -zxvf
是常見的 Linux 中用于解壓 .tar.gz
文件的命令組合。以下是各個(gè)選項(xiàng)的詳細(xì)含義:
字母 | 含義 |
---|---|
-z | gzip:表示使用 gzip 壓縮格式,解壓 .tar.gz 文件時(shí)必須加上此選項(xiàng)。 |
-x | extract:表示解壓歸檔文件(從壓縮包中提取文件和目錄)。 |
-v | verbose:顯示詳細(xì)的解壓過程,將解壓的每個(gè)文件名稱輸出到屏幕,方便用戶查看進(jìn)度。 |
-f | file:指定要操作的文件(后面必須跟上目標(biāo)文件的名稱,比如 file.tar.gz )。 |
常見組合
- 解壓
.tar.gz
文件
tar -zxvf file.tar.gz
解壓 file.tar.gz
文件到當(dāng)前目錄。
過程會(huì)顯示解壓出的文件和目錄名稱。
- 解壓
.tar.gz
文件到指定目錄
tar -zxvf file.tar.gz -C /path/to/directory
使用 -C
指定解壓后的目標(biāo)目錄,例如 /path/to/directory
。
- 壓縮目錄為
.tar.gz
文件
tar -zcvf file.tar.gz directory_name
壓縮 directory_name
目錄為 file.tar.gz
。
選項(xiàng)補(bǔ)充
選項(xiàng) | 功能 |
---|---|
-c | create:創(chuàng)建一個(gè)歸檔文件(打包文件)。 |
-t | list:列出歸檔文件的內(nèi)容,而不解壓。 |
-C | directory:解壓文件到指定目錄。 |
--exclude | 排除指定文件或目錄不加入歸檔。 |
具體示例
查看 .tar.gz
文件內(nèi)容
tar -ztvf file.tar.gz
顯示文件內(nèi)容而不解壓,列出文件的結(jié)構(gòu)。
只解壓指定的文件
tar -zxvf file.tar.gz file1 file2
僅解壓 file1
和 file2
兩個(gè)文件。
總結(jié)
tar -zxvf
的含義可以分解為:
z:處理 gzip
壓縮。
x:解壓文件。
v:顯示詳細(xì)解壓過程。
f:指定操作的文件。
這是一個(gè)常用的 Linux 解壓命令組合,用于處理 .tar.gz
文件。根據(jù)需要,您可以靈活添加其他選項(xiàng)來完成復(fù)雜的壓縮或解壓操作!
為什么學(xué)習(xí)各類軟件在Linux上的部署
在前面,我們學(xué)習(xí)了許多的Linux命令和高級(jí)技巧,這些知識(shí)點(diǎn)比較零散,同學(xué)們跟隨著課程的內(nèi)容進(jìn)行練習(xí)雖然可以基礎(chǔ)掌握這些命令和技巧的使用,但是并沒有一些具體的實(shí)操能夠串聯(lián)起來這些知識(shí)點(diǎn)。
前置要求
- 實(shí)戰(zhàn)章節(jié)要求同學(xué)們務(wù)必全部學(xué)習(xí)前面的知識(shí)點(diǎn),即:初識(shí)Linux、Linux基礎(chǔ)命令、Linux權(quán)限管理、Linux高階技巧這4個(gè)章節(jié),請(qǐng)勿跳過前面的章節(jié)學(xué)習(xí)實(shí)戰(zhàn)章節(jié)。
- 實(shí)戰(zhàn)章節(jié)中會(huì)開啟多臺(tái)虛擬機(jī),請(qǐng)盡量確保電腦的內(nèi)存在:8GB(包含8GB)以上。如內(nèi)存不足可以擴(kuò)充內(nèi)存條或購買阿里云、UCloud等云服務(wù)器臨時(shí)使用(1個(gè)月多臺(tái)低配服務(wù)器幾十塊左右)
對(duì)于云平臺(tái)上購買服務(wù)器,可以參閱最后的章節(jié)(云服務(wù))
注意
下面全部的軟件安裝的相關(guān)流程,90%都是取自軟件自身的官方網(wǎng)站。
一個(gè)合格的程序員要有良好的信息收集能力哦
一 MySQL數(shù)據(jù)庫管理系統(tǒng)安裝部署【簡單】
MySQL5.7版本在CentOS系統(tǒng)安裝
注意:安裝操作需要root權(quán)限
MySQL的安裝我們可以通過前面學(xué)習(xí)的yum命令進(jìn)行。
安裝
- 配置yum倉庫
# 更新密鑰
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安裝Mysql yum庫
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
由于MySQL并不在CentOS的官方倉庫中,所以我們通過上述rpm命令:
- <font style="color:rgb(119, 119, 119);">導(dǎo)入MySQL倉庫的密鑰</font>
- <font style="color:rgb(119, 119, 119);">配置MySQLQ的yum倉庫</font>
- 使用yum安裝MySQL
# yum安裝Mysql
yum -y install mysql-community-server
- 安裝完成后,啟動(dòng)MySQL并配置開機(jī)自啟動(dòng)
systemctl start mysqld # 啟動(dòng)
systemctl enable mysqld # 開機(jī)自啟
MySQL安裝完成后,會(huì)自動(dòng)配置為名稱叫做:<font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">mysqld</font>
的服務(wù),可以被systemctl所管理
檢查MySQL的運(yùn)行狀態(tài)
- systemctl status mysqld
配置
主要配置管理員用戶root的密碼以及配置允許遠(yuǎn)程登錄的權(quán)限。
- 獲取MySQL的初始密碼
# 通過grep命令,在/var/log/mysqld.log文件中,過濾temporary password關(guān)鍵字,得到初始密碼
grep 'temporary password' /var/log/mysqld.log
- 登陸MySQL數(shù)據(jù)庫系統(tǒng)
# 執(zhí)行
mysql -uroot -p
# 解釋
# -u,登陸的用戶,MySQL數(shù)據(jù)庫的管理員用戶同Linux一樣,是root
# -p,表示使用密碼登陸# 執(zhí)行完畢后輸入剛剛得到的初始密碼,即可進(jìn)入MySQL數(shù)據(jù)庫
- 修改root用戶密碼
# 在MySQL控制臺(tái)內(nèi)執(zhí)行
ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼'; -- 密碼需要符合:大于8位,有大寫字母,有特殊符號(hào),不能是連續(xù)的簡單語句如123,abc
- [擴(kuò)展],配置root的簡單密碼
我們可以給root設(shè)置簡單密碼,如123456.
請(qǐng)注意,此配置僅僅是用于測試環(huán)境或?qū)W習(xí)環(huán)境的MySQL,如果是正式使用,請(qǐng)勿設(shè)置簡單密碼
# 如果你想設(shè)置簡單密碼,需要降低Mysql的密碼安全級(jí)別
set global validate_password_policy=LOW; # 密碼安全級(jí)別低
set global validate_password_length=4; # 密碼長度最低4位即可# 然后就可以用簡單密碼了(課程中使用簡單密碼,為了方便,生產(chǎn)中不要這樣)
ALTER USER 'root'@'localhost' IDENTIFIED BY '簡單密碼';
- [擴(kuò)展],配置root運(yùn)行遠(yuǎn)程登錄
默認(rèn)情況下,root用戶是不運(yùn)行遠(yuǎn)程登錄的,只允許在MySQL所在的Linux服務(wù)器登陸MySQL系統(tǒng)
請(qǐng)注意,允許root遠(yuǎn)程登錄會(huì)帶來安全風(fēng)險(xiǎn)
# 授權(quán)root遠(yuǎn)程登錄
grant all privileges on *.* to root@"IP地址" identified by '密碼' with grant option;
# IP地址即允許登陸的IP地址,也可以填寫%,表示允許任何地址
# 密碼表示給遠(yuǎn)程登錄獨(dú)立設(shè)置密碼,和本地登陸的密碼可以不同# 刷新權(quán)限,生效
flush privileges;
- 退出MySQL控制臺(tái)頁面
# 退出命令
exit# 或者通過快捷鍵退出:ctrl + d
檢查端口
MySQL默認(rèn)綁定了3306端口,可以通過端口占用檢查MySQL的網(wǎng)絡(luò)狀態(tài)
- netstat -anp | grep 3306
至此,MySQL就安裝完成并可用了,請(qǐng)妥善保存好MySQL的root密碼。
MySQL8.0版本在CentOS系統(tǒng)安裝
注意:安裝操作需要root權(quán)限
安裝
- 配置yum倉庫
# 更新密鑰
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安裝Mysql8.x版本 yum庫
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
- 使用yum安裝MySQL
# yum安裝Mysql
yum -y install mysql-community-server
- 安裝完成后,啟動(dòng)MySQL并配置開機(jī)自啟動(dòng)
systemctl start mysqld # 啟動(dòng)
systemctl enable mysqld # 開機(jī)自啟
MySQL安裝完成后,會(huì)自動(dòng)配置為名稱叫做:<font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">mysqld</font>
的服務(wù),可以被systemctl所管理
檢查MySQL的運(yùn)行狀態(tài)
- systemctl status mysqld
配置
主要修改root密碼和允許root遠(yuǎn)程登錄
- 獲取MySQL的初始密碼
# 通過grep命令,在/var/log/mysqld.log文件中,過濾temporary password關(guān)鍵字,得到初始密碼
grep 'temporary password' /var/log/mysqld.log
- 登錄MySQL數(shù)據(jù)庫系統(tǒng)
# 執(zhí)行
mysql -uroot -p
# 解釋
# -u,登陸的用戶,MySQL數(shù)據(jù)庫的管理員用戶同Linux一樣,是root
# -p,表示使用密碼登陸# 執(zhí)行完畢后輸入剛剛得到的初始密碼,即可進(jìn)入MySQL數(shù)據(jù)庫
修改root密碼
- ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘密碼’; – 密碼需要符合:大于8位,有大寫字母,有特殊符號(hào),不能是連續(xù)的簡單語句如123,abc
- [擴(kuò)展],配置root的簡單密碼
我們可以給root設(shè)置簡單密碼,如123456.
請(qǐng)注意,此配置僅僅是用于測試環(huán)境或?qū)W習(xí)環(huán)境的MySQL,如果是正式使用,請(qǐng)勿設(shè)置簡單密碼
set global validate_password.policy=0; # 密碼安全級(jí)別低
set global validate_password.length=4; # 密碼長度最低4位即可
- 允許root遠(yuǎn)程登錄,并設(shè)置遠(yuǎn)程登錄密碼
默認(rèn)情況下,root用戶是不運(yùn)行遠(yuǎn)程登錄的,只允許在MySQL所在的Linux服務(wù)器登陸MySQL系統(tǒng)
請(qǐng)注意,允許root遠(yuǎn)程登錄會(huì)帶來安全風(fēng)險(xiǎn)
# 第一次設(shè)置root遠(yuǎn)程登錄,并配置遠(yuǎn)程密碼使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼!'; -- 密碼需要符合:大于8位,有大寫字母,有特殊符號(hào),不能是連續(xù)的簡單語句如123,abc# 后續(xù)修改密碼使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼';
- 退出MySQL控制臺(tái)頁面
# 退出命令
exit# 或者通過快捷鍵退出:ctrl + d
檢查端口
MySQL默認(rèn)綁定了3306端口,可以通過端口占用檢查MySQL的網(wǎng)絡(luò)狀態(tài)
- netstat -anp | grep 3306
至此,MySQL就安裝完成并可用了,請(qǐng)妥善保存好MySQL的root密碼。
MySQL5.7版本在Ubuntu(WSL環(huán)境)系統(tǒng)安裝
課程中配置的WSL環(huán)境是最新的Ubuntu22.04版本,這個(gè)版本的軟件商店內(nèi)置的MySQL是8.0版本
所以我們需要額外的步驟才可以安裝5.7版本的MySQL
安裝操作需root權(quán)限,你可以:
- 通過 sudo su -,切換到root用戶
課程中選擇這種方式操作
- 或在每一個(gè)命令前,加上sudo,用來臨時(shí)提升權(quán)限
安裝
- 下載apt倉庫文件
# 下載apt倉庫的安裝包,Ubuntu的安裝包是.deb文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
- 配置apt倉庫
# 使用dpkg命令安裝倉庫
dpkg -i mysql-apt-config_0.8.12-1_all.deb
彈出框中選擇:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">ubuntu bionic</font>
(Ubuntu18.04系統(tǒng)的代號(hào)是bionic,選擇18.04的版本庫用來安裝)
彈出框中選擇:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">MySQL Server & Cluster</font>
彈出框中選擇:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">mysql-5.7</font>
最后選擇:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">ok</font>
- 更新apt倉庫的信息
# 首先導(dǎo)入倉庫的密鑰信息
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# 更新倉庫信息
apt update
檢查是否成功配置MySQL5.7的倉庫
- apt-cache policy mysql-server
看到如圖所示字樣,即成功
- 安裝MySQL5.7
# 使用apt安裝mysql客戶端和mysql服務(wù)端
apt install -f -y mysql-client=5.7* mysql-community-server=5.7*
彈出框中輸入root密碼并選擇ok,密碼任意,課程中以123456代替
再次輸入root密碼確認(rèn)
- 啟動(dòng)MySQL
/etc/init.d/mysql start # 啟動(dòng)
/etc/init.d/mysql stop # 停止
/etc/init.d/mysql status # 查看狀態(tài)
- 對(duì)MySQL進(jìn)行初始化
# 執(zhí)行如下命令,此命令是MySQL安裝后自帶的配置程序
mysql_secure_installation
# 可以通過which命令查看到這個(gè)自帶程序所在的位置
root@DESKTOP-Q89USRE:~# which mysql_secure_installation
/usr/bin/mysql_secure_installation
1. <font style="color:rgb(51, 51, 51);">輸入密碼:</font>
2. <font style="color:rgb(51, 51, 51);">是否開啟密碼驗(yàn)證插件,如果需要增強(qiáng)密碼安全性,輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">并回車,不需要直接回車(課程中選擇直接回車)</font>
3. <font style="color:rgb(51, 51, 51);">是否更改root密碼,需要輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不需要直接回車(課程不更改)</font>
4. <font style="color:rgb(51, 51, 51);">是否移除匿名用戶,移除輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不移除直接回車(課程選擇移除)</font>
5. <font style="color:rgb(51, 51, 51);">是否進(jìn)制root用戶遠(yuǎn)程登錄,禁止輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不禁止直接回車(課程選擇不禁止)</font>
6. <font style="color:rgb(51, 51, 51);">是否移除自帶的測試數(shù)據(jù)庫,移除輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不移除直接回車(課程選擇不移除)</font>
7. <font style="color:rgb(51, 51, 51);">是否刷新權(quán)限,刷新輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不刷新直接回車(課程選擇刷新)</font>
- 登陸MySQL
mysql -uroot -p
# 輸入密碼即可登陸成功
至此,在Ubuntu上安裝MySQL5.7版本成功。
MySQL8.0版本在Ubuntu(WSL環(huán)境)系統(tǒng)安裝
課程中配置的WSL環(huán)境是最新的Ubuntu22.04版本,這個(gè)版本的軟件商店內(nèi)置的MySQL是8.0版本
所以直接可以通過apt安裝即可
注意,課程是以WSL獲得的Ubuntu操作系統(tǒng)環(huán)境。
如果你通過VMware虛擬機(jī)的方式獲得了Ubuntu操作系統(tǒng)環(huán)境,操作步驟不用擔(dān)心,和課程中使用WSL環(huán)境是完全一致的
安裝操作需root權(quán)限,你可以:
- 通過 sudo su -,切換到root用戶
課程中選擇這種方式操作
- 或在每一個(gè)命令前,加上sudo,用來臨時(shí)提升權(quán)限
安裝
- 如果已經(jīng)安裝過MySQL5.7版本,需要卸載倉庫信息哦
# 卸載MySQL5.7版本
apt remove -y mysql-client=5.7* mysql-community-server=5.7*# 卸載5.7的倉庫信息
dpkg -l | grep mysql | awk '{print $2}' | xargs dpkg -P
更新apt倉庫信息
- apt update
安裝mysql
- apt install -y mysql-server
- 啟動(dòng)MySQL
/etc/init.d/mysql start # 啟動(dòng)
/etc/init.d/mysql stop # 停止
/etc/init.d/mysql status # 查看狀態(tài)
- 登陸MySQL設(shè)置密碼
# 直接執(zhí)行:mysql
mysql
設(shè)置密碼
- ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
退出MySQL控制臺(tái)
- exit
- 對(duì)MySQL進(jìn)行初始化
# 執(zhí)行如下命令,此命令是MySQL安裝后自帶的配置程序
mysql_secure_installation
# 可以通過which命令查看到這個(gè)自帶程序所在的位置
root@DESKTOP-Q89USRE:~# which mysql_secure_installation
/usr/bin/mysql_secure_installation
1. <font style="color:rgb(51, 51, 51);">輸入密碼:</font>
2. <font style="color:rgb(51, 51, 51);">是否開啟密碼驗(yàn)證插件,如果需要增強(qiáng)密碼安全性,輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">并回車,不需要直接回車(課程中選擇直接回車)</font>
3. <font style="color:rgb(51, 51, 51);">是否更改root密碼,需要輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不需要直接回車(課程不更改)</font>
4. <font style="color:rgb(51, 51, 51);">是否移除匿名用戶,移除輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不移除直接回車(課程選擇移除)</font>
5. <font style="color:rgb(51, 51, 51);">是否進(jìn)制root用戶遠(yuǎn)程登錄,禁止輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不禁止直接回車(課程選擇不禁止)</font>
6. <font style="color:rgb(51, 51, 51);">是否移除自帶的測試數(shù)據(jù)庫,移除輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不移除直接回車(課程選擇不移除)</font>
7. <font style="color:rgb(51, 51, 51);">是否刷新權(quán)限,刷新輸入</font>`<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">y</font>`<font style="color:rgb(51, 51, 51);">回車,不刷新直接回車(課程選擇刷新)</font>
重新登陸MySQL(用更改后的密碼)
- mysql -uroot -p
至此,在Ubuntu上安裝MySQL5.7版本成功。
二 Tomcat安裝部署【簡單】
簡介
Tomcat 是由 Apache 開發(fā)的一個(gè) Servlet 容器,實(shí)現(xiàn)了對(duì) Servlet 和 JSP 的支持,并提供了作為Web服務(wù)器的一些特有功能,如Tomcat管理和控制平臺(tái)、安全域管理和Tomcat閥等。
簡單來說,Tomcat是一個(gè)WEB應(yīng)用程序的托管平臺(tái),可以讓用戶編寫的WEB應(yīng)用程序,被Tomcat所托管,并提供網(wǎng)站服務(wù)。
即讓用戶開發(fā)的WEB應(yīng)用程序,變成可以被訪問的網(wǎng)頁。
安裝
Tomcat的安裝非常簡單,主要分為2部分:
- 安裝JDK環(huán)境
- 解壓并安裝Tomcat
本次安裝使用Tomcat版本是:10.0.27版本,需要Java(JDK)版本最低為JDK8或更高版本
課程中使用的JDK版本是:JDK8u351版本
安裝JDK環(huán)境
- 下載JDK軟件
https://www.oracle.com/java/technologies/downloads
在頁面下方找到:
下載<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">jdk-8u351-linux-x64.tar.gz</font>
在彈出的頁面中輸入Oracle的賬戶密碼即可下載(如無賬戶,請(qǐng)自行注冊(cè),注冊(cè)是免費(fèi)的)
- 登陸Linux系統(tǒng),切換到root用戶
- 通過FinalShell,上傳下載好的JDK安裝包
創(chuàng)建文件夾,用來部署JDK,將JDK和Tomcat都安裝部署到:/export/server 內(nèi)
- mkdir -p /export/server
解壓縮JDK安裝文件
- tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
配置JDK的軟鏈接
- ln -s /export/server/jdk1.8.0_351 /export/server/jdk
- 配置JAVA_HOME環(huán)境變量,以及將$JAVA_HOME/bin文件夾加入PATH環(huán)境變量中
# 編輯/etc/profile文件
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
生效環(huán)境變量
- source /etc/profile
- 配置java執(zhí)行程序的軟鏈接
# 刪除系統(tǒng)自帶的java程序
rm -f /usr/bin/java
# 軟鏈接我們自己安裝的java程序
ln -s /export/server/jdk/bin/java /usr/bin/java
- 執(zhí)行驗(yàn)證:
java -version
javac -version
解壓并部署Tomcat
Tomcat建議使用非Root用戶安裝并啟動(dòng)
可以創(chuàng)建一個(gè)用戶:tomcat用以部署
- 首先,放行tomcat需要使用的8080端口的外部訪問權(quán)限
CentOS系統(tǒng)默認(rèn)開啟了防火墻,阻止外部網(wǎng)絡(luò)流量訪問系統(tǒng)內(nèi)部
所以,如果想要Tomcat可以正常使用,需要對(duì)Tomcat默認(rèn)使用的8080端口進(jìn)行放行
放行有2種操作方式:
1. <font style="color:rgb(119, 119, 119);">關(guān)閉防火墻</font>
2. <font style="color:rgb(119, 119, 119);">配置防火墻規(guī)則,放行端口</font>
# 以下操作2選一即可
# 方式1:關(guān)閉防火墻
systemctl stop firewalld # 關(guān)閉防火墻
systemctl disable firewalld # 停止防火墻開機(jī)自啟# 方式2:放行8080端口的外部訪問
firewall-cmd --add-port=8080/tcp --permanent # --add-port=8080/tcp表示放行8080端口的tcp訪問,--permanent表示永久生效
firewall-cmd --reload # 重新載入防火墻規(guī)則使其生效
方便起見,建議同學(xué)們選擇方式1,直接關(guān)閉防火墻一勞永逸
防火墻的配置非常復(fù)雜,后面會(huì)視情況獨(dú)立出一集防火墻配置規(guī)則的章節(jié)。
- 以root用戶操作,創(chuàng)建tomcat用戶
# 使用root用戶操作
useradd tomcat
# 可選,為tomcat用戶配置密碼
passwd tomcat
- 下載Tomcat安裝包
# 使用root用戶操作
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
# 如果出現(xiàn)https相關(guān)錯(cuò)誤,可以使用--no-check-certificate選項(xiàng)
wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
如果Linux內(nèi)下載過慢,可以復(fù)制下載鏈接在Windows系統(tǒng)中使用迅雷等軟件加速下載然后上傳到Linux內(nèi)即可
或者使用課程資料中提供的安裝包
- 解壓Tomcat安裝包
# 使用root用戶操作,否則無權(quán)限解壓到/export/server內(nèi),除非修改此文件夾權(quán)限
tar -zxvf apache-tomcat-10.0.27.tar.gz -C /export/server
- 創(chuàng)建Tomcat軟鏈接
# 使用root用戶操作
ln -s /export/server/apache-tomcat-10.0.27 /export/server/tomcat
- 修改tomcat安裝目錄權(quán)限
# 使用root用戶操作,同時(shí)對(duì)軟鏈接和tomcat安裝文件夾進(jìn)行修改,使用通配符*進(jìn)行匹配
chown -R tomcat:tomcat /export/server/*tomcat*
切換到tomcat用戶
- su - tomcat
啟動(dòng)tomcat
- /export/server/tomcat/bin/startup.sh
tomcat啟動(dòng)在8080端口,可以檢查是否正常啟動(dòng)成功
- netstat -anp | grep 8080
- 打開瀏覽器,輸入:
http://centos:8080或http://192.168.88.130:8080
使用主機(jī)名(需配置好本地的主機(jī)名映射)或IP地址訪問Tomcat的WEB頁面
至此,Tomcat安裝配置完成。
三 Nginx安裝部署【簡單】
簡介
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。
同Tomcat一樣,Nginx可以托管用戶編寫的WEB應(yīng)用程序成為可訪問的網(wǎng)頁服務(wù),同時(shí)也可以作為流量代理服務(wù)器,控制流量的中轉(zhuǎn)。
Nginx在WEB開發(fā)領(lǐng)域,基本上也是必備組件之一了。
安裝
Nginx同樣需要配置額外的yum倉庫,才可以使用yum安裝
安裝Nginx的操作需要root身份
- 安裝yum依賴程序
# root執(zhí)行
yum install -y yum-utils
- 手動(dòng)添加,nginx的yum倉庫
yum程序使用的倉庫配置文件,存放在:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">/etc/yum.repo.d</font>
內(nèi)。
# root執(zhí)行
# 創(chuàng)建文件使用vim編輯
vim /etc/yum.repos.d/nginx.repo
# 填入如下內(nèi)容并保存退出
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
通過如上操作,我們手動(dòng)添加了nginx的yum倉庫
- 通過yum安裝最新穩(wěn)定版的nginx
# root執(zhí)行
yum install -y nginx
- 啟動(dòng)
# nginx自動(dòng)注冊(cè)了systemctl系統(tǒng)服務(wù)
systemctl start nginx # 啟動(dòng)
systemctl stop nginx # 停止
systemctl status nginx # 運(yùn)行狀態(tài)
systemctl enable nginx # 開機(jī)自啟
systemctl disable nginx # 關(guān)閉開機(jī)自啟
- 配置防火墻放行
nginx默認(rèn)綁定80端口,需要關(guān)閉防火墻或放行80端口
# 方式1(推薦),關(guān)閉防火墻
systemctl stop firewalld # 關(guān)閉
systemctl disable firewalld # 關(guān)閉開機(jī)自啟# 方式2,放行80端口
firewall-cmd --add-port=80/tcp --permanent # 放行tcp規(guī)則下的80端口,永久生效
firewall-cmd --reload # 重新加載防火墻規(guī)則
- 啟動(dòng)后瀏覽器輸入Linux服務(wù)器的IP地址或主機(jī)名即可訪問
http://192.168.88.130 或 http://centos
ps:80端口是訪問網(wǎng)站的默認(rèn)端口,所以后面無需跟隨端口號(hào)
顯示的指定端口也是可以的比如:
- [<font style="color:rgb(119, 119, 119);">http://192.168.88.130:80</font>](http://192.168.88.130:80)
- [<font style="color:rgb(119, 119, 119);">http://centos:80</font>](http://centos:80)
至此,Nginx安裝配置完成。
四 RabbitMQ安裝部署【簡單】
簡介
RabbitMQ一款知名的開源消息隊(duì)列系統(tǒng),為企業(yè)提供消息的發(fā)布、訂閱、點(diǎn)對(duì)點(diǎn)傳輸?shù)认⒎?wù)。
RabbitMQ在企業(yè)開發(fā)中十分常見,課程為大家演示快速搭建RabbitMQ環(huán)境。
安裝
rabbitmq在yum倉庫中的版本比較老,所以我們需要手動(dòng)構(gòu)建yum倉庫
- 準(zhǔn)備yum倉庫
# root執(zhí)行
# 1. 準(zhǔn)備gpgkey密鑰
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey# 2. 準(zhǔn)備倉庫文件
vim /etc/yum.repos.d/rabbitmq.repo
# 填入如下內(nèi)容
##
## Zero dependency Erlang
##[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300##
## RabbitMQ server
##[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
- 安裝RabbitMQ
# root執(zhí)行
yum install erlang rabbitmq-server -y
Installed:erlang.x86_64 0:23.3.4.11-1.el7 rabbitmq-server.noarch 0:3.10.0-1.el7
- 啟動(dòng)
# root執(zhí)行
# 使用systemctl管控,服務(wù)名:rabbitmq-server
systemctl enable rabbitmq-server # 開機(jī)自啟
systemctl disable rabbitmq-server # 關(guān)閉開機(jī)自啟
systemctl start rabbitmq-server # 啟動(dòng)
systemctl stop rabbitmq-server # 關(guān)閉
systemctl status rabbitmq-server # 查看狀態(tài)
- 放行防火墻,RabbitMQ使用5672、15672、25672 3個(gè)端口
# 方式1(推薦),關(guān)閉防火墻
systemctl stop firewalld # 關(guān)閉
systemctl disable firewalld # 關(guān)閉開機(jī)自啟# 方式2,放行5672 25672端口
firewall-cmd --add-port=5672/tcp --permanent # 放行tcp規(guī)則下的5672端口,永久生效
firewall-cmd --add-port=15672/tcp --permanent # 放行tcp規(guī)則下的15672端口,永久生效
firewall-cmd --add-port=25672/tcp --permanent # 放行tcp規(guī)則下的25672端口,永久生效
firewall-cmd --reload # 重新加載防火墻規(guī)則
啟動(dòng)RabbitMQ的WEB管理控制臺(tái)
- rabbitmq-plugins enable rabbitmq_management
- 添加admin用戶,并賦予權(quán)限
rabbitmqctl add_user admin 'Itheima66^'
rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
- 瀏覽器打開管理控制臺(tái)
http://192.168.88.130:15672
至此,RabbitMQ已經(jīng)安裝完成了。
五 Redis安裝部署【簡單】
簡介
redis是一個(gè)開源的、使用C語言編寫的、支持網(wǎng)絡(luò)交互的、可基于內(nèi)存也可持久化的Key-Value數(shù)據(jù)庫。
redis的特點(diǎn)就是:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">快</font>
,可以基于內(nèi)存存儲(chǔ)數(shù)據(jù)并提供超低延遲、超快的檢索速度
一般用于在系統(tǒng)中提供快速緩存的能力。
安裝
- 配置
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">EPEL</font>
倉庫
EPEL 的全稱叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社區(qū)打造,為 RHEL 及衍生發(fā)行版如 CentOS、Scientific Linux 等提供高質(zhì)量軟件包的項(xiàng)目。裝上了 EPEL之后,就相當(dāng)于添加了一個(gè)第三方源。EPEL則為服務(wù)器版本提供大量的rpm包(yum程序所使用的程序安裝包,類似Windows的exe),而且大多數(shù)rpm包在官方 repository 中是找不到的。
# root執(zhí)行
yum install -y epel-release
- 安裝redis
# root執(zhí)行
yum install -y redis
- 啟動(dòng)redis
# root執(zhí)行
# 使用systemctl管控,服務(wù)名:redis
systemctl enable redis # 開機(jī)自啟
systemctl disable redis # 關(guān)閉開機(jī)自啟
systemctl start redis # 啟動(dòng)
systemctl stop redis # 關(guān)閉
systemctl status redis # 查看狀態(tài)
- 放行防火墻,redis使用端口6379
# 方式1(推薦),關(guān)閉防火墻
systemctl stop firewalld # 關(guān)閉
systemctl disable firewalld # 關(guān)閉開機(jī)自啟# 方式2,放行6379端口
firewall-cmd --add-port=6379/tcp --permanent # 放行tcp規(guī)則下的6379端口,永久生效
firewall-cmd --reload
- 進(jìn)入redis服務(wù)
# 執(zhí)行redis-cli
[root@centos ~]# redis-cli
127.0.0.1:6379> set mykey hello
OK
127.0.0.1:6379> get mykey
"hello"
127.0.0.1:6379>
至此,redis安裝完成。
六 ElasticSearch安裝部署
簡介
全文搜索屬于最常見的需求,開源的 Elasticsearch (以下簡稱 es)是目前全文搜索引擎的首選。
它可以快速地儲(chǔ)存、搜索和分析海量數(shù)據(jù)。維基百科、Stack Overflow、Github 都采用它。
Elasticsearch簡稱es,在企業(yè)內(nèi)同樣是一款應(yīng)用非常廣泛的搜索引擎服務(wù)。
很多服務(wù)中的搜索功能,都是基于es來實(shí)現(xiàn)的。
安裝
- 添加yum倉庫
# root執(zhí)行
# 導(dǎo)入倉庫密鑰
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch# 添加yum源
# 編輯文件
vim /etc/yum.repos.d/elasticsearch.repo[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md# 更新yum緩存
yum makecache
安裝es
- yum install -y elasticsearch
- 配置es
vim /etc/elasticsearch/elasticsearch.yml# 17行,設(shè)置集群名稱
cluster.name: my-cluster# 23行,設(shè)置節(jié)點(diǎn)名稱
node.name: node-1# 56行,允許外網(wǎng)訪問
network.host: 0.0.0.0# 74行,配置集群master節(jié)點(diǎn)
cluster.initial_master_nodes: ["node-1"]
啟動(dòng)es
- systemctl start | stop | status | enable | disable elasticsearch
- 關(guān)閉防火墻
systemctl stop firewalld
systemctl disable firewalld
- 測試
瀏覽器打開:http://ip:9200/?pretty
七 集群化環(huán)境前置準(zhǔn)備
介紹
在前面,我們所學(xué)習(xí)安裝的軟件,都是以單機(jī)模式運(yùn)行的。
后續(xù),我們將要學(xué)習(xí)大數(shù)據(jù)相關(guān)的軟件部署,所以后續(xù)我們所安裝的軟件服務(wù),大多數(shù)都是以集群化(多臺(tái)服務(wù)器共同工作)模式運(yùn)行的。
所以,在當(dāng)前小節(jié),我們需要完成集群化環(huán)境的前置準(zhǔn)備,包括創(chuàng)建多臺(tái)虛擬機(jī),配置主機(jī)名映射,SSH免密登錄等等。
部署
配置多臺(tái)Linux虛擬機(jī)
安裝集群化軟件,首要條件就是要有多臺(tái)Linux服務(wù)器可用。
我們可以使用VMware提供的克隆功能,將我們的虛擬機(jī)額外克隆出3臺(tái)來使用。
- 首先,關(guān)機(jī)當(dāng)前CentOS系統(tǒng)虛擬機(jī)(可以使用root用戶執(zhí)行
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">init 0</font>
來快速關(guān)機(jī)) - 新建文件夾
文件夾起名為:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">虛擬機(jī)集群</font>
- 克隆
- 同樣的操作克隆出:node2和node3
- 開啟node1,修改主機(jī)名為node1,并修改固定ip為:192.168.88.131
# 修改主機(jī)名
hostnamectl set-hostname node1# 修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR="192.168.88.131"# 重啟網(wǎng)卡
systemctl stop network
systemctl start network
# 或者直接
systemctl restart network
- 同樣的操作啟動(dòng)node2和node3,
修改node2主機(jī)名為node2,設(shè)置ip為192.168.88.132
修改node2主機(jī)名為node3,設(shè)置ip為192.168.88.133
- 配置FinalShell,配置連接到node1、node2、node3的連接
為了簡單起見,建議配置root用戶登錄
準(zhǔn)備主機(jī)名映射
- 在Windows系統(tǒng)中修改hosts文件,填入如下內(nèi)容:
如果同學(xué)們使用MacOS系統(tǒng),請(qǐng):
1. <font style="color:rgb(119, 119, 119);">sudo su -,切換到root</font>
2. <font style="color:rgb(119, 119, 119);">修改/etc/hosts文件</font>
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3
- 在3臺(tái)Linux的/etc/hosts文件中,填入如下內(nèi)容(3臺(tái)都要添加)
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3
配置SSH免密登錄
簡介
SSH服務(wù)是一種用于遠(yuǎn)程登錄的安全認(rèn)證協(xié)議。
我們通過FinalShell遠(yuǎn)程連接到Linux,就是使用的SSH服務(wù)。
SSH服務(wù)支持:
- 通過賬戶+密碼的認(rèn)證方式來做用戶認(rèn)證
- 通過賬戶+秘鑰文件的方式做用戶認(rèn)證
SSH可以讓我們通過SSH命令,遠(yuǎn)程的登陸到其它的主機(jī)上,比如:
在node1執(zhí)行:ssh root@node2,將以root用戶登錄node2服務(wù)器,輸入密碼即可成功登陸
或者ssh node2,將以當(dāng)前用戶直接登陸到node2服務(wù)器。
SSH免密配置
后續(xù)安裝的集群化軟件,多數(shù)需要遠(yuǎn)程登錄以及遠(yuǎn)程執(zhí)行命令,我們可以簡單起見,配置三臺(tái)Linux服務(wù)器之間的免密碼互相SSH登陸
- 在每一臺(tái)機(jī)器都執(zhí)行:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">ssh-keygen -t rsa -b 4096</font>
,一路回車到底即可 - 在每一臺(tái)機(jī)器都執(zhí)行:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
- 執(zhí)行完畢后,node1、node2、node3之間將完成root用戶之間的免密互通
配置JDK環(huán)境
后續(xù)的大數(shù)據(jù)集群軟件,多數(shù)是需要Java運(yùn)行環(huán)境的,所以我們?yōu)?mark>每一臺(tái)機(jī)器都配置JDK環(huán)境。
JDK配置參閱:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Tomcat</font>
安裝部署環(huán)節(jié)。
關(guān)閉防火墻和SELinux
集群化軟件之間需要通過端口互相通訊,為了避免出現(xiàn)網(wǎng)絡(luò)不通的問題,我們可以簡單的在集群內(nèi)部關(guān)閉防火墻。
在每一臺(tái)機(jī)器都執(zhí)行
systemctl stop firewalld
systemctl disable firewalld
Linux有一個(gè)安全模塊:SELinux,用以限制用戶和程序的相關(guān)權(quán)限,來確保系統(tǒng)的安全穩(wěn)定。
SELinux的配置同防火墻一樣,非常復(fù)雜,課程中不多涉及,后續(xù)視情況可以出一章SELinux的配置課程。
在當(dāng)前,我們只需要關(guān)閉SELinux功能,避免導(dǎo)致后面的軟件運(yùn)行出現(xiàn)問題即可,
在每一臺(tái)機(jī)器都執(zhí)行
vim /etc/sysconfig/selinux# 將第七行,SELINUX=enforcing 改為
SELINUX=disabled
# 保存退出后,重啟虛擬機(jī)即可,千萬要注意disabled單詞不要寫錯(cuò),不然無法啟動(dòng)系統(tǒng)
添加快照
為了避免后續(xù)出現(xiàn)問題,在完成上述設(shè)置后,為每一臺(tái)虛擬機(jī)都制作快照,留待使用。
補(bǔ)充命令 - scp
后續(xù)的安裝部署操作,我們將會(huì)頻繁的在多臺(tái)服務(wù)器之間相互傳輸數(shù)據(jù)。
為了更加方面的互相傳輸,我們補(bǔ)充一個(gè)命令:scp
scp命令是cp命令的升級(jí)版,即:ssh cp,通過SSH協(xié)議完成文件的復(fù)制。
其主要的功能就是:在不同的Linux服務(wù)器之間,通過<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">SSH</font>
協(xié)議互相傳輸文件。
只要知曉服務(wù)器的賬戶和密碼(或密鑰),即可通過SCP互傳文件。
語法:
scp [-r] 參數(shù)1 參數(shù)2
- -r選項(xiàng)用于復(fù)制文件夾使用,如果復(fù)制文件夾,必須使用-r
- 參數(shù)1:本機(jī)路徑 或 遠(yuǎn)程目標(biāo)路徑
- 參數(shù)2:遠(yuǎn)程目標(biāo)路徑 或 本機(jī)路徑如:
scp -r /export/server/jdk root@node2:/export/server/
將本機(jī)上的jdk文件夾, 以root的身份復(fù)制到node2的/export/server/內(nèi)
同SSH登陸一樣,賬戶名可以省略(使用本機(jī)當(dāng)前的同名賬戶登陸)如:
scp -r node2:/export/server/jdk /export/server/
將遠(yuǎn)程node2的jdk文件夾,復(fù)制到本機(jī)的/export/server/內(nèi)# scp命令的高級(jí)用法
cd /export/server
scp -r jdk node2:`pwd`/ # 將本機(jī)當(dāng)前路徑的jdk文件夾,復(fù)制到node2服務(wù)器的同名路徑下
scp -r jdk node2:$PWD # 將本機(jī)當(dāng)前路徑的jdk文件夾,復(fù)制到node2服務(wù)器的同名路徑下
八 Zookeeper集群安裝部署
簡介
ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。
除了為Hadoop和HBase提供協(xié)調(diào)服務(wù)外,Zookeeper也被其它許多軟件采用作為其分布式狀態(tài)一致性的依賴,比如Kafka,又或者一些軟件項(xiàng)目中,也經(jīng)常能見到Zookeeper作為一致性協(xié)調(diào)服務(wù)存在。
Zookeeper不論是大數(shù)據(jù)領(lǐng)域亦或是其它服務(wù)器開發(fā)領(lǐng)域,涉及到分布式狀態(tài)一致性的場景,總有它的身影存在。
安裝
Zookeeper是一款分布式的集群化軟件,可以在多臺(tái)服務(wù)器上部署,并協(xié)同組成分布式集群一起工作。
- 首先,要確保已經(jīng)完成了
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">集群化環(huán)境前置準(zhǔn)備</font>
環(huán)節(jié)的全部內(nèi)容 - 【node1上操作】下載Zookeeper安裝包,并解壓
# 下載
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz# 確保如下目錄存在,不存在就創(chuàng)建
mkdir -p /export/server# 解壓
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server
【node1上操作】創(chuàng)建軟鏈接
- ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper
- 【node1上操作】修改配置文件
vim /export/server/zookeeper/conf/zoo.cfgtickTime=2000
# zookeeper數(shù)據(jù)存儲(chǔ)目錄
dataDir=/export/server/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
- 【node1上操作】配置
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">myid</font>
# 1. 創(chuàng)建Zookeeper的數(shù)據(jù)目錄
mkdir /export/server/zookeeper/data# 2. 創(chuàng)建文件,并填入1
vim /export/server/zookeeper/data/myid
# 在文件內(nèi)填入1即可
【在node2和node3上操作】,創(chuàng)建文件夾
- mkdir -p /export/server
- 【node1上操作】將Zookeeper 復(fù)制到node2和node3
cd /export/serverscp -r apache-zookeeper-3.5.9 node2:`pwd`/
scp -r apache-zookeeper-3.5.9 node3:`pwd`/
- 【在node2上操作】
# 1. 創(chuàng)建軟鏈接
ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改內(nèi)容為2
- 【在node3上操作】
# 1. 創(chuàng)建軟鏈接
ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改內(nèi)容為3
- 【在node1、node2、node3上分別執(zhí)行】啟動(dòng)Zookeeper
# 啟動(dòng)命令
/export/server/zookeeper/bin/zkServer.sh start # 啟動(dòng)Zookeeper
- 【在node1、node2、node3上分別執(zhí)行】檢查Zookeeper進(jìn)程是否啟動(dòng)
jps# 結(jié)果中找到有:QuorumPeerMain 進(jìn)程即可
- 【node1上操作】驗(yàn)證Zookeeper
/export/server/zookeeper/zkCli.sh# 進(jìn)入到Zookeeper控制臺(tái)中后,執(zhí)行
ls /# 如無報(bào)錯(cuò)即配置成功
至此Zookeeper安裝完成
九 Kafka集群安裝部署
簡介
Kafka是一款<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">分布式的、去中心化的、高吞吐低延遲、訂閱模式</font>
的消息隊(duì)列系統(tǒng)。
同RabbitMQ一樣,Kafka也是消息隊(duì)列。不過RabbitMQ多用于后端系統(tǒng),因其更加專注于消息的延遲和容錯(cuò)。
Kafka多用于大數(shù)據(jù)體系,因其更加專注于數(shù)據(jù)的吞吐能力。
Kafka多數(shù)都是運(yùn)行在分布式(集群化)模式下,所以課程將以3臺(tái)服務(wù)器,來完成Kafka集群的安裝部署。
安裝
- 確保已經(jīng)跟隨前面的視頻,安裝并部署了JDK和Zookeeper服務(wù)
Kafka的運(yùn)行依賴JDK環(huán)境和Zookeeper請(qǐng)確保已經(jīng)有了JDK環(huán)境和Zookeeper
- 【在node1操作】下載并上傳Kafka的安裝包
# 下載安裝包
wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz
- 【在node1操作】解壓
mkdir -p /export/server # 此文件夾如果不存在需先創(chuàng)建# 解壓
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/# 創(chuàng)建軟鏈接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
- 【在node1操作】修改Kafka目錄內(nèi)的config目錄內(nèi)的
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">server.properties</font>
文件
cd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=1
# 指定 kafka的綁定監(jiān)聽的地址
listeners=PLAINTEXT://node1:9092
# 指定Kafka數(shù)據(jù)的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三個(gè)節(jié)點(diǎn)
zookeeper.connect=node1:2181,node2:2181,node3:2181
- 【在node1操作】將node1的kafka復(fù)制到node2和node3
cd /export/server# 復(fù)制到node2同名文件夾
scp -r kafka_2.12-2.4.1 node2:`pwd`/
# 復(fù)制到node3同名文件夾
scp -r kafka_2.12-2.4.1 node3:$PWD
- 【在node2操作】
# 創(chuàng)建軟鏈接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafkacd /export/server/kafka/config
# 指定broker的id
broker.id=2
# 指定 kafka的綁定監(jiān)聽的地址
listeners=PLAINTEXT://node2:9092
# 指定Kafka數(shù)據(jù)的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三個(gè)節(jié)點(diǎn)
zookeeper.connect=node1:2181,node2:2181,node3:2181
- 【在node3操作】
# 創(chuàng)建軟鏈接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafkacd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=3
# 指定 kafka的綁定監(jiān)聽的地址
listeners=PLAINTEXT://node3:9092
# 指定Kafka數(shù)據(jù)的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三個(gè)節(jié)點(diǎn)
zookeeper.connect=node1:2181,node2:2181,node3:2181
- 啟動(dòng)kafka
# 請(qǐng)先確保Zookeeper已經(jīng)啟動(dòng)了# 方式1:【前臺(tái)啟動(dòng)】分別在node1、2、3上執(zhí)行如下語句
/export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties# 方式2:【后臺(tái)啟動(dòng)】(長期穩(wěn)定執(zhí)行)分別在node1、2、3上執(zhí)行如下語句
nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1 >> /export/server/kafka/kafka-server.log &
- 驗(yàn)證Kafka啟動(dòng)
# 在每一臺(tái)服務(wù)器執(zhí)行
jps
測試Kafka能否正常使用
- 創(chuàng)建測試主題
# 在node1執(zhí)行,創(chuàng)建一個(gè)主題
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 3 --topic test
- 運(yùn)行測試,請(qǐng)?jiān)贔inalShell中打開2個(gè)node1的終端頁面
# 打開一個(gè)終端頁面,啟動(dòng)一個(gè)模擬的數(shù)據(jù)生產(chǎn)者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topic test
# 再打開一個(gè)新的終端頁面,在啟動(dòng)一個(gè)模擬的數(shù)據(jù)消費(fèi)者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning
十 大數(shù)據(jù)集群(Hadoop生態(tài))安裝部署
簡介
1)Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。2)主要解決,海量數(shù)據(jù)的存儲(chǔ)和海量數(shù)據(jù)的分析計(jì)算問題。
Hadoop HDFS 提供分布式海量數(shù)據(jù)存儲(chǔ)能力
Hadoop YARN 提供分布式集群資源管理能力
Hadoop MapReduce 提供分布式海量數(shù)據(jù)計(jì)算能力
前置要求
- 請(qǐng)確保完成了集群化環(huán)境前置準(zhǔn)備章節(jié)的內(nèi)容
- 即:JDK、SSH免密、關(guān)閉防火墻、配置主機(jī)名映射等前置操作
Hadoop集群角色
Hadoop生態(tài)體系中總共會(huì)出現(xiàn)如下進(jìn)程角色:
- Hadoop HDFS的管理角色:Namenode進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">僅需1個(gè)即可(管理者一個(gè)就夠)</font>
) - Hadoop HDFS的工作角色:Datanode進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">需要多個(gè)(工人,越多越好,一個(gè)機(jī)器啟動(dòng)一個(gè))</font>
) - Hadoop YARN的管理角色:ResourceManager進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">僅需1個(gè)即可(管理者一個(gè)就夠)</font>
) - Hadoop YARN的工作角色:NodeManager進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">需要多個(gè)(工人,越多越好,一個(gè)機(jī)器啟動(dòng)一個(gè))</font>
) - Hadoop 歷史記錄服務(wù)器角色:HistoryServer進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">僅需1個(gè)即可(功能進(jìn)程無需太多1個(gè)足夠)</font>
) - Hadoop 代理服務(wù)器角色:WebProxyServer進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">僅需1個(gè)即可(功能進(jìn)程無需太多1個(gè)足夠)</font>
) - Zookeeper的進(jìn)程:QuorumPeerMain進(jìn)程(
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">僅需1個(gè)即可(Zookeeper的工作者,越多越好)</font>
)
角色和節(jié)點(diǎn)分配
角色分配如下:
- node1:Namenode、Datanode、ResourceManager、NodeManager、HistoryServer、WebProxyServer、QuorumPeerMain
- node2:Datanode、NodeManager、QuorumPeerMain
- node3:Datanode、NodeManager、QuorumPeerMain
安裝
調(diào)整虛擬機(jī)內(nèi)存
如上圖,可以看出node1承載了太多的壓力。同時(shí)node2和node3也同時(shí)運(yùn)行了不少程序
為了確保集群的穩(wěn)定,需要對(duì)虛擬機(jī)進(jìn)行內(nèi)存設(shè)置。
請(qǐng)?jiān)赩Mware中,對(duì):
- node1設(shè)置4GB或以上內(nèi)存
- node2和node3設(shè)置2GB或以上內(nèi)存
大數(shù)據(jù)的軟件本身就是集群化(一堆服務(wù)器)一起運(yùn)行的。
現(xiàn)在我們?cè)谝慌_(tái)電腦中以多臺(tái)虛擬機(jī)來模擬集群,確實(shí)會(huì)有很大的內(nèi)存壓力哦。
Zookeeper集群部署
略
Hadoop集群部署
- 下載Hadoop安裝包、解壓、配置軟鏈接
# 1. 下載
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz# 2. 解壓
# 請(qǐng)確保目錄/export/server存在
tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/# 3. 構(gòu)建軟鏈接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
- 修改配置文件:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">hadoop-env.sh</font>
Hadoop的配置文件要修改的地方很多,請(qǐng)細(xì)心
cd 進(jìn)入到/export/server/hadoop/etc/hadoop,文件夾中,配置文件都在這里
修改hadoop-env.sh文件
此文件是配置一些Hadoop用到的環(huán)境變量
這些是臨時(shí)變量,在Hadoop運(yùn)行時(shí)有用
如果要永久生效,需要寫到/etc/profile中
# 在文件開頭加入:
# 配置Java安裝路徑
export JAVA_HOME=/export/server/jdk
# 配置Hadoop安裝路徑
export HADOOP_HOME=/export/server/hadoop
# Hadoop hdfs配置文件路徑
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN配置文件路徑
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN 日志文件夾c
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
# Hadoop hdfs 日志文件夾
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs# Hadoop的使用啟動(dòng)用戶配置
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export YARN_PROXYSERVER_USER=root
- 修改配置文件:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">core-site.xml</font>
如下,清空文件,填入如下內(nèi)容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. -->
<configuration><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value><description></description></property><property><name>io.file.buffer.size</name><value>131072</value><description></description></property>
</configuration>
- 配置:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">hdfs-site.xml</font>
文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value><description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value><description>List of permitted DataNodes.</description></property><property><name>dfs.blocksize</name><value>268435456</value><description></description></property><property><name>dfs.namenode.handler.count</name><value>100</value><description></description></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
</configuration>
- 配置:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">mapred-env.sh</font>
文件
# 在文件的開頭加入如下環(huán)境變量設(shè)置
export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
- 配置:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">mapred-site.xml</font>
文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description></description></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value><description></description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value><description></description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description></description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description></description></property>
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>
- 配置:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">yarn-env.sh</font>
文件
# 在文件的開頭加入如下環(huán)境變量設(shè)置
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
- 配置:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">yarn-site.xml</font>
文件
<?xml version="1.0"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
-->
<configuration><!-- Site specific YARN configuration properties -->
<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value><description></description>
</property><property><name>yarn.web-proxy.address</name><value>node1:8089</value><description>proxy server hostname and port</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>Configuration to enable or disable log aggregation</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><description>Configuration to enable or disable log aggregation</description></property><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description></description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description></description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>Comma-separated list of paths on the local filesystem where logs are written.</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be set for Map Reduce applications.</description></property>
</configuration>
- 修改
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">workers</font>
文件
# 全部內(nèi)容如下
node1
node2
node3
- 分發(fā)hadoop到其它機(jī)器
# 在node1執(zhí)行
cd /export/serverscp -r hadoop-3.3.0 node2:`pwd`/
scp -r hadoop-3.3.0 node3:`pwd`/
- 在node2、node3執(zhí)行
# 創(chuàng)建軟鏈接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
- 創(chuàng)建所需目錄
在<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">/export/server</font>
目錄下創(chuàng)建
- <font style="color:rgb(51, 51, 51);">在node1執(zhí)行:</font>
mkdir -p /data/nn
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local
- <font style="color:rgb(51, 51, 51);">在node2執(zhí)行:</font>
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local
- <font style="color:rgb(51, 51, 51);">在node3執(zhí)行:</font>
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local
- 配置環(huán)境變量
在node1、node2、node3修改/etc/profile
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
執(zhí)行<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">source /etc/profile</font>
生效
格式化NameNode,在node1執(zhí)行
- hadoop namenode -format
hadoop這個(gè)命令來自于:$HADOOP_HOME/bin中的程序
由于配置了環(huán)境變量PATH,所以可以在任意位置執(zhí)行hadoop命令哦
- 啟動(dòng)hadoop的hdfs集群,在node1執(zhí)行即可
start-dfs.sh# 如需停止可以執(zhí)行
stop-dfs.sh
start-dfs.sh這個(gè)命令來自于:$HADOOP_HOME/sbin中的程序
由于配置了環(huán)境變量PATH,所以可以在任意位置執(zhí)行start-dfs.sh命令哦
- 啟動(dòng)hadoop的yarn集群,在node1執(zhí)行即可
start-yarn.sh# 如需停止可以執(zhí)行
stop-yarn.sh
- 啟動(dòng)歷史服務(wù)器
mapred --daemon start historyserver# 如需停止將start更換為stop
驗(yàn)證:在瀏覽器打開<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">192.168.200.132:9870</font>
,<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">192.168.200.132:8080</font>
- 啟動(dòng)web代理服務(wù)器
yarn-daemon.sh start proxyserver# 如需停止將start更換為stop
驗(yàn)證Hadoop集群運(yùn)行情況
- 在node1、node2、node3上通過jps驗(yàn)證進(jìn)程是否都啟動(dòng)成功
- 驗(yàn)證HDFS,瀏覽器打開:http://node1:9870
創(chuàng)建文件test.txt,隨意填入內(nèi)容,并執(zhí)行:
hadoop fs -put test.txt /test.txt
# /test.txt 這個(gè)/是指hadoop的根目錄hadoop fs -cat /test.txt
- 驗(yàn)證YARN,瀏覽器打開:http://node1:8088
執(zhí)行:
# 創(chuàng)建文件words.txt,填入如下內(nèi)容
itheima itcast hadoop
itheima hadoop hadoop
itheima itcast# 將文件上傳到HDFS中
hadoop fs -put words.txt /words.txt# 執(zhí)行如下命令驗(yàn)證YARN是否正常
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output
十一 大數(shù)據(jù)NoSQL數(shù)據(jù)庫HBase集群部署
簡介
HBase 是一種分布式、可擴(kuò)展、支持海量數(shù)據(jù)存儲(chǔ)的 NoSQL 數(shù)據(jù)庫。
和Redis一樣,HBase是一款KeyValue型存儲(chǔ)的數(shù)據(jù)庫。
不過和Redis設(shè)計(jì)方向不同
- Redis設(shè)計(jì)為少量數(shù)據(jù),超快檢索
- HBase設(shè)計(jì)為海量數(shù)據(jù),快速檢索
HBase在大數(shù)據(jù)領(lǐng)域應(yīng)用十分廣泛,現(xiàn)在我們來在node1、node2、node3上部署HBase集群。
安裝
- HBase依賴Zookeeper、JDK、Hadoop(HDFS),請(qǐng)確保已經(jīng)完成前面
- 集群化軟件前置準(zhǔn)備(JDK)
- Zookeeper
- Hadoop
- 這些環(huán)節(jié)的軟件安裝
- 【node1執(zhí)行】下載HBase安裝包
# 下載
wget http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz# 解壓
tar -zxvf hbase-2.1.0-bin.tar.gz -C /export/server# 配置軟鏈接
ln -s /export/server/hbase-2.1.0 /export/server/hbase
- 【node1執(zhí)行】,修改配置文件,修改
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">conf/hbase-env.sh</font>
文件
# 在28行配置JAVA_HOME
export JAVA_HOME=/export/server/jdk
# 在126行配置:
# 意思表示,不使用HBase自帶的Zookeeper,而是用獨(dú)立Zookeeper
export HBASE_MANAGES_ZK=false
# 在任意行,比如26行,添加如下內(nèi)容:
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
- 【node1執(zhí)行】,修改配置文件,修改
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">conf/hbase-site.xml</font>
文件
# 將文件的全部內(nèi)容替換成如下內(nèi)容:
<configuration><!-- HBase數(shù)據(jù)在HDFS中的存放的路徑 --><property><name>hbase.rootdir</name><value>hdfs://node1:8020/hbase</value></property><!-- Hbase的運(yùn)行模式。false是單機(jī)模式,true是分布式模式。若為false,Hbase和Zookeeper會(huì)運(yùn)行在同一個(gè)JVM里面 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- ZooKeeper的地址 --><property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value></property><!-- ZooKeeper快照的存儲(chǔ)位置 --><property><name>hbase.zookeeper.property.dataDir</name><value>/export/server/apache-zookeeper-3.6.0-bin/data</value></property><!-- V2.1版本,在分布式情況下, 設(shè)置為false --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>
- 【node1執(zhí)行】,修改配置文件,修改
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">conf/regionservers</font>
文件
# 填入如下內(nèi)容
node1
node2
node3
- 【node1執(zhí)行】,分發(fā)hbase到其它機(jī)器
scp -r /export/server/hbase-2.1.0 node2:/export/server/
scp -r /export/server/hbase-2.1.0 node3:/export/server/
【在node2、node3執(zhí)行】,配置軟鏈接
- ln -s /export/server/hbase-2.1.0 /export/server/hbase
- 【node1、node2、node3執(zhí)行】,配置環(huán)境變量
# 配置在/etc/profile內(nèi),追加如下兩行
export HBASE_HOME=/export/server/hbase
export PATH=$HBASE_HOME/bin:$PATHsource /etc/profile
- 【node1執(zhí)行】啟動(dòng)HBase
請(qǐng)確保:Hadoop HDFS、Zookeeper是已經(jīng)啟動(dòng)了的
start-hbase.sh# 如需停止可使用
stop-hbase.sh
由于我們配置了環(huán)境變量export PATH= P A T H : PATH: PATH:HBASE_HOME/bin
start-hbase.sh即在$HBASE_HOME/bin內(nèi),所以可以無論當(dāng)前目錄在哪,均可直接執(zhí)行
- 驗(yàn)證HBase
瀏覽器打開:http://node1:16010,即可看到HBase的WEB UI頁面
- 簡單測試使用HBase
【node1執(zhí)行】
hbase shell# 創(chuàng)建表
create 'test', 'cf'# 插入數(shù)據(jù)
put 'test', 'rk001', 'cf:info', 'itheima'# 查詢數(shù)據(jù)
get 'test', 'rk001'# 掃描表數(shù)據(jù)
scan 'test'
十二 分布式內(nèi)存計(jì)算Spark環(huán)境部署
注意
本小節(jié)的操作,基于:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">大數(shù)據(jù)集群(Hadoop生態(tài))安裝部署</font>
環(huán)節(jié)中所構(gòu)建的Hadoop集群
如果沒有Hadoop集群,請(qǐng)參閱前置內(nèi)容,部署好環(huán)境。
簡介
Spark是一款分布式內(nèi)存計(jì)算引擎,可以支撐海量數(shù)據(jù)的分布式計(jì)算。
Spark在大數(shù)據(jù)體系是明星產(chǎn)品,作為最新一代的綜合計(jì)算引擎,支持離線計(jì)算和實(shí)時(shí)計(jì)算。
在大數(shù)據(jù)領(lǐng)域廣泛應(yīng)用,是目前世界上使用最多的大數(shù)據(jù)分布式計(jì)算引擎。
我們將基于前面構(gòu)建的Hadoop集群,部署Spark Standalone集群。
安裝
- 【node1執(zhí)行】下載并解壓
wget https://archive.apache.org/dist/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz# 解壓
tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /export/server/# 軟鏈接
ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
- 【node1執(zhí)行】修改配置文件名稱
# 改名
cd /export/server/spark/conf
mv spark-env.sh.template spark-env.sh
mv slaves.template slaves
- 【node1執(zhí)行】修改配置文件,
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">spark-env.sh</font>
## 設(shè)置JAVA安裝目錄
JAVA_HOME=/export/server/jdk## HADOOP軟件配置文件目錄,讀取HDFS上文件和運(yùn)行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop## 指定spark老大Master的IP和提交任務(wù)的通信端口
export SPARK_MASTER_HOST=node1
export SPARK_MASTER_PORT=7077SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
- 【node1執(zhí)行】修改配置文件,
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">slaves</font>
node1
node2
node3
- 【node1執(zhí)行】在
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">/export/server</font>
分發(fā)
scp -r spark-2.4.5-bin-hadoop2.7 node2:$PWD
scp -r spark-2.4.5-bin-hadoop2.7 node3:$PWD
【node2、node3執(zhí)行】設(shè)置軟鏈接
- ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
- 【node1執(zhí)行】啟動(dòng)Spark集群
/export/server/spark/sbin/start-all.sh# 如需停止,可以
/export/server/spark/sbin/stop-all.sh
- 打開Spark監(jiān)控頁面,瀏覽器打開:http://node1:8081
- 【node1執(zhí)行】提交測試任務(wù)
/export/server/spark/bin/spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi /export/server/spark/examples/jars/spark-examples_2.11-2.4.5.jar
十三 分布式內(nèi)存計(jì)算Flink環(huán)境部署
注意
本小節(jié)的操作,基于:<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">大數(shù)據(jù)集群(Hadoop生態(tài))安裝部署</font>
環(huán)節(jié)中所構(gòu)建的Hadoop集群
如果沒有Hadoop集群,請(qǐng)參閱前置內(nèi)容,部署好環(huán)境。
簡介
Flink同Spark一樣,是一款分布式內(nèi)存計(jì)算引擎,可以支撐海量數(shù)據(jù)的分布式計(jì)算。
Flink在大數(shù)據(jù)體系同樣是明星產(chǎn)品,作為最新一代的綜合計(jì)算引擎,支持離線計(jì)算和實(shí)時(shí)計(jì)算。
在大數(shù)據(jù)領(lǐng)域廣泛應(yīng)用,是目前世界上除去Spark以外,應(yīng)用最為廣泛的分布式計(jì)算引擎。
我們將基于前面構(gòu)建的Hadoop集群,部署Flink Standalone集群
Spark更加偏向于離線計(jì)算而Flink更加偏向于實(shí)時(shí)計(jì)算。
安裝
- 【node1操作】下載安裝包
wget https://archive.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz# 解壓
tar -zxvf flink-1.10.0-bin-scala_2.11.tgz -C /export/server/# 軟鏈接
ln -s /export/server/flink-1.10.0 /export/server/flink
- 【node1操作】修改配置文件,
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">conf/flink-conf.yaml</font>
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口號(hào)
jobmanager.rpc.port: 6123
# JobManager JVM heap 內(nèi)存大小
jobmanager.heap.size: 1024m
# TaskManager JVM heap 內(nèi)存大小
taskmanager.heap.size: 1024m
# 每個(gè) TaskManager 提供的任務(wù) slots 數(shù)量大小
taskmanager.numberOfTaskSlots: 2
#是否進(jìn)行預(yù)分配內(nèi)存,默認(rèn)不進(jìn)行預(yù)分配,這樣在我們不使用flink集群時(shí)候不會(huì)占用集群資源
taskmanager.memory.preallocate: false
# 程序默認(rèn)并行計(jì)算的個(gè)數(shù)
parallelism.default: 1
#JobManager的Web界面的端口(默認(rèn):8081)
jobmanager.web.port: 8081
- 【node1操作】,修改配置文件,
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">conf/slaves</font>
node1
node2
node3
- 【node1操作】分發(fā)Flink安裝包到其它機(jī)器
cd /export/server
scp -r flink-1.10.0 node2:`pwd`/
scp -r flink-1.10.0 node3:`pwd`/
- 【node2、node3操作】
# 配置軟鏈接
ln -s /export/server/flink-1.10.0 /export/server/flink
【node1操作】,啟動(dòng)Flink
- /export/server/flink/bin/start-cluster.sh
- 驗(yàn)證Flink啟動(dòng)
# 瀏覽器打開
http://node1:8081
- 提交測試任務(wù)
【node1執(zhí)行】計(jì)數(shù)單詞
/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar
十四 運(yùn)維監(jiān)控Zabbix部署
簡介
Zabbix 由 Alexei Vladishev 創(chuàng)建,目前由其成立的公司—— Zabbix SIA 積極的持續(xù)開發(fā)更新維護(hù), 并為用戶提供技術(shù)支持服務(wù)。
Zabbix 是一個(gè)企業(yè)級(jí)分布式開源監(jiān)控解決方案。
Zabbix 軟件能夠監(jiān)控眾多網(wǎng)絡(luò)參數(shù)和服務(wù)器的健康度、完整性。Zabbix 使用靈活的告警機(jī)制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣用戶可以快速響應(yīng)服務(wù)器問題。Zabbix 基于存儲(chǔ)的數(shù)據(jù)提供出色的報(bào)表和數(shù)據(jù)可視化功能。這些功能使得 Zabbix 成為容量規(guī)劃的理想選擇。
安裝
安裝整體步驟:
- 準(zhǔn)備Linux 服務(wù)器(虛擬機(jī))
- 安裝Mysql
- 安裝zabbix( 包含 server agent web)
- 配置 mysql, 為zabbix創(chuàng)建表結(jié)構(gòu)
- 配置zabbix server
- 啟動(dòng)并開啟開機(jī)自啟動(dòng)
安裝前準(zhǔn)備 - Mysql
安裝ZabbixServer需要先安裝好<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Mysql</font>
數(shù)據(jù)庫
課程使用<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Mysql 5.7</font>
安裝步驟:
# 安裝Mysql yum庫
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm# yum安裝Mysql
yum -y install mysql-community-server# 啟動(dòng)Mysql設(shè)置開機(jī)啟動(dòng)
systemctl start mysqld
systemctl enable mysqld# 檢查Mysql服務(wù)狀態(tài)
systemctl status mysqld# 第一次啟動(dòng)mysql,會(huì)在日志文件中生成root用戶的一個(gè)隨機(jī)密碼,使用下面命令查看該密碼
grep 'temporary password' /var/log/mysqld.log# 修改root用戶密碼
mysql -u root -p -h localhost
Enter password:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root!@#$';# 如果你想設(shè)置簡單密碼,需要降低Mysql的密碼安全級(jí)別
set global validate_password_policy=LOW; # 密碼安全級(jí)別低
set global validate_password_length=4; # 密碼長度最低4位即可# 然后就可以用簡單密碼了(課程中使用簡單密碼,為了方便,生產(chǎn)中不要這樣)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
mysql> grant all privileges on *.* to root@'%' identified by 'root';
安裝Zabbix Server 和 Zabbix Agent
初始安裝,我們先安裝ZabbixServer以及在Server本機(jī)安裝Agent。
打開官網(wǎng)下載頁面:https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&db=mysql
選擇對(duì)應(yīng)的版本,然后再下面官網(wǎng)給出了具體的安裝命令,使用<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">rpm</font>
和<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">yum</font>
來進(jìn)行安裝。
需要有網(wǎng)絡(luò)。
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">以下內(nèi)容來自官方頁面</font>
a. 安裝Zabbix yum庫
documentation
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
b. 安裝Zabbix Server、前端、Agent
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
# 如果只需要安裝Agent的話
yum -y install zabbix-agent
c. 初始化Mysql數(shù)據(jù)庫
documentation
在Mysql中操作
zabbix用戶密碼是Zabbix1234!
# 登錄Mysql 數(shù)據(jù)庫
mysql -uroot -pYourPassword
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix1234!';
# 或者: grant all privileges on zabbix.* to zabbix@'%' identified by 'Zabbix1234!';
mysql> quit;
測試在Zabbix Server服務(wù)器上能否遠(yuǎn)程登錄Mysql,如果可以登錄繼續(xù)向下走。
Import initial schema and data. You will be prompted to enter your newly created password.
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix1234!
d. 為Zabbix Server配置數(shù)據(jù)庫
Edit file /etc/zabbix/zabbix_server.conf
DBPassword=Zabbix1234!
DBPassword=passwordDBHost=mysql-host-ip-or-hostname
e. 配置Zabbix的PHP前端
Edit file <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">/etc/httpd/conf.d/zabbix.conf</font>
, uncomment and set the right timezone for you.<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);"># php_value date.timezone Asia/Shanghai</font>
Start Zabbix server and agent processes and make it start at system boot:
systemctl restart zabbix-server zabbix-agent httpd # 啟動(dòng)、重啟
systemctl enable zabbix-server zabbix-agent httpd # 開機(jī)自啟
Now your Zabbix server is up and running!
配置zabbix 前端(WEB UI)
打開:**<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">http://192.168.88.131/zabbix</font>**
即可進(jìn)入Zabbix頁面,在首次打開的時(shí)候,會(huì)進(jìn)入設(shè)置頁面,如圖:
點(diǎn)擊下一步,會(huì)檢查相應(yīng)的設(shè)置是否都正常
如果一切正常,點(diǎn)擊下一步。
配置DB連接
按具體情況填寫即可
配置Server細(xì)節(jié)
具體配置即可,Name表示這個(gè)Zabbix服務(wù)的名字,這里起名叫<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">ITHEIMA-TEST</font>
安裝前總結(jié)預(yù)覽
檢查確認(rèn)沒有問題就下一步
配置完成
初始管理員賬戶Admin密碼zabbix
輸入賬戶密碼后,就能進(jìn)入zabbix頁面了。
如下圖:
現(xiàn)在是一個(gè)嶄新的zabbix等待我們?nèi)ヌ剿鳌?/p>
十五 運(yùn)維監(jiān)控Grafana部署
簡介
安裝
部署形式
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
支持兩種部署形式
- 自行部署, 可以部署在操作系統(tǒng)之上. 自行提供服務(wù)器, 域名等.
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
官方托管. 無需安裝, 在線注冊(cè)即可得到一個(gè)專屬于自己的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
, 但是要花錢的. 是一種<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">SaaS</font>
服務(wù)
我們課程選擇方式1
安裝
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
支持常見的絕大多數(shù)操作系統(tǒng), 如<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">windows</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">mac</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">linux</font>
同時(shí)也支持部署在<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">docker</font>
中.
大多數(shù)情況下, <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
都是部署在<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">linux</font>
服務(wù)器之上. 所以本課程也是基于<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Linux</font>
系統(tǒng)來講解.
對(duì)<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">windows</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">mac</font>
系統(tǒng) 或 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">docker</font>
部署有興趣的同學(xué), 請(qǐng)參考: https://grafana.com/grafana/download
我們部署<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
可以使用<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">YUM</font>
來進(jìn)行部署.
# 創(chuàng)建一個(gè)文件
vim /etc/yum.repos.d/grafana.repo# 將下面的內(nèi)容復(fù)制進(jìn)去
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt# 最后安裝
yum install grafana
配置說明
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">grafana-server</font>
具有許多配置選項(xiàng),這些選項(xiàng)可以在<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">.ini</font>
配置文件中指定,也可以使用環(huán)境變量指定。
Note.<font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">Grafana</font>
needs to be restarted for any configuration changes to take effect.
配置文件注釋
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">;</font>
符號(hào)在<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">.ini</font>
文件中全局表示注釋 ()
配置文件路徑
如果是自己解壓安裝, 或者自行編譯的方式安裝, 配置文件在:
- 默認(rèn):
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">$WORKING_DIR/conf/defaults.ini</font>
- 自定義:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">$WORKING_DIR/conf/custom.ini</font>
- 自定義配置文件路徑可以被參數(shù)
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">--config</font>
覆蓋
對(duì)于<font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">YUM</font>``<font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">RPM</font>
安裝的方式, 配置文件在: <font style="color:rgb(119, 119, 119);background-color:rgb(243, 244, 244);">/etc/grafana/grafana.ini</font>
使用環(huán)境變量
可以使用以下語法使用環(huán)境變量來覆蓋配置文件中的所有選項(xiàng):
GF__
其中<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">SectionName</font>
是方括號(hào)內(nèi)的文本。一切都應(yīng)為大寫,<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">.</font>
應(yīng)替換為<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">_</font>
例如,給定以下配置設(shè)置:
# default section
instance_name = ${HOSTNAME}[security]
admin_user = admin[auth.google]
client_secret = 0ldS3cretKey
Then you can override them using:
export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=true # GF_ 固定 SECURITY 是SectionName ADMIN_USER 是配置的key 轉(zhuǎn)大寫 . 轉(zhuǎn) _
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
開始配置
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
支持使用<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Sqlite3</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Postgresql</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Mysql</font>
這三種數(shù)據(jù)庫作為其<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">元數(shù)據(jù)</font>
的存儲(chǔ).
我們課程使用<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Mysql</font>
. 和<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">zabbix</font>
的元數(shù)據(jù)mysql共用一個(gè)實(shí)例
只需要配置如下內(nèi)容即可:
并登陸mysql, 執(zhí)行:
<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">create database grafana CHARACTER SET utf8 COLLATE utf8_general_ci;</font>
創(chuàng)建<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Grafana</font>
使用的數(shù)據(jù)庫作為元數(shù)據(jù)存儲(chǔ).
啟動(dòng)
systemctl daemon-reload
systemctl start grafana-server
systemctl enable grafana-server
瀏覽器打開:http://node1:3000
默認(rèn)賬戶密碼:admin/admin