課程大綱
1煞躬、在虛擬機(jī)中安裝CentOS
2、在每個CentOS中都安裝Java和Perl
3、在4個虛擬機(jī)中安裝CentOS集群
4恩沛、配置4臺CentOS為ssh免密碼互相通信
從零開始在扰,純手工,一步一步搭建出一個4個節(jié)點(diǎn)的CentOS集群
為我們后面的課程做準(zhǔn)備雷客,后面會講解大型的分布式的redis集群架構(gòu)芒珠,一步一步純手工搭建redis集群,集群部署搅裙,主從架構(gòu)皱卓,分布式集群架構(gòu)
我們后面的課程,會講解一些實時計算技術(shù)的應(yīng)用部逮,包括storm娜汁,講解一下storm的基礎(chǔ)知識,對于java工程師來說兄朋,會用就可以了存炮,用一些storm最基本的分布式實時計算的feature就ok了,搭建一個storm的集群
部署我們整套的系統(tǒng)蜈漓,nginx穆桂,tomcat+java web應(yīng)用,mysql
盡量以真實的網(wǎng)絡(luò)拓?fù)涞沫h(huán)境融虽,去給大家演示一下整套系統(tǒng)的部署享完,不要所有東西,redis集群+storm集群+nginx+tomcat+mysql有额,全部放在一個節(jié)點(diǎn)上玩兒般又,也可以去試一試,但是作為課程來說巍佑,效果不是太理想
redis集群茴迁,獨(dú)立的一套機(jī)器
storm集群,獨(dú)立的一套機(jī)器
nginx萤衰,獨(dú)立部署
tomcat + java web應(yīng)用堕义,獨(dú)立部署
mysql,獨(dú)立部署
十幾個機(jī)器脆栋,去部署整套系統(tǒng)倦卖,我在自己的筆記本電腦上來講課的,這么玩兒撐不住的
i5椿争,12G
4臺虛擬機(jī)怕膛,每臺虛擬機(jī)是1G的內(nèi)存,電腦基本還能撐住
電腦本身就6個G內(nèi)存的話秦踪,學(xué)習(xí)這種大型的系統(tǒng)架構(gòu)的課程褐捻,是有點(diǎn)吃力掸茅,給大家建議,幾個G的內(nèi)存條柠逞,也就幾百塊錢倦蚪,給自己最好加個內(nèi)存條,至少到8G以上
16G湊合
純手工边苹,從零開始
很多視頻課程陵且,里面講師都是現(xiàn)成的虛擬機(jī),自己都裝好了个束,包括各種必要的軟件
講課的時候直接基于自己的虛擬機(jī)就開始講解了
很多同學(xué)就會發(fā)現(xiàn)慕购,想要做到跟講師一樣的環(huán)境都很難,自己可能照著樣子裝了個環(huán)境茬底,但是發(fā)現(xiàn)沪悲,各種問題,各種報錯阱表,環(huán)境起不來
學(xué)習(xí)課程的過程很艱難
學(xué)視頻課程殿如,肯定是要跟著視頻的所有的東西自己去做一做,練一練最爬,結(jié)果你卻因為環(huán)境問題涉馁,做不了,連不了爱致,那就太慘了
從centos的鏡像文件烤送,到所有的需要使用的軟件,全都給你糠悯,在自己電腦上帮坚,下載一個虛擬機(jī)管理軟件,virtual box互艾,就可以跟著玩兒了
如果你一步一步跟著視頻做试和,搭建起整個環(huán)境,應(yīng)該問題不大
環(huán)境問題纫普,給大家弄成傻瓜式的
------------------------------------------------------------------------------------------
1阅悍、在虛擬機(jī)中安裝CentOS
啟動一個virtual box虛擬機(jī)管理軟件(vmware,我早些年局嘁,發(fā)現(xiàn)不太穩(wěn)定溉箕,主要是當(dāng)時搭建一個hadoop大數(shù)據(jù)的集群,發(fā)現(xiàn)每次休眠以后再重啟悦昵,集群就掛掉了)
virtual box,發(fā)現(xiàn)很穩(wěn)定晌畅,集群從來不會隨便亂掛但指,所以就一直用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)存拍棕,后面的選項全部用默認(rèn)晓铆,在Virtual Disk File location and size中,一定要自己選擇一個目錄來存放虛擬機(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鏡像文件)奏属,選擇第一項開始安裝-Skip-歡迎界面Next-選擇默認(rèn)語言-Baisc Storage Devices-Yes, discard any data-主機(jī)名:spark2upgrade01-選擇時區(qū)-設(shè)置初始密碼為hadoop-Replace Existing Linux System-Write changes to disk-CentOS 6.5自己開始安裝。
(5)安裝完以后潮峦,CentOS會提醒你要重啟一下囱皿,就是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
此時就可以使用SecureCRT從本機(jī)連接到虛擬機(jī)進(jìn)行操作了
一般來說嘱腥,虛擬機(jī)管理軟件,virtual box拘悦,可以用來創(chuàng)建和管理虛擬機(jī)齿兔,但是一般不會直接在virtualbox里面去操作,因為比較麻煩础米,沒有辦法復(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ù)的集群之間,在本地你給了防火墻的話惠拭,可能會沒有辦法互相連接扩劝,會導(dǎo)致搭建失敗
(10)配置yum
yum clean all
yum makecache
yum install wget
------------------------------------------------------------------------------------------
2、在每個CentOS中都安裝Java和Perl
WinSCP职辅,就是在windows宿主機(jī)和linux虛擬機(jī)之間互相傳遞文件的一個工具
(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
很多講師,拿著自己之前花了很多時間調(diào)試好的虛擬機(jī)環(huán)境涵亏,去講課宰睡,這個很不負(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?我們整個大型電商網(wǎng)站的詳情頁系統(tǒng)气筋,復(fù)雜拆内。java+nginx+lua,需要perl宠默。
perl麸恍,是一個基礎(chǔ)的編程語言的安裝,tomcat搀矫,跑java web應(yīng)用
------------------------------------------------------------------------------------------
3抹沪、在4個虛擬機(jī)中安裝CentOS集群
(1)按照上述步驟,再安裝三臺一模一樣環(huán)境的linux機(jī)器
(2)另外三臺機(jī)器的hostname分別設(shè)置為eshop-cache02瓤球,eshop-cache03融欧,eshop-cache04
(3)安裝好之后,在每臺機(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臺CentOS為ssh免密碼互相通信
(1)首先在三臺機(jī)器上配置對本機(jī)的ssh免密碼登錄
ssh-keygen -t rsa
生成本機(jī)的公鑰绿饵,過程中不斷敲回車即可欠肾,ssh-keygen命令默認(rèn)會將公鑰放在/root/.ssh目錄下
cd /root/.ssh
cp id_rsa.pub authorized_keys
將公鑰復(fù)制為authorized_keys文件,此時使用ssh連接本機(jī)就不需要輸入密碼了
(2)接著配置三臺機(jī)器互相之間的ssh免密碼登錄
使用ssh-copy-id -i hostname命令將本機(jī)的公鑰拷貝到指定機(jī)器的authorized_keys文件中
java拟赊,在公司里做項目刺桃,有幾個人是自己去維護(hù)linux集群的啊要门?虏肾?廓啊?欢搜?封豪?
幾乎沒有,很少很少炒瘟,類似這一講要做的事情吹埠,其實都是SRE,運(yùn)維的同學(xué)疮装,去做的
但是對于課程來說缘琅,我們只能自己一步一步做,才有環(huán)境去學(xué)習(xí)袄啤K⑴邸!樊展!
------------------------------------------------------------------------------------------
基于虛擬機(jī)的linux集群環(huán)境呻纹,都準(zhǔn)備好了,手上有4臺機(jī)器专缠,后面玩兒各種redis雷酪、kafka、storm涝婉、tomcat哥力、nginx,都有機(jī)器了
課程大綱
1墩弯、安裝單機(jī)版redis
2吩跋、redis的生產(chǎn)環(huán)境啟動方案
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)境啟動方案
如果一般的學(xué)習(xí)課程涨缚,你就隨便用redis-server啟動一下redis轧粟,做一些實驗,這樣的話脓魏,沒什么意義
要把redis作為一個系統(tǒng)的daemon進(jìn)程去運(yùn)行的兰吟,每次系統(tǒng)啟動,redis進(jìn)程一起啟動
(1)redis utils目錄下茂翔,有個redis_init_script腳本
(2)將redis_init_script腳本拷貝到linux的/etc/init.d目錄中混蔼,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監(jiān)聽的端口號
(3)修改redis_6379腳本的第6行的REDISPORT珊燎,設(shè)置為相同的端口號(默認(rèn)就是6379)
(4)創(chuàng)建兩個目錄:/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)聽端口號
dir /var/redis/6379 設(shè)置持久化文件的存儲位置
(7)啟動redis延旧,執(zhí)行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start
(8)確認(rèn)redis進(jìn)程是否啟動槽地,ps -ef | grep redis
(9)讓redis跟隨系統(tǒ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和端口號
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)迫摔,分布式鎖沐扳,輸入的自動完成,等等
redis日常的管理相關(guān)的命令
redis企業(yè)級的集群部署和架構(gòu)
我們這套課程句占,實際上是針對企業(yè)級的大型緩存架構(gòu)沪摄,用得項目,真實的大型電商網(wǎng)站的詳情頁系統(tǒng)(緩存)
我們首先講解的第一塊纱烘,其實就是企業(yè)級的大型緩存架構(gòu)中的杨拐,redis集群架構(gòu)(海量數(shù)據(jù)、高并發(fā)擂啥、高可用)哄陶,最最流行,最最常用的分布式緩存系統(tǒng)
后面我們做商品詳情頁系統(tǒng)的業(yè)務(wù)開發(fā)的時候哺壶,當(dāng)然也會去用redis的一些命令
redis基礎(chǔ)知識:教程屋吨,書籍,視頻
redis持久化山宾、主從架構(gòu)至扰、復(fù)制原理、集群架構(gòu)资锰、數(shù)據(jù)分布式存儲原理敢课、哨兵原理、高可用架構(gòu)
網(wǎng)上一些redis的教程,持久化直秆,集群濒募,哨兵,也講了圾结,都是泛泛而講瑰剃,簡單帶你搭建一下
我會深入集群架構(gòu)的底層原理,哨兵的底層原理疫稿,用一線的經(jīng)驗培他,告訴你鹃两,redis的大規(guī)模的架構(gòu)師如何去支撐海量數(shù)據(jù)遗座、高并發(fā)、高可用的