Chinaunix首页 | 论坛 | 博客
  • 博客访问: 337422
  • 博文数量: 54
  • 博客积分: 497
  • 博客等级: 下士
  • 技术积分: 612
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 20:05
个人简介

行动…Don\'t ever let somebody tell you, you can\'t do something. you got a dream, you gotta protect it. people can\'t do something themselves they wanna tell you you can\'t do it.if you want something. go get it.

文章分类

全部博文(54)

文章存档

2021年(3)

2018年(1)

2017年(18)

2016年(7)

2015年(4)

2013年(1)

2011年(20)

我的朋友

分类: 大数据

2016-06-02 19:06:40

此项目所需平台为Centos6.5 中安装keepalived+双主mysql+nfs+ffmpeg
   A服务器IP:192.168.10.95
    B服务器IP:192.168.10.20
浮动IP(也就是虚拟IP):192.168.10.200
        文件服务器:192.168.10.100

以下安装步骤需要在A,B机器上执行搭建同样的环境,因为是离线安装。文中所需的包提前下载好。
apache-tomcat-7.0.69.tar
cmake-3.5.2.tar
ffmpeg-3.0.2.tar
keepalived-1.2.20.tar
mysql-5.6.29.tar
ncurses-6.0.tar
openssl-1.0.1t.tar.gz
portmap-4.0-65.2.2.1.x86_64.rpm

Centos6.5
安装

安装系统时定制安装包: develop tool   选择几项GCC安装包

Load balance 选中keepalived(注:也可不选,手动安装)

 

Mysql安装

 

若不定制安装包,在安装ncurses时提示缺少gcc,若要安装。把系统盘挂到某目录下。做如下设置

Vi      /etc/yum.repos.d/Centos-Media.repo

baseurl=/path  改为所需的路径。如  baseurl=file///opt/hoch/       注:我的U盘挂在/opt/hoch下

enable=0 改为 enable=1     把其它源中的1改为0

yum install  gcc*

1.       ncurses-**.tar.gz 安装

./configure

make && make install

2.       cmake-**.tar.gz

./bootstrap

make && make install

3.       mysql-**.tar.gz

a)         tar zxvf  mysql-**.tar.gz

b)         cd  myql-**

c)         cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

d)         mkdir  -p /user/local/mysql/data

e)         groupadd  mysql

f)          useradd  -g mysql  mysql

4.       make && make install

5.       设置权限

a)         chown  -R   mysql:mysql  /usr/local/mysql

6.       /usr/local/mydql/scripts/mysql_install_db  --basedir=/usr/local/mysql   --user=mysql

7.       chown  -R       root:root   /usr/local/mysql

8.       chown  -R        mysql:mysql     /usr/local/mysql/data

添加mysql服务:

9.       Cp      /usr/local/mysql/support-files/mysql.server          /etc/init.d/mysql

10.   mysql客户端放到默认路径,方便任意处调用

a)         Ln    -s      /usr/local/mysql/bin/mysql     /usr/local/bin/mysql

注:如果报mysql.sock找不到,查看配置文件:grep sock /etc/my.cnf

查看sock=/path  是否是所需路径。若不是,改为提示所需的路径

11.   加入系统服务,随机启动

a)         chkconfig mysql on

  

Tomcat安装

 

1.       解压tomcat到指定目录

a)         tar zxvf  tomcat-**.tar.gz  -C    /usr/local/tomcat

b)         cd    /usr/local/tomcat/bin

c)         ./startup.sh

2.       war包拷贝到webapps下,会自动解压

3.       进入解压目录(如sspWEB-INF/classes

4.       编辑conf.properties

a)         修改里面的用户名密码IP mysql所在机器的配置

5.       /usr/local/mysql/bin/mysqladmin   -u      root password      ‘密码’     (修改root密码)

开放远程访问权限:

Use mysql;

Update  user         set host =     ‘%’   where     user =  ‘root’;

若出现error : duplicate  entry 重复录入。 可下命令查询是否有了% 值:

select host from user where user = 'root'

如果有了,可直接:  flush privileges;

 

修改成功后,本地mysql 直接登录查库。显示不对. mysql  -h192.168.10.95  -uroot  –p   在B服务器上也做以下同样操作(B上第8步可以省略,因为会同步过来)。

