課程大綱
1、在虛擬機(jī)中安裝CentOS
2、在每個(gè)CentOS中都安裝Java和Perl
3、在4個(gè)虛擬機(jī)中安裝CentOS集群
4、配置4臺(tái)CentOS為ssh免密碼互相通信
從零開始,純手工,一步一步搭建出一個(gè)4個(gè)節(jié)點(diǎn)的CentOS集群
為我們后面的課程做準(zhǔn)備,后面會(huì)講解大型的分布式的redis集群架構(gòu),一步一步純手工搭建redis集群,集群部署,主從架構(gòu),分布式集群架構(gòu)
我們后面的課程,會(huì)講解一些實(shí)時(shí)計(jì)算技術(shù)的應(yīng)用,包括storm,講解一下storm的基礎(chǔ)知識(shí),對(duì)于java工程師來說,會(huì)用就可以了,用一些storm最基本的分布式實(shí)時(shí)計(jì)算的feature就ok了,搭建一個(gè)storm的集群
部署我們整套的系統(tǒng),nginx,tomcat+java web應(yīng)用,mysql
盡量以真實(shí)的網(wǎng)絡(luò)拓?fù)涞沫h(huán)境,去給大家演示一下整套系統(tǒng)的部署,不要所有東西,redis集群+storm集群+nginx+tomcat+mysql,全部放在一個(gè)節(jié)點(diǎn)上玩兒,也可以去試一試,但是作為課程來說,效果不是太理想
redis集群,獨(dú)立的一套機(jī)器
storm集群,獨(dú)立的一套機(jī)器
nginx,獨(dú)立部署
tomcat + java web應(yīng)用,獨(dú)立部署
mysql,獨(dú)立部署
十幾個(gè)機(jī)器,去部署整套系統(tǒng),我在自己的筆記本電腦上來講課的,這么玩兒撐不住的
i5,12G
4臺(tái)虛擬機(jī),每臺(tái)虛擬機(jī)是1G的內(nèi)存,電腦基本還能撐住
電腦本身就6個(gè)G內(nèi)存的話,學(xué)習(xí)這種大型的系統(tǒng)架構(gòu)的課程,是有點(diǎn)吃力,給大家建議,幾個(gè)G的內(nèi)存條,也就幾百塊錢,給自己最好加個(gè)內(nèi)存條,至少到8G以上
16G湊合
純手工,從零開始
很多視頻課程,里面講師都是現(xiàn)成的虛擬機(jī),自己都裝好了,包括各種必要的軟件
講課的時(shí)候直接基于自己的虛擬機(jī)就開始講解了
很多同學(xué)就會(huì)發(fā)現(xiàn),想要做到跟講師一樣的環(huán)境都很難,自己可能照著樣子裝了個(gè)環(huán)境,但是發(fā)現(xiàn),各種問題,各種報(bào)錯(cuò),環(huán)境起不來
學(xué)習(xí)課程的過程很艱難
學(xué)視頻課程,肯定是要跟著視頻的所有的東西自己去做一做,練一練,結(jié)果你卻因?yàn)榄h(huán)境問題,做不了,連不了,那就太慘了
從centos的鏡像文件,到所有的需要使用的軟件,全都給你,在自己電腦上,下載一個(gè)虛擬機(jī)管理軟件,virtual box,就可以跟著玩兒了
如果你一步一步跟著視頻做,搭建起整個(gè)環(huán)境,應(yīng)該問題不大
環(huán)境問題,給大家弄成傻瓜式的
------------------------------------------------------------------------------------------
1、在虛擬機(jī)中安裝CentOS
啟動(dòng)一個(gè)virtual box虛擬機(jī)管理軟件(vmware,我早些年,發(fā)現(xiàn)不太穩(wěn)定,主要是當(dāng)時(shí)搭建一個(gè)hadoop大數(shù)據(jù)的集群,發(fā)現(xiàn)每次休眠以后再重啟,集群就掛掉了)
virtual box,發(fā)現(xiàn)很穩(wěn)定,集群從來不會(huì)隨便亂掛,所以就一直用virtual box了
(1)使用課程提供的CentOS 6.5鏡像即可,CentOS-6.5-i386-minimal.iso。
(2)創(chuàng)建虛擬機(jī):打開Virtual Box,點(diǎn)擊“新建”按鈕,點(diǎn)擊“下一步”,輸入虛擬機(jī)名稱為eshop-cache01,選擇操作系統(tǒng)為Linux,選擇版本為Red Hat,分配1024MB內(nèi)存,后面的選項(xiàng)全部用默認(rèn),在Virtual Disk File location and size中,一定要自己選擇一個(gè)目錄來存放虛擬機(jī)文件,最后點(diǎn)擊“create”按鈕,開始創(chuàng)建虛擬機(jī)。
(3)設(shè)置虛擬機(jī)網(wǎng)卡:選擇創(chuàng)建好的虛擬機(jī),點(diǎn)擊“設(shè)置”按鈕,在網(wǎng)絡(luò)一欄中,連接方式中,選擇“Bridged Adapter”。
(4)安裝虛擬機(jī)中的CentOS 6.5操作系統(tǒng):選擇創(chuàng)建好的虛擬機(jī),點(diǎn)擊“開始”按鈕,選擇安裝介質(zhì)(即本地的CentOS 6.5鏡像文件),選擇第一項(xiàng)開始安裝-Skip-歡迎界面Next-選擇默認(rèn)語言-Baisc Storage Devices-Yes, discard any data-主機(jī)名:spark2upgrade01-選擇時(shí)區(qū)-設(shè)置初始密碼為hadoop-Replace Existing Linux System-Write changes to disk-CentOS 6.5自己開始安裝。
(5)安裝完以后,CentOS會(huì)提醒你要重啟一下,就是reboot,你就reboot就可以了。
(6)配置網(wǎng)絡(luò)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
service network restart
ifconfig
BOOTPROTO=static
IPADDR=192.168.0.X
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
service network restart
(7)配置hosts
vi /etc/hosts
配置本機(jī)的hostname到ip地址的映射
(8)配置SecureCRT
此時(shí)就可以使用SecureCRT從本機(jī)連接到虛擬機(jī)進(jìn)行操作了
一般來說,虛擬機(jī)管理軟件,virtual box,可以用來創(chuàng)建和管理虛擬機(jī),但是一般不會(huì)直接在virtualbox里面去操作,因?yàn)楸容^麻煩,沒有辦法復(fù)制粘貼
比如后面我們要安裝很多其他的一些東西,perl,java,redis,storm,復(fù)制一些命令直接去執(zhí)行
SecureCRT,在windows宿主機(jī)中,去連接virtual box中的虛擬機(jī)
收費(fèi)的,我這里有完美破解版,跟著課程一起給大家,破解
(9)關(guān)閉防火墻
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
vi /etc/selinux/config
SELINUX=disabled
關(guān)閉windows的防火墻
后面要搭建集群,有的大數(shù)據(jù)技術(shù)的集群之間,在本地你給了防火墻的話,可能會(huì)沒有辦法互相連接,會(huì)導(dǎo)致搭建失敗
(10)配置yum
yum clean all
yum makecache
yum install wget
------------------------------------------------------------------------------------------
2、在每個(gè)CentOS中都安裝Java和Perl
WinSCP,就是在windows宿主機(jī)和linux虛擬機(jī)之間互相傳遞文件的一個(gè)工具
(1)安裝JDK
1、將jdk-7u60-linux-i586.rpm通過WinSCP上傳到虛擬機(jī)中
2、安裝JDK:rpm -ivh jdk-7u65-linux-i586.rpm
3、配置jdk相關(guān)的環(huán)境變量
vi .bashrc
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
source .bashrc
4、測試jdk安裝是否成功:java -version
(2)安裝Perl
很多講師,拿著自己之前花了很多時(shí)間調(diào)試好的虛擬機(jī)環(huán)境,去講課,這個(gè)很不負(fù)責(zé)任
yum install -y gcc
wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
tar -xzf perl-5.16.1.tar.gz
cd perl-5.16.1
./Configure -des -Dprefix=/usr/local/perl
make && make test && make install
perl -v
為什么要裝perl?我們整個(gè)大型電商網(wǎng)站的詳情頁系統(tǒng),復(fù)雜。java+nginx+lua,需要perl。
perl,是一個(gè)基礎(chǔ)的編程語言的安裝,tomcat,跑java web應(yīng)用
------------------------------------------------------------------------------------------
3、在4個(gè)虛擬機(jī)中安裝CentOS集群
(1)按照上述步驟,再安裝三臺(tái)一模一樣環(huán)境的linux機(jī)器
(2)另外三臺(tái)機(jī)器的hostname分別設(shè)置為eshop-cache02,eshop-cache03,eshop-cache04
(3)安裝好之后,在每臺(tái)機(jī)器的hosts文件里面,配置好所有的機(jī)器的ip地址到hostname的映射關(guān)系
比如說,在eshop-cache01的hosts里面
192.168.31.187 eshop-cache01
192.168.31.xxx eshop-cache02
192.168.31.xxx eshop-cache03
192.168.31.xxx eshop-cache04
------------------------------------------------------------------------------------------
4、配置4臺(tái)CentOS為ssh免密碼互相通信
(1)首先在三臺(tái)機(jī)器上配置對(duì)本機(jī)的ssh免密碼登錄
ssh-keygen -t rsa
生成本機(jī)的公鑰,過程中不斷敲回車即可,ssh-keygen命令默認(rèn)會(huì)將公鑰放在/root/.ssh目錄下
cd /root/.ssh
cp id_rsa.pub authorized_keys
將公鑰復(fù)制為authorized_keys文件,此時(shí)使用ssh連接本機(jī)就不需要輸入密碼了
(2)接著配置三臺(tái)機(jī)器互相之間的ssh免密碼登錄
使用ssh-copy-id -i hostname命令將本機(jī)的公鑰拷貝到指定機(jī)器的authorized_keys文件中
java,在公司里做項(xiàng)目,有幾個(gè)人是自己去維護(hù)linux集群的?。?????
幾乎沒有,很少很少,類似這一講要做的事情,其實(shí)都是SRE,運(yùn)維的同學(xué),去做的
但是對(duì)于課程來說,我們只能自己一步一步做,才有環(huán)境去學(xué)習(xí)?。。?!
------------------------------------------------------------------------------------------
基于虛擬機(jī)的linux集群環(huán)境,都準(zhǔn)備好了,手上有4臺(tái)機(jī)器,后面玩兒各種redis、kafka、storm、tomcat、nginx,都有機(jī)器了
課程大綱
1、安裝單機(jī)版redis
2、redis的生產(chǎn)環(huán)境啟動(dòng)方案
3、redis cli的使用
------------------------------------------------------------------------
1、安裝單機(jī)版redis
大家可以自己去官網(wǎng)下載,當(dāng)然也可以用課程提供的壓縮包
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd? /usr/local/tcl8.6.1/unix/
./configure?
make && make install
使用redis-3.2.8.tar.gz(截止2017年4月的最新穩(wěn)定版)
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install
------------------------------------------------------------------------
2、redis的生產(chǎn)環(huán)境啟動(dòng)方案
如果一般的學(xué)習(xí)課程,你就隨便用redis-server啟動(dòng)一下redis,做一些實(shí)驗(yàn),這樣的話,沒什么意義
要把redis作為一個(gè)系統(tǒng)的daemon進(jìn)程去運(yùn)行的,每次系統(tǒng)啟動(dòng),redis進(jìn)程一起啟動(dòng)
(1)redis utils目錄下,有個(gè)redis_init_script腳本
(2)將redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個(gè)redis實(shí)例監(jiān)聽的端口號(hào)
(3)修改redis_6379腳本的第6行的REDISPORT,設(shè)置為相同的端口號(hào)(默認(rèn)就是6379)
(4)創(chuàng)建兩個(gè)目錄:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
(5)修改redis配置文件(默認(rèn)在根目錄下,redis.conf),拷貝到/etc/redis目錄中,修改名稱為6379.conf
(6)修改redis.conf中的部分配置為生產(chǎn)環(huán)境
daemonize yes 讓redis以daemon進(jìn)程運(yùn)行
pidfile /var/run/redis_6379.pid 設(shè)置redis的pid文件位置
port 6379 設(shè)置redis的監(jiān)聽端口號(hào)
dir /var/redis/6379 設(shè)置持久化文件的存儲(chǔ)位置
(7)啟動(dòng)redis,執(zhí)行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start
(8)確認(rèn)redis進(jìn)程是否啟動(dòng),ps -ef | grep redis
(9)讓redis跟隨系統(tǒng)啟動(dòng)自動(dòng)啟動(dòng)
在redis_6379腳本中,最上面,加入兩行注釋
# chkconfig:? 2345 90 10
# description:? Redis is a persistent key-value database
chkconfig redis_6379 on
------------------------------------------------------------------------
3、redis cli的使用
redis-cli SHUTDOWN,連接本機(jī)的6379端口停止redis進(jìn)程
redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要連接的ip和端口號(hào)
redis-cli PING,ping redis的端口,看是否正常
redis-cli,進(jìn)入交互式命令行
SET k1 v1
GET k1
redis的技術(shù),包括4塊
redis各種數(shù)據(jù)結(jié)構(gòu)和命令的使用,包括java api的使用
redis一些特殊的解決方案的使用,pub/sub消息系統(tǒng),分布式鎖,輸入的自動(dòng)完成,等等
redis日常的管理相關(guān)的命令
redis企業(yè)級(jí)的集群部署和架構(gòu)
我們這套課程,實(shí)際上是針對(duì)企業(yè)級(jí)的大型緩存架構(gòu),用得項(xiàng)目,真實(shí)的大型電商網(wǎng)站的詳情頁系統(tǒng)(緩存)
我們首先講解的第一塊,其實(shí)就是企業(yè)級(jí)的大型緩存架構(gòu)中的,redis集群架構(gòu)(海量數(shù)據(jù)、高并發(fā)、高可用),最最流行,最最常用的分布式緩存系統(tǒng)
后面我們做商品詳情頁系統(tǒng)的業(yè)務(wù)開發(fā)的時(shí)候,當(dāng)然也會(huì)去用redis的一些命令
redis基礎(chǔ)知識(shí):教程,書籍,視頻
redis持久化、主從架構(gòu)、復(fù)制原理、集群架構(gòu)、數(shù)據(jù)分布式存儲(chǔ)原理、哨兵原理、高可用架構(gòu)
網(wǎng)上一些redis的教程,持久化,集群,哨兵,也講了,都是泛泛而講,簡單帶你搭建一下
我會(huì)深入集群架構(gòu)的底層原理,哨兵的底層原理,用一線的經(jīng)驗(yàn),告訴你,redis的大規(guī)模的架構(gòu)師如何去支撐海量數(shù)據(jù)、高并發(fā)、高可用的