# 安装 需要相关包
# ==================================================================node1 node2 node3
yum install -y gcc gcc-c++ zlib zlin-devel perl ncurses-devel
# 安装 openssl
# ==================================================================node1
scp -r ~/openssl-1.1.0g.tar.gz node2:~/ scp -r ~/openssl-1.1.0g.tar.gz node3:~/
# ==================================================================node1 node2 node3
tar -zvxf ~/openssl-1.1.0g.tar.gz cd openssl-1.1.0g ./config --prefix=/usr/local/openssl # 修改Makefile vi Makefile #CFLAG= -DOPENSSL_THREADS CFLAG= -fPIC -DOPENSSL_THREADS # 执行执行 make && make install rm -rf ~/openssl-1.1.0g.tar.gz rm -rf ~/openssl-1.1.0g
# 安装 erlang
# ==================================================================node1
scp -r ~/otp_src_20.3.tar.gz node2:~/ scp -r ~/otp_src_20.3.tar.gz node3:~/
# ==================================================================node1 node2 node3
cd ~ tar -xf ~/otp_src_20.3.tar.gz mkdir /usr/local/erlang cd otp_src_20.3 # 配置安装路径编译代码 ./configure --prefix=/usr/local/erlang --without-javac --with-ssl=/usr/local/openssl # 执行编译结果 make && make install # 完成后进入/usr/local/erlang查看执行结果 ls /usr/local/erlang rm -rf ~/otp_src_20.3.tar.gz rm -rf ~/otp_src_20.3 # 环境变量 vi /etc/profile # 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下添加 export JAVA_HOME=/usr/java/jdk1.8.0_111 export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.12 export HADOOP_HOME=/usr/local/hadoop-2.7.6 export MYSQL_HOME=/usr/local/mysql export HBASE_HOME=/usr/local/hbase-1.2.4 export HIVE_HOME=/usr/local/hive-2.1.1 export SCALA_HOME=/usr/local/scala-2.12.4 export KAFKA_HOME=/usr/local/kafka_2.12-0.10.2.1 export FLUME_HOME=/usr/local/flume-1.8.0 export SPARK_HOME=/usr/local/spark-2.3.0 export STORM_HOME=/usr/local/storm-1.1.0 export ERLANG_HOME=/usr/local/erlang export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MYSQL_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin:$FLUME_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$STORM_HOME/bin:$ERLANG_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native # 使环境变量生效 cd ~ source /etc/profile # 查看配置结果 echo $ERLANG_HOME cd $ERLANG_HOME erl # 退出 > halt().
# 安装 rabbitmq
# ==================================================================node1
# 解压rabbitmq,官方给的包是xz压缩包,所以需要使用xz命令
cd ~ xz -d ~/rabbitmq-server-generic-unix-3.7.5.tar.xz #xz解压后得到.tar包,再用tar命令解压 tar -xvf rabbitmq-server-generic-unix-3.7.5.tar -C /usr/local rm -rf ~/rabbitmq-server-generic-unix-3.7.5.tar
# 环境变量
# ==================================================================node1 node2 node3
vi /etc/profile # 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下添加 export JAVA_HOME=/usr/java/jdk1.8.0_111 export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.12 export HADOOP_HOME=/usr/local/hadoop-2.7.6 export MYSQL_HOME=/usr/local/mysql export HBASE_HOME=/usr/local/hbase-1.2.4 export HIVE_HOME=/usr/local/hive-2.1.1 export SCALA_HOME=/usr/local/scala-2.12.4 export KAFKA_HOME=/usr/local/kafka_2.12-0.10.2.1 export FLUME_HOME=/usr/local/flume-1.8.0 export SPARK_HOME=/usr/local/spark-2.3.0 export STORM_HOME=/usr/local/storm-1.1.0 export ERLANG_HOME=/usr/local/erlang export RABBITMQ_HOME=/usr/local/rabbitmq_server-3.7.5 export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MYSQL_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin:$FLUME_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$STORM_HOME/bin:$ERLANG_HOME/bin:$RABBITMQ_HOME/ebin:$RABBITMQ_HOME/sbin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# ==================================================================node1
# 使环境变量生效 source /etc/profile # 查看配置结果 echo $RABBITMQ_HOME scp -r $RABBITMQ_HOME node2:/usr/local/ scp -r $RABBITMQ_HOME node3:/usr/local/
# ==================================================================node2 node3
# 使环境变量生效 source /etc/profile # 查看配置结果 echo $RABBITMQ_HOME
# 高并发设置
# ==================================================================node1 node2 node3
# 调整可打开文件/文件描述符数目(高并发支持) # 调整系统限制 vi /etc/sysctl.conf fs.file-max = 100000 # 使设置生效 sysctl -p # 查看系统限制 sysctl fs.file-max # 调整用户限制 vi /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 shutdown -h now # 快照 rabbitmq集群前
# ==================================================================node1 node2 node3
# 在后台启动Rabbit rabbitmq-server -detached # 安装web插件管理界面 # ==================================================================安装 rabbitmq_management插件 rabbitmq-plugins enable rabbitmq_management # ==================================================================安全认证 # 添加用户(用户名 admin 密码 Rabbitmq*123456 ) rabbitmqctl add_user admin Rabbitmq*123456 # 设置用户角色(设置admin用户为管理员角色) rabbitmqctl set_user_tags admin administrator # 设置用户权限(设置admin用户配置、写、读的权限) rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" # 删除用户(删除guest用户) rabbitmqctl delete_user guest # 注意:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。 # 创建和赋角色完成后查看并确认 rabbitmqctl list_users # 查看状态 rabbitmqctl status # 查看 admin 用户的权限 rabbitmqctl list_user_permissions admin # 浏览器输入地址:http://node1:15672/ # 用户名密码: admin/Rabbitmq*123456 # 浏览器输入地址:http://node2:15672/ # 用户名密码: admin/Rabbitmq*123456
# 集群配置
# ==================================================================node1 find / -name ".erlang.cookie" ll /root/.erlang.cookie chmod 600 /root/.erlang.cookie # 读取其中一个节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信) # 查看rabbitmq的启动日志中 home dir echo -n "RABBITMQERLANGCOOKIE" > /root/.erlang.cookie cat /root/.erlang.cookie #RABBITMQERLANGCOOKIE # ==================================================================node2 node3 chmod 600 /root/.erlang.cookie # ==================================================================node1 scp /root/.erlang.cookie node2:/root/.erlang.cookie scp /root/.erlang.cookie node3:/root/.erlang.cookie # ==================================================================node1 node2 node3 reboot rabbitmq-server -detached # 加入集群 # 默认是磁盘节点,如果是内存节点的话,需要加--ram参数 # 其中--ram代表是内存节点,如果希望是磁盘节点则不用加--ram,在rabbitmq集群中,至少需要一个磁盘节点 # ==================================================================node1 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster --ram rabbit@node1 rabbitmqctl start_app rabbitmqctl status # ==================================================================node2 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster --ram rabbit@node1 rabbitmqctl start_app rabbitmqctl status # ==================================================================node3 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@node1 rabbitmqctl start_app rabbitmqctl status # ==================================================================node1 # 设置镜像策略 rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}' rabbitmqctl cluster_status # ==================================================================node1 # 创建和赋角色完成后查看并确认 rabbitmqctl list_users # 需重新添加用户(用户名 admin 密码 Rabbitmq*123456 ) rabbitmqctl add_user admin Rabbitmq*123456 # 设置用户角色(设置admin用户为管理员角色) rabbitmqctl set_user_tags admin administrator # 设置用户权限(设置admin用户配置、写、读的权限) rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" # 删除用户(删除guest用户) rabbitmqctl delete_user guest # 注意:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。 # ==================================================================node1 node2 node3 # 创建和赋角色完成后查看并确认 rabbitmqctl list_users rabbitmqctl cluster_status # 浏览器输入地址:http://node1:15672/ # 用户名密码: admin/Rabbitmq*123456 # 浏览器输入地址:http://node2:15672/ # 用户名密码: admin/Rabbitmq*123456 rabbitmqctl stop shutdown -h now # 快照 rabbitmq