6.       进入mysql建立字符集:

a)         CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  (注:db_name所建数据库,本项目为ssp)

7.       Use  ssp;                (建立项目库名)

8.       Source   ssp.sql      (到ssp.sql文件目录下,登录mysql执行此句。linuxman还是强烈建议,先不导入数据。待全步搭建完成后再做7,8两步)

 

 

防火墙添加端口:vi  /etc/sysconfig/iptables

在所有规则的最上面

-A INPUT -p tcp --dport 8080 -j ACCEPT

-A OUTPUT -p tcp --sport 8080 -j ACCEPT

 

Mysql 主主备份步骤

 

Vi /etc/my.cnf

在A主机器的[mysqld]下加入

Master 主机器


binlog_format=mixed
  (此句没加入会导致表数据插入错误时 slave_sql_running 停止运行)

log-bin=mysql-bin

server-id=1

binlog-do-db=ssp

binlog-ignore-db=mysql

replicate-do-db=ssp

replicate-ignore-db=mysql

log-slave-updates

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

设置后重启mysql服务

 

在B从机器的[mysqld]下加入

Slave 备用机器

binlog_format=mixed 

log-bin=mysql-bin

#log-bin=/data0/logs

server-id=2

binlog-do-db=ssp

binlog-ignore-db=mysql

replicate-do-db=ssp

replicate-ignore-db=mysql

log-slave-updates

sync_binlog=1

auto_increment_increment=3

auto_increment_offset=2

设置后重启、mysql


服务器A和服务器B互为主从,所以都要分别建立一个同步用户。 在A,B上分别执行此命令.IP后面的“*”号,在A主机执行时输入B主机的IP,在B 主机执行时输入A的IP

1.       grant replication slave on *.* to 'replication'@'192.168.10.*' identified by '000000';  

2.       flush privileges;  

 

分别在服务器AB上查看做为主服务器状态

  A服务器

mysql>flush tables with read lock;  

mysql> show master status\G  

*************************** 1. row ***************************  

File: mysql-bin.000007  

Position: 107  

Binlog_Do_DB: test  

Binlog_Ignore_DB: mysql  

1 row in set (0.00 sec)  


mysql>unlock tables;  


B
服务器

mysql> show master status\G  

*************************** 1. row ***************************  

File: mysql-bin.000005  

Position: 110 

Binlog_Do_DB: test  

Binlog_Ignore_DB: mysql  

1 row in set (0.00 sec)  


分别在服务器AB上用change master语句指定同步位置

  A、服务器

mysql>change master to master_host='192.168.10.B', master_user='replication', master_password='000000', master_log_file='mysql-bin.000005', master_log_pos=110;  


B
、服务器

mysql>change master to master_host='192.168.10.A', master_user='replication', master_password='000000', master_log_file='mysql-bin.000007', master_log_pos=107;  



  注:master_log_filemaster_log_pos由上面主服务器查出的状态值中确定。master_log_file对应Filemaster_log_pos对应Position
    mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

  d)分别在服务器AB上启动从服务器线程
mysql>start slave;  


e)
分别在服务器A、B上查看从服务器状态

mysql>show slave status\G;  


Slave_IO_Running: Yes  

Slave_SQL_Running: Yes  

 


 

Keepalived 安装

Openssl安装

 rm -rf /etc/ssl     #删除配置文件
prefix指定安装目录,openssldir是配置文件目录。建议安装两次。shared作用是生成动态链接库。
tar -zxvf openssl-1.0.1t.tar.gz
cd  openssl-1.0.1t
./config --prefix=/usr/local  --openssldir=/usr/local/ssl
make && make install
./config shared  --prefix=/usr/local  --openssldir=/usr/local/ssl
make clean
make && make install

keepalived安装:

tar zxf keepalived-1.2.6.tar.gz 

cd keepalived-1.2.6

./configure --prefix=/usr/local/keepalived 

make

make install

 

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

chmod +x /etc/init.d/keepalived


修改/etc/init.d/keepalived 

寻找大约15行左右的  . /etc/sysconfig/keepalived, 修改为: 
. /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置

同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):

export PATH="$PATH:/usr/local/keepalived/sbin"


修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数 
KEEPALIVED_OPTIONS="-D  -f  /usr/local/keepalived/etc/keepalived/keepalived.conf"


