畢業設計準備篇一——環境搭建

畢業設計準備篇一——環境搭建

經過四年的學習和實戰經驗,打算做一個可以融合大多數學習的知識的畢業設計,所以就給自己的畢設取名:(分佈式)桌面化多媒體網站系統。系統採用的構架如圖1所示。


系統架構

其中數據庫集羣目前採用mysql集羣,爲什麼呢,因爲目前mysql使用率還是很大的,而且mysql官方文檔詳細,最大的原因是因爲自己筆記本配置不夠高,不能搭建oracle集羣。業務集羣和WEB集羣使用dubbo來實現遠程調用及服務治理。

本篇文檔的主要內容是記錄畢設準備工作——環境搭建。

 

 

環境搭建

1Linux環境配置

我使用的Linux版本是Ubuntu 14.10,安裝在自己電腦的虛擬機中,分配了三個網卡。每個虛擬機和實體機都屬於同一個局域網,同時使用虛擬機的內部網卡構建內部虛擬網絡。如圖2所示。用戶使用SSH證書登錄(略)。


主機拓撲圖

2Memcached

memcached使用的是官方下載的源碼包,然後進行編譯安裝。獲取最新的源碼包:wget http://memcached.org/latest

解壓:tar -zxvf latest

安裝依賴:sudo apt-get install gcc

sudo apt-get install icc-profiles

sudo apt-get install sasl2-bin

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

安裝:./configure && make && make test && sudo make install

啓動:/usr/local/bin/memcached -d -m 1024 -u root -p 11211 -P /tmp/memcached.pid

爲了讓memcache開機啓動,爲它寫啓動腳本,腳本內容如下:

#!/bin/sh   

#   

# memcached:    MemCached ROOT   

#   

# chkconfig:    - 90 25    

# description:  MemCached ROOT

#   

# Source function library.   

#. /etc/rc.d/init.d/functions   

#. /etc/sysconfig/network   

    

start()    

{   

        echo -n $"Starting memcached: "  

        /usr/local/bin/memcached -u root -d -m 4096 -p 11211  

        echo   

}   

    

stop()    

{   

        echo -n $"Shutting down memcached: "  

        kill -9 `pgrep  memcached`    

        echo   

}   

    

[ -f /usr/local/bin/memcached ] || exit 0  

    

# See how we were called.   

case "$1" in   

  start)   

        start   

        ;;   

  stop)   

        stop   

        ;;   

  restart|reload)   

        stop   

        start   

        ;;   

  condrestart)   

        stop   

        start   

        ;;   

  *)   

        echo $"Usage: $0 {start|stop|restart|reload|condrestart}"  

        exit 1  

esac   

exit 0

 

3Zookeeper

下載:wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

解壓:tar -zxvf zookeeper-3.4.6.tar.gz

修改配置:mv zoo_sample.cfg zoo.cfg

vim zoo.cfg

配置內容爲:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just 

# example sakes.

dataDir=/home/zookeeper/data

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the 

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

 

4、服務管理器安裝

安裝:sudo apt-get install chkconfig

sudo apt-get install chkrunlevel

sudo dpkg -i chkconfig_11.0-79.1-2_all.deb

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

添加服務:
sudo chkconfig --add memcached

sudo chkconfig --level 2345 memcached on

chkconfig --list memcached

sudo chkconfig --add zookeeper

 

5svn服務器安裝

安裝:sudo apt-get install subversion

sudo apt-get install apache2-utils

sudo apt-get install apache2

搭建工作:

sudo adduser svnuser

sudo addgroup subversion

sudo addgroup svnuser subversion

sudo mkdir /home/svn

sudo apt-get install libapache2-svn

sudo svnadmin create /home/svn/studio

svnserve -d -r /home/svn/studio/

sudo vim /etc/apache2/mods-available/dav_svn.conf

sudo htpasswd -c /home/svn/project/conf/passwd wms

sudo chown -R www-data:www-data /home/svn/studio/

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /home/svn/apache2_svn_ssl.pem

sudo a2enmod ssl

 


 

 

