集羣

首先關閉selinux 而後reboot重啓機器 查看 SELinux狀態及關閉SELinux 標籤:SELinux 原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。不然將追究法律責任。http://bguncle.blog.51cto.com/3184079/957315 查看SELinux狀態: 一、/usr/sbin/sestatus -v      ##若是SELinux status參數爲enabled即爲開啓狀態 SELinux status:                 enabled 二、getenforce                 ##也能夠用這個命令檢查 關閉SELinux: 一、臨時關閉(不用重啓機器): setenforce 0                  ##設置SELinux 成爲permissive模式                               ##setenforce 1 設置SELinux 成爲enforcing模式 二、修改配置文件須要重啓機器: 修改/etc/selinux/config 文件 將SELINUX=enforcing改成SELINUX=disabled 重啓機器便可 本文出自 「孤星雨」 博客,請務必保留此出處http://bguncle.blog.51cto.com/3184079/957315 https://github.com/mongodb/mongo-hadoop.git ; 1、jdk安裝 安裝版本爲 64位 jdk-7u51-linux-x64.tar.gz 1.解壓配置安裝 # mkdir -p /usr/lib/jvm # tar  -zxvf jdk-7u51-linux-x64.tar.gz -C /usr/lib/jvm 二、添加jdk7.0到系統環境變量 # cp /etc/profile /etc/profile.bak #備份 # vi /etc/profile #編輯,在最後添加下面的內容 export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 3.# source /etc/profile    #使配置文件當即生效 2、安裝zookeeper 版本zookeeper-3.5.0 前提條件是已安裝了jdk 單機模式 1.單 機安裝很是簡單,只要獲取到 Zookeeper 的壓縮包並解壓到某個目錄 如:/home/zookeeper-3.5.0-alpha 下 2.修改配置信息 在你執行啓動腳本以前,還有幾個基本的配置項須要配置一下,Zookeeper 的配置文件在 conf 目錄下,這個目錄下有 zoo_sample.cfg 和 log4j.properties,你須要作的就是將 zoo_sample.cfg 更名爲 zoo.cfg,由於 Zookeeper 在啓動時會找這個文件做爲默認配置文件。下面詳細介紹一下,這個配置文件中各個配置項的意義。  tickTime=2000  dataDir=/tmp/zookeeper  clientPort=2181 tickTime:這個時間是做爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。 dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。 clientPort:這個端口就是客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。 當這些配置項配置好後,你如今就能夠啓動 Zookeeper 了,啓動後要檢查 Zookeeper 是否已經在服務,能夠經過 netstat – ano 命令查看是否有你配置的 clientPort 端口號在監聽服務。 3.Zookeeper 的啓動腳本在 bin 目錄下, Linux 下的啓動腳本是 ./zkServer.sh start 3、安裝mysql-5.6.27 必要軟件包 yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake 建立mysql 用戶及用戶組: groupadd mysql useradd -r -g mysql mysql 解包 [root@host2 mysql_rpm]# tar -xvf MySQL-5.6.27-1.linux_glibc2.5.x86_64.rpm-bundle.tar MySQL-client-5.6.27-1.linux_glibc2.5.x86_64.rpm    #MySQL客戶端程序 MySQL-devel-5.6.27-1.linux_glibc2.5.x86_64.rpm     #MySQL客戶端程序 MySQL-embedded-5.6.27-1.linux_glibc2.5.x86_64.rpm   #MySQL的嵌入式程序 MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm     #MySQL服務端程序 MySQL-shared-5.6.27-1.linux_glibc2.5.x86_64.rpm     #MySQL的共享庫 MySQL-shared-compat-5.6.27-1.linux_glibc2.5.x86_64.rpm    #RHEL兼容包 MySQL-test-5.6.27-1.linux_glibc2.5.x86_64.rpm    #MySQL的測試組件 [root@host2 mysql_rpm]# [root@host2 mysql_rpm]# rpm -ivh MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm Preparing...                ########################################### [100%]    1:MySQL-server           ########################################### [100%] warning: user mysql does not exist - using root warning: group mysql does not exist - using root [root@host2 mysql_rpm]# 8 已經有了mysql用戶和組 [root@host2 mysql_rpm]# id mysql uid=495(mysql) gid=492(mysql) groups=492(mysql) [root@host2 mysql_rpm]# nl /etc/group | grep mysql     60    mysql:x:492: [root@host2 mysql_rpm]# cat /etc/group | grep mysql mysql:x:492: [root@host2 mysql_rpm]# cat /etc/shadow | grep mysql mysql:!!:16455:::::: [root@host2 mysql_rpm]# 10 copy配置文件 # 沒有這一步也能夠按內置參數 [root@host2 mysql_rpm]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf [root@host2 mysql_rpm]# 11 start [root@host2 mysql_rpm]# service mysql status MySQL is not running                                       [FAILED] [root@host2 mysql_rpm]# service mysql start Starting MySQL..                                           [  OK  ]   11 查驗 [root@host2 mysql_rpm]# netstat -anpl | grep mysql tcp        0      0 :::3306                     :::*                        LISTEN      5924/mysqld          unix  2      [ ACC ]     STREAM     LISTENING     76015  5924/mysqld         /var/lib/mysql/mysql.sock [root@host2 mysql_rpm]# 12 安裝客戶端 [root@host2 mysql_rpm]# rpm -ivh MySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm Preparing...                ########################################### [100%]    1:MySQL-client           ########################################### [100%] [root@host2 mysql_rpm]# 13 連到mysql並修改 [root@host2 mysql_rpm]# nl /root/.mysql_secret      1    # The random password set for the root user at Tue Jan 20 13:10:43 2015 (local time): F76Wy1A4G9ZuLcaG         [root@host2 mysql_rpm]# mysql -p mysql Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.22 Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; ERROR 1820 (HY000): You must SET PASSWORD before executing this statement mysql> mysql>  SET PASSWORD = PASSWORD('123456'); Query OK, 0 rows affected (0.31 sec) mysql> flush privileges; mysql> \q Bye [root@host2 mysql_rpm]# 3、安裝mongodb3.0.4 執行的是紅色部分 1.創建數據文件夾 通常狀況下不會把數據目錄創建在mongodb的解壓目錄下,不過這裏方便起見,就建在mongodb解壓目錄下吧。 [plain]view plaincopy mkdir -p /mongodb/data/master    mkdir -p /mongodb/data/slaver    mkdir -p /mongodb/data/arbiter     #三個目錄分別對應主,備,仲裁節點   2.創建配置文件 因爲配置比較多,因此咱們將配置寫到文件裏。 [plain]view plaincopy #master.conf   dbpath=/mongodb/data/master   logpath=/mongodb/log/master.log   pidfilepath=/mongodb/master.pid   directoryperdb=true   logappend=true   replSet=testrs   bind_ip=192.168.1.229 port=27017   oplogSize=10000   fork=true   noprealloc=true #auth=true [plain]view plaincopy #slaver.conf   dbpath=/mongodb/data/slaver   logpath=/mongodb/log/slaver.log   pidfilepath=/mongodb/slaver.pid   directoryperdb=true   logappend=true   replSet=testrs   bind_ip=192.168.1.229   port=27017   oplogSize=10000   fork=true   noprealloc=true   #auth=true [plain]view plaincopy #arbiter.conf   dbpath=/mongodb/data/arbiter   logpath=/mongodb/log/arbiter.log   pidfilepath=/mongodb/arbiter.pid   #directoryperdb=true   #logappend=true   replSet=testrs   bind_ip=192.168.1.229 port=27017   #oplogSize=10000   fork=true   #noprealloc=true   #auth=true 參數解釋: dbpath:數據存放目錄 logpath:日誌存放路徑 pidfilepath:進程文件,方便中止mongodb directoryperdb:爲每個數據庫按照數據庫名創建文件夾存放 logappend:以追加的方式記錄日誌 replSet:replica set的名字 bind_ip:mongodb所綁定的ip地址 port:mongodb進程所使用的端口號,默認爲27017 oplogSize:mongodb操做日誌文件的最大大小。單位爲Mb,默認爲硬盤剩餘空間的5% fork:之後臺方式運行進程 noprealloc:不預先分配存儲 以上配置本地未執行成功,我是使用如下命令行方式執行 ./mongod --dbpath=/data/mongodb/db --logpath=/data/mongodb/logs/master.log --logappend --pidfilepath=/data/mongodb/master.pid --directoryperdb --replSet=testrs oplogSize=10000  --port=27017 --fork 使用 --directoryperdb oplogSize=10000 會報錯 採用如下啓動mongodb ./mongod --dbpath=/data/mongodb/db/master --logpath=/data/mongodb/logs/master.log --logappend --pidfilepath=/data/mongodb/master.pid --replSet=testrs --port=27017  --fork ./mongod --dbpath=/data/mongodb/db/slaver --logpath=/data/mongodb/logs/slaver.log --logappend --pidfilepath=/data/mongodb/slaver.pid --replSet=testrs  --port=27018  --fork ./mongod --dbpath=/data/mongodb/db/arbiter --logpath=/data/mongodb/logs/arbiter.log --logappend --pidfilepath=/data/mongodb/arbiter.pid  --replSet=testrs  --port=27019 --fork 或者經過如下命令執行 ./mongod -f ../conf/master/master.conf ./mongod -f ../conf/slaver/slaver.conf ./mongod -f ../conf/arbiter/arbiter.conf 終止服務器進程 >./mongo -p 27017 >use admin; >db.shutdownServer(); 終止數據庫服務器進程 也能夠:ps -ef |grep mongod   經過kill -9 pid 關閉 可是有可能形成數據的損壞kill -15 pid 3.啓動mongodb 進入每一個mongodb節點的bin目錄下 [java]view plaincopy ./monood -f master.conf   ./mongod -f slaver.conf   ./mongod -f arbiter.conf   注意配置文件的路徑必定要保證正確,能夠是相對路徑也能夠是絕對路徑。 4.配置主,備,仲裁節點 能夠經過客戶端鏈接mongodb,也能夠直接在三個節點中選擇一個鏈接mongodb。 [plain]view plaincopy ./mongo 10.10.148.130:27017   #ip和port是某個節點的地址   >use admin   >cfg={ _id:"testrs", members:[ {_id:0,host:'192.168.1.229:27017',priority:2}, {_id:1,host:'192.168.1.229:27017',priority:1},{_id:2,host:'192.168.1.229:27017',arbiterOnly:true}] };   >cfg={ _id:"testrs", members:[ {_id:0,host:'127.0.0.1:27017',priority:2}, {_id:1,host:'127.0.0.1:27018',priority:1},{_id:2,host:'127.0.0.1:27019',arbiterOnly:true}] }; >rs.initiate(cfg)             #使配置生效          cfg是能夠任意的名字,固然最好不要是mongodb的關鍵字,conf,config均可以。最外層的_id表示replica set的名字,members裏包含的是全部節點的地址以及優先級。優先級最高的即成爲主節點,即這裏的10.10.148.130:27017。特別注 意的是,對於仲裁節點,須要有個特別的配置——arbiterOnly:true。這個千萬不能少了,否則主備模式就不能生效。 實際部署中還有一點須要注意,IP地址用公網可訪問的ip,否則客戶端調用會有問題 cfg={ _id:"testrs", members:[ {_id:0,host:'192.168.1.229:27017',priority:2}, {_id:1,host:'192.168.1.229:27018',priority:1},{_id:2,host:'192.168.1.229:27019',arbiterOnly:true}] };       配置的生效時間根據不一樣的機器配置會有長有短,配置不錯的話基本上十幾秒內就能生效,有的配置須要一兩分鐘。若是生效了,執行rs.status()命令會看到以下信息: [plain]view plaincopy {           "set" : "testrs",           "date" : ISODate("2013-01-05T02:44:43Z"),           "myState" : 1,           "members" : [                   {                           "_id" : 0,                           "name" : "10.10.148.130:27017",                           "health" : 1,                           "state" : 1,                           "stateStr" : "PRIMARY",                           "uptime" : 200,                           "optime" : Timestamp(1357285565000, 1),                           "optimeDate" : ISODate("2013-01-04T07:46:05Z"),                           "self" : true                   },                   {                           "_id" : 1,                           "name" : "10.10.148.131:27017",                           "health" : 1,                           "state" : 2,                           "stateStr" : "SECONDARY",                           "uptime" : 200,                           "optime" : Timestamp(1357285565000, 1),                           "optimeDate" : ISODate("2013-01-04T07:46:05Z"),                           "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),                           "pingMs" : 0                   },                   {                           "_id" : 2,                           "name" : "10.10.148.132:27017",                           "health" : 1,                           "state" : 7,                           "stateStr" : "ARBITER",                           "uptime" : 200,                           "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),                           "pingMs" : 0                   }           ],           "ok" : 1   }   若是配置正在生效,其中會包含以下信息: [plain]view plaincopy "stateStr" : "RECOVERING"   同時能夠查看對應節點的日誌,發現正在等待別的節點生效或者正在分配數據文件。        如今基本上已經完成了集羣的全部搭建工做。至於測試工做,能夠留給你們本身試試。一個是往主節點插入數據,能從備節點查到以前插入的數據(查詢備節點可能 會遇到某個問題,能夠本身去網上查查看)。二是停掉主節點,備節點能變成主節點提供服務。三是恢復主節點,備節點也能恢復其備的角色,而不是繼續充當主的 角色。二和三均可以經過rs.status()命令實時查看集羣的變化。 4、redis集羣部署 cd redis---/src make 一、若是報錯報了「/bin/sh: cc: command not found」的錯誤  沒用gcc 安裝過程     yum install cpp     yum install binutils     yum install glibc     yum install glibc-kernheaders     yum install glibc-common     yum install glibc-devel     yum install gcc     yum install make 注意gcc依賴了不少東西,有些包可能系統已經 裝了,有些沒有,防止出意外,最好都走一遍 2.再次執行make 報錯  make[1]: Entering directory `/software/redis-2.8.8/src'     CC adlist.o In file included from adlist.c:34: zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory zmalloc.h:55:2: error: #error "Newer version of jemalloc required" make[1]: *** [adlist.o] Error 1 make[1]: Leaving directory `/software/redis-2.8.8/src' make: *** [all] Error 2 執行  make MALLOC=libc 執行 make test 報錯 [root@ip-172 src]# make test You need tcl 8.5 or newer in order to run the Redis test make: *** [test] Error 1 少包、須要安裝tcl 執行如下命令 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz   sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/   cd  /usr/local/tcl8.6.1/unix/   sudo ./configure   sudo make   sudo make install   再次執行make test 成功後執行[root@ip-172-31-6-155 src]# make install Hint: It's a good idea to run 'make test' ;)     INSTALL install     INSTALL install     INSTALL install     INSTALL install     INSTALL install redis   集羣搭建 採用官方Sentinel組件你們集羣 測試環境部署在一臺機器,因此這裏就經過端口區分 1.新建server文件夾 >mkdir server 2.cp redis.conf server/redis_m.conf    主服務器配置文件 3.cp redis.conf server/redis_s1.conf    從服務器配置文件 redis_m.conf修改配置文件內容 修改如下對應的值 daemonize yes pidfile "/data/redis-3.0.4/redis-server-m.pid" port 6379 logfile "/data/redis-3.0.4/redis-server-m.log" dbfilename "dump.rdb" dir ./ appendonly yes aof-load-truncated yes redis_s1.conf修改配置文件內容 修改如下對應的值 daemonize yes pidfile "/data/redis-3.0.4/redis-server-s1.pid" port 6380 logfile "/var/log/redis/redis-server-s1.log" databases 16 dbfilename "dump.rdb" dir "/data/redis-3.0.4/server" # slaveof <masterip> <masterport> slaveof 54.223.43.17 6379 slave-serve-stale-data yes slave-read-only yes appendonly yes appendfilename "appendonly.aof" no-appendfsync-on-rewrite no aof-load-truncated yes aof-rewrite-incremental-fsync yes 啓動主從實例 [root@ip-172-31-6-155 redis-3.0.4]# redis-server server/redis_m.conf & [root@ip-172-31-6-155 redis-3.0.4]# redis-server server/redis_s1.conf & [root@ip-172-31-6-155 redis-3.0.4]# redis-server server/redis_s2.conf &  以此類推 修改配置sentinel.conf port 26379 dir /tmp sentinel monitor mymaster 127.0.0.1 6379 1  //注意這個1 是權重值 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 啓動Sentinel [root@ip-172-31-6-155 redis-3.0.4]# redis-server sentinel.conf  --sentinel  &  
相關文章
相關標籤/搜索