4. 经过以上修改,keepalived基本安装即可完成,启动测试之: 
service keepalived restart


5. 切勿忘记将此服务设置为开机启动

chkconfig keepalived on


启动提示“Starting keepalived: keepalived: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

find / -name libssl.so.1.0.0

系统显示路径在 /usr/local/lib64下面

用命令   ldconfig  /usr/local/lib64 

此时重启启动成功。


(备注:可以用 “ldd 可执行程序名” ldd /usr/local/keepalived/sbin/keepalived  会显示动态链接库)


配置主从模式

节点A的关键配置: 
节点A上的配置文件/usr/local/keepalived/etc/keepalived/keepalived.conf

global_defs {

   notification_email {

     root@localhost

   }

   notification_email_from root@local host

   smtp_server localhost

   smtp_connect_timeout 30

   router_id  NodeA

}

vrrp_instance VI_1 {

    state MASTER   #指定A节点为主节点 备用节点上设置为BACKUP即可

    interface eth0   #绑定虚拟IP的网络接口

    virtual_router_id 51  #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP

    priority 100   #主节点的优先级(1-254之间),备用节点必须比主节点优先级低

    advert_int 1   #组播信息发送间隔,两个节点设置必须一样

    authentication {   #设置验证信息,两个节点必须一致

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {   #指定虚拟IP, 两个节点设置必须一样

        192.168.10.200

          }

}

 默认的配置文件中,竟然没有子网掩码,从而导致使用了默认子网掩码255.255.255.255,如果导致无法从其它机器访问虚拟IPkeepalived虚拟IP无法ping通)。

 

按同样的方法配置节点B并修改配置文件,可将A节点的配置文件复制到B节点,并修改以下几项: 
router_id  NodeB

state   BACKUP

priority   99

 其它项不必修改。

加入系统服务随机启动:chkconfig  keepalived  on


以下安装文件服务器,给A,B提供文件存放。在第三台机器上执行:(看个人需求也可搭建在A或B上)
Nfs
安装:

rpm –ivh portmap-**.rpm

开启开启portmapnfs服务service portmap start
     service nfs start
     chkconfig --level nfs 35 on
     chkconfig --level protmap 35 on

2、将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/
     vim /etc/exports
     
exports文件中添加
     /sharedisk    192.168.10.0/24(rw,no_root_squash,async)

3、重启nfs 或者使用exportfs命令使设置生效
     
重启nfs
     service nfs restart

     exportfs
     exportfs -rv

     #exportfs用法
     -a
:全部mount或者unmount /etc/exports中的内容 
     -r
:重新mount /etc/exports中分享出来的目录 
     -u
umount 目录 
     -v
:将详细的信息输出到屏幕上
    
这样nfs的服务器端就设置好了


在客户端挂载该目录:

4. 在本地创建挂载的目录 
     mkdir /sharedisk

Chmod  777  /sharedisk
     mount -t nfs 192.168.10.100:/sharedisk  /sharedisk
     #
将服务器192.168.10.100上的/sharedisk/ 路径挂载到本地
     
此时,如果服务器端的防火墙有开着的话,将会提示错误.或半天连不上

是服务端端口被防火墙拦截所致。由于nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad5个服务,需要将这5个服务的端口加到iptables里面。而nfs portmapper两个服务是固定端口的,nfs2049portmapper111。其他的3个服务是用的随机端口,那就需要先把这3个服务的端口设置成固定的。

登录到服务器端:

5、查看当前这5个服务的端口并记录下来 用rpcinfo -p
    
把显示 nfs  2049, portmapper  111, 以及剩下的三个服务的端口在配置文件中取消注释。把端口号记下。

 vi /etc/sysconfig/nfs

# Port rquotad should listen on.
RQUOTAD_PORT=966
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=33993
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=33993
# Port rpc.mountd should listen on.
MOUNTD_PORT=976

6、将这3个服务的端口设置为固定端口,修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)
     vim  /etc/services 
    
在文件的最后一行添加:
     mountd  976/tcp
     mountd  976/udp
     rquotad  966/tcp
     rquotad  966/udp
     nlockmgr 33993/tcp
     nlockmgr 33993/udp
    
保存并退出。 

7、重启下nfs服务。  service nfs restart