6MySQL集羣

集羣主要是配置文件很複雜,搞了很久才搞定。一下是配置文件:

Config.ini

#

# Configuration file for MyCluster

#

[NDB_MGMD DEFAULT]

Portnumber=1186

[NDB_MGMD]

NodeId=1

HostName=192.168.56.102

DataDir=/home/data/mysql-cluster/1/

Portnumber=1186

[TCP DEFAULT]

SendBufferMemory=4M

ReceiveBufferMemory=4M

[NDBD DEFAULT]

BackupMaxWriteSize=1M

BackupDataBufferSize=16M

BackupLogBufferSize=4M

BackupMemory=20M

BackupReportFrequency=10

MemReportFrequency=30

LogLevelStartup=15

LogLevelShutdown=15

LogLevelCheckpoint=8

LogLevelNodeRestart=15

DataMemory=1M

IndexMemory=1M

MaxNoOfTables=4096

MaxNoOfTriggers=3500

NoOfReplicas=2

StringMemory=25

DiskPageBufferMemory=64M

SharedGlobalMemory=20M

LongMessageBuffer=32M

MaxNoOfConcurrentTransactions=16384

BatchSizePerLocalScan=512

FragmentLogFileSize=64M

NoOfFragmentLogFiles=16

RedoBuffer=32M

MaxNoOfExecutionThreads=2

StopOnError=false

LockPagesInMainMemory=1

TimeBetweenEpochsTimeout=32000

TimeBetweenWatchdogCheckInitial=60000

TransactionInactiveTimeout=60000

HeartbeatIntervalDbDb=15000

HeartbeatIntervalDbApi=15000

[NDBD]

NodeId=21

HostName=192.168.56.102

DataDir=/home/data/mysql-cluster/21/

[NDBD]

NodeId=22

HostName=192.168.56.103

DataDir=/home/data/mysql-cluster/22/

[MYSQLD DEFAULT]

[MYSQLD]

NodeId=41

HostName=192.168.56.102

[MYSQLD]

NodeId=42

HostName=192.168.56.103

[API]

NodeId=61

HostName=192.168.56.102

[API]

NodeId=62

HostName=192.168.56.103

 

My.cnf

[mysqld]

#不再進行反解析(ip不反解成域名),這樣可以加快數據庫的反應時間

skip-name-resolve

log-error=mysqld.42.err

datadir="/home/data/mysql-cluster/42/"

tmpdir="/home/data/mysql-cluster/42/tmp"

basedir="/home/mysql/mysql-cluster/bin/"

port=3306

ndbcluster=on

ndb-nodeid=42

ndb-connectstring=127.0.0.1:1186,

socket="/home/data/mysql-cluster/42/mysql.socket"

 

解決不能通過mysql.sock連接MySQL問題 這個問題主要提示是,不能通過 '/tmp/mysql.sock'連到服務器,而php標準配置正是用過'/tmp/mysql.sock',但是一些mysql 安裝方法 將 mysql.sock放在/var/lib/mysql.sock或者其他的什麼地方,用這樣的方法:
  ln -s /var/lib/mysql /mysql .sock /tmp/mysql.sock

成功了,就是這樣ln -s /var/lib/mysql /mysql .sock /tmp/mysql.sock

 

/home/mysql/mysql-cluster/bin/ndb_mgmd --initial --ndb-nodeid=1 --config-dir=/home/data/mysql-cluster/1 --config-file=/home/data/mysql-cluster/1/config.ini

 

/home/mysql/mysql-cluster/bin/ndbd --ndb-nodeid=22 --ndb-connectstring=192.168.56.102:1186

 

/home/mysql/mysql-cluster/scripts/mysql_install_db --user=wms --datadir=/home/data/mysql-cluster/42/

 

/home/mysql/mysql-cluster/bin/mysqld_safe --defaults-file=/home/data/mysql-cluster/41/my.cnf --basedir=/home/mysql/mysql-cluster/ --log-error=/home/data/mysql-cluster/41/error.log --user=wms &

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章