8、在防火墙中开放这5个端口
       vim /etc/sysconfig/iptables

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p tcp --dport 59931 -j ACCEPT

 

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --state NEW -p udp --dport 59931 -j ACCEPT

 

service iptables restart
重新执行步骤4挂载即可

8nfs安全设置方面(此步可不做)
hosts.allow
hosts.deny设置
hosts.allow
设置:
portmap
ip
hosts.deny
设置:
portmap
ALL

 

加入系统随机启动:chkconfig  nfs  on


 

Samba安装配置:

1,先查看安装情况:rpm -qa|grep samba

 samba-common-3.6.9-164.el6.x86_64
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
samba-client-3.6.9-164.el6.x86_64
samba-winbind-3.6.9-164.el6.x86_64



根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。

使用命令:mount  /dev/sdb*  /mnt/

Cd /mnt/Packages

 rpm  -ivh samba-common-3.6.9-151.el6.x86_64

 rpm  -ivh samba-3.6.9-151.el6.x86_64

 rpm  -ivh samba-client-3.6.9-151.el6.x86_64

查看samba的服务启动情况

# service smb status

设置开机自启动

chkconfig --level 35 smb on             //在3、5级别上自动运行samba服务

配置smb服务

[global]

workgroup = WORKGROUP
server string = Samba Server Version %v

netbios name = name

         [share]                                                            注:此项为[public] 修改后的效果

         comment = Public Stuff

         path = /share

         public = yes

         writable = yes

         printable = no

         write list = +staff

         guest ok = yes

 

共享目录为:/share,共享目录对外名称为:hoch 即在Windows看到的目录名称。

设置共享目录权限:chown -R nobody:nobody /share

8、启动或者重启smb服务

 

Samba的所有用户都必须是系统里已存在的用户。我们要授权系统用户访问Samba的话,通过命令:

                   adduser  -M   hoch

        smbpasswd  -a   hoch  #添加用户hochSamba用户数据库中


添加防火墙端口:

-A INPUT -p tcp --dport 139 -j ACCEPT

-A INPUT -p tcp --dport 455 -j ACCEPT

-A INPUT -p udp --dport 137 -j ACCEPT

-A INPUT -p udp --dport 138 -j ACCEPT


加入系统随机启动:chkconfig  smb  on


不要用户访问:

#security = user    // 注释掉原来的user改成如下

security = share   // 变成共享的

第三步,启动服务。关闭防火墙:service iptables stop



Ffmpeg安装:

 

先解决系统默认java找不到问题。
update-alternatives --config java
There are 3 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
Enter to keep the current selection[+], or type selection number:


 

vi  /etc/profile 后面加入

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
export PATH=$PATH:$JAVA_HOME/bin

 

立即生效执行: source /etc/profile

 

解压缩(若是zip后缀用命令  unzip)
tar -zxvf ffmpeg-2.0.1.tar.gz


3、编辑profile文件:

      vi /etc/profile

    在文件末尾加上两句话:

    export FFMPEG_HOME=/usr/local/ffmpeg 

export PATH=$FFMPEG_HOME/bin:$PATH

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64

export PATH=$PATH:$JAVA_HOME/bin

4、配置安装路径之类的:

./configure --enable-shared --prefix=/usr/local/ffmpeg

--enable-shared 参数据说是允许其编译产生动态库,在以后的编程中要用到这个几个动态库,我也没考证,就直接用了。

如果出现异常,提示因为缺少yasm,需要添加参数,再执行以下命令:

./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg

如果执行结果不对,可以根据提示信息,并查看帮助,解决问题
./configure --help

5、编译安装
make
make install

6、安装之后在/usr/local/ffmpeg会看到有三个目录
bin 执行文件目录
lib 静态,动态链接库目录
include 编程用到的头文件

7、为了防止执行程序找不到库文件,
可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量

8、若出现error while loading shared libraries: libavdevice.so.52的错误
修改/etc/ld.so.conf 在最后一行加上/usr/local/ffmpeg/lib
ldconfig -v
#并修改 /usr/local/ffmpeg/lib目录下的文件权限为777

 

(注:此步根据本机情况决定。Hostname –i  取的值若不是本机使用的真实IP 要改/etc/hosts中的配置文件)

阅读(1896) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~