Loading...
My Blog 我的工作和学习笔记

Linux chown命令使用说明

Linux操作笔记 2015/12/31 CentOS , Linux

chown命令

1、命令格式:

chown [选项]... [所有者][:[组]] 文件...


2、命令功能:

    chown命令可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件以空格分开要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。


3、命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

    -deference 作用于符号链接的指向,而不是链接文件本身

  选择参数:

    --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组

    --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

    --help 显示帮助信息

    --version 显示版本信息


4.使用实例:

  实例1:改变拥有者和群组

  命令:

    chown tomcat:tomcat /date/apache-tomcat-7.0.64-8180


实例2:改变文件拥有者

  命令:

    chown tomcat: log2015.log


实例3:改变文件群组

  命令:

    chown :tomcat log2015.log


实例4:改变指定目录以及其子目录下的所有文件的拥有者和群组 

  命令:

    chown -R -v tomcat:tomcat /date/apache-tomcat-7.0.64-8180


参考文档

http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html


CentOS 6.7上安装Redis 3.0.5

数据存储篇 2015/12/18 CentOS , Linux , Redis

在CentOS 6.7上安装Redis 3.0.5

#Redis是什么?

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。


#wget获取安装包并且安装

[root@centos1 data] wget http://download.redis.io/releases/redis-3.0.5.tar.gz

[root@centos1 data] tar xzf redis-3.0.5.tar.gz

[root@centos1 data] cd redis-3.0.5

[root@centos1 date] make


#安装过程中遇到的问题

1、提示没有“CC”编译器,于是安装“GCC”编译器

[root@centos1 date] yum install gcc

[root@centos1 date] make


2、提示“File `Makefile' has modification time 1.8e+06 s in the future”,将系统时间改为当前时间即可

[root@centos1 date] date -s "2015-11-08 15:15:00"

[root@centos1 date] make


3、提示“Newer version of jemalloc required”,“Leaving directory `/data/redis-3.0.5/src'”

[root@centos1 date] cd src

[root@centos1 src]  make MALLOC=libc


#启动服务并且使用内置客户端测试

[root@centos1 date] src/redis-server

......

359:M 08 Nov 15:28:30.429 * The server is now ready to accept connections on port 6379

说明启动成功,默认端口是:6379


[root@centos1 date] src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar"


#结语

Redis的默认安装比较简单,默认安装启动没有在后台运行;指定配置文件启动可以配置为后台运行,IP、端口、主从配置、安全配置等等


#指定配置文件启动

redis-3.0.5根目录有一个配置文件example,将后台运行打开

[root@centos1 date] vi /data/redis-3.0.5/redis.conf


# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize yes


指定配置文件开启服务

[root@centos1 date] src/redis-server /data/redis-3.0.5/redis.conf




参考文档

http://redis.io/

https://github.com/cinience/RedisStudio/releases

http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html




Hadoop学习之配置多节点集群(Hadoop Cluster Setup)

Hadoop笔记 2015/12/18 Hadoop , CentOS

Hadoop学习之配置多节点集群(Hadoop Cluster Setup)


#多节点集群配置说明

多节点集群配置是在伪分布式配置的基础上,将安装配置好的“hadoop-2.7.1”复制到其他节点虚拟机上,并且启动。

伪分布式部署配置详看:Hadoop学习之配置单一节点(Setting up a Single Node Cluster)


虚拟主机:centos1、centos2;分别配置好hosts,使之centos1和centos2之间的ping测试能互通,并且开放对应防火墙端口,这里的测试配置,只提供一台slaver节点,即将centos2作为slaver,centos1作为master;而正式生产环境至少需要2两个slaver,切记


#将centos1上安装配置好的hadoop安装包copy至centos2上

[root@centos1 data]# scp -r /data/hadoop-2.7.1 root@centos2:/data/


#分别启动centos1上的hadoop和centos2上的hadoop

[root@centos1 hadoop-2.7.1]# sbin/start-dfs.sh

[root@centos1 hadoop-2.7.1]# jps

41291 DataNode

41611 Jps

41464 SecondaryNameNode



[root@centos2 hadoop-2.7.1]# sbin/start-dfs.sh

[root@centos2 hadoop-2.7.1]# jps

41291 DataNode

41611 Jps

41464 SecondaryNameNode


#查看节点情况

NodeLast contactAdmin StateCapacityUsedNon DFS UsedRemainingBlocksBlock pool usedFailed VolumesVersion
centos1.imethan.cn:50010 (192.168.42.133:50010)1In Service17.17 GB576 KB5.36 GB11.81 GB58576 KB (0%)02.7.1
centos2.imethan.cn:50010 (192.168.42.134:50010)2In Service17.17 GB28 KB5.72 GB11.45 GB028 KB (0%)02.7.1


至此,一个master和一个slaver的hadoop分布式部署配置完成。



#参考文档

http://imethan.cn/blog/article/84

http://hadoop.apache.org/

http://blog.fens.me/hadoop-family-roadmap/


Hadoop学习之配置单一节点(Setting up a Single Node Cluster)

Hadoop笔记 2015/12/18 Hadoop , CentOS

Hadoop学习之配置单一节点(Setting up a Single Node Cluster)

2014年就开始学习Hadoop,但也只是阅读资料,安装Hadoop实例以及集群,做下测试,并不系统;现在决定开始系统的将学习的过程记录下来,写成文档的形式;另外,我整理学习笔记不喜欢长篇大论的照抄别家的教程,我只写核心的内容、自己测试的过程和理解;借助的学习资料引用,放在文章结尾的“参考文档”处。


百度百科,输入"Hadoop"关键字检索,由"Hadoop"词条开始入门学习Hadoop,Hadoop的研究学习由此处开始。


#准备工作

hadoop同时支持linux和windows平台,这里在linux平台安装学习,准备一台Centos 6.7 Linux虚拟主机。

安装JDK1.7并且配置好环境变量

并且安装好ssh并且启动sshd


#安装ssh和rsync

[root@centos1 ~]# yum install ssh

[root@centos1 ~]# yum install rsync


#安装配置

下载hadoop-2.7.1.tar.gz,http://hadoop.apache.org/releases.html,解压至/data/hadoop-2.7.1


查看JAVA_HOME 

[root@centos1 ~]# echo $JAVA_HOME

/usr/java/jdk1.7.0_79


[root@centos1 ~]# cd /data/hadoop-2.7.1/etc/hadoop

[root@centos1 ~]# vi hadoop-env.sh 

# The java implementation to use.

#export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/usr/java/jdk1.7.0_79


#查看hadoop版本

[root@centos1 ~]# cd /data/hadoop-2.7.1/bin

[root@centos1 bin]# ./hadoop version

Hadoop 2.7.1

Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a

Compiled by jenkins on 2015-06-29T06:04Z

Compiled with protoc 2.5.0

From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a

This command was run using /data/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar


#Standalone Operation  独立运行操作

[root@centos1 hadoop-2.7.1]# mkdir input

[root@centos1 hadoop-2.7.1]# cp etc/hadoop/*.xml input

[root@centos1 hadoop-2.7.1]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'

[root@centos1 hadoop-2.7.1]# cat output/*


#Pseudo-Distributed Operation 伪分布式操作

#配置核心site,指定master节点

[root@centos1 hadoop-2.7.1]# vi etc/hadoop/core-site.xml 

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://centos1:9000</value>

    </property>

</configuration>


#编辑hdfs-site.xml文件,设置从节点的数量为1

[root@centos1 hadoop-2.7.1]# vi etc/hadoop/hdfs-site.xml

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>


#ssh无密码登录localhost

[root@centos1 hadoop-2.7.1]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

[root@centos1 hadoop-2.7.1]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[root@centos1 hadoop-2.7.1]# export HADOOP\_PREFIX=/data/hadoop-2.7.1

[root@centos1 hadoop-2.7.1]# ssh localhost


#开始运行

1、Format the filesystem:格式化文件系统

[root@centos1 hadoop-2.7.1]# bin/hdfs namenode -format


2、Start NameNode daemon and DataNode daemon:启动NameNode和DataNode 

[root@centos1 hadoop-2.7.1]# sbin/start-dfs.sh

[root@centos1 hadoop-2.7.1]# jps

53665 NameNode

54961 Jps

53783 DataNode


3、Browse the web interface for the NameNode; by default it is available at:通过WEB浏览NameNode信息

NameNode - http://localhost:50070/


4、Make the HDFS directories required to execute MapReduce jobs:创建执行MapReduce 需要的HAFS目录

[root@centos1 hadoop-2.7.1]# bin/hdfs dfs -mkdir /user

[root@centos1 hadoop-2.7.1]# bin/hdfs dfs -mkdir /user/root

[root@centos1 hadoop-2.7.1]# bin/hdfs dfs -mkdir /user/root/input


5、Copy the input files into the distributed filesystem:将etc/hadoop下文件copy到input目录

[root@centos1 hadoop-2.7.1]# bin/hdfs dfs -put etc/hadoop input


6、Run some of the examples provided:执行example

[root@centos1 hadoop-2.7.1]#bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'


7、Examine the output files: Copy the output files from the distributed filesystem to the local filesystem and examine them:

[root@centos1 hadoop-2.7.1]# bin/hdfs dfs -get output output

[root@centos1 hadoop-2.7.1]# cat output/*


8、When you’re done, stop the daemons with:执行完成后,关闭节点

[root@centos1 hadoop-2.7.1]#sbin/stop-dfs.sh


#YARN on a Single Node 独立节点中的YARN mapreduce框架

1、Configure parameters as follows:配置参数

[root@centos1 hadoop-2.7.1]# vi etc/hadoop/mapred-site.xml

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

[root@centos1 hadoop-2.7.1]# vi etc/hadoop/yarn-site.xml

<configuration>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

</configuration>


2、Start ResourceManager daemon and NodeManager daemon:启动守护进程

[root@centos1 hadoop-2.7.1]# sbin/start-yarn.sh

[root@centos1 hadoop-2.7.1]# jps

56479 Jps

56386 NodeManager

56170 ResourceManager


3、Browse the web interface for the ResourceManager; 通过WEB浏览资源管理信息

ResourceManager - http://localhost:8088/


4、Run a MapReduce job.该步骤在伪分布式操作中已经执行过了


5、When you’re done, stop the daemons with:关闭

[root@centos1 hadoop-2.7.1]# $ sbin/stop-yarn.sh


初步学习和测试Hadoop分布式文件系统到此处结束


#参考文档

http://hadoop.apache.org/

http://blog.fens.me/hadoop-family-roadmap/



CentOS 6.7 配置文件的方式部署RabbitMQ消息中间件集群

RabbitMQ笔记 2015/12/18 RabbitMQ , CentOS

CentOS 6.7 配置文件的方式部署RabbitMQ消息中间件

#准备工作

分别在名为centos1、centos2的Centos 6.7 Linux上安装部署独立节点的RabbitMQ:http://imethan.cn/blog/article/78


#安装完成后停止RabbitMQ节点服务

[root@centos1 bin]# rabbitmqctl stop

[root@centos2 bin]# rabbitmqctl stop


#配置文件方式部署说明

默认安装部署的RabbitMQ并没有生成配置文件,采用的是运行时参数配置和策略(runtime parameters and policies);自定义配置时,需要手动的创建配置文:rabbitmq-env.conf(environment variables)、rabbitmq.config(a configuration file),创建的配置文件置于“/etc/rabbitmq”目录下。


#创建环境变量配置文件:rabbitmq-env.conf(这步配置可以略过)

将节点名称更改为“imethan@centos1”


vi /etc/rabbitmq/rabbitmq-env.conf

#example rabbitmq-env.conf file entries

#Rename the node

NODENAME=rabbit@centos1

#Config file location and new filename bunnies.config

#CONFIG_FILE=/etc/rabbitmq/testdir/bunnies


#创建配置文件:rabbitmq.config

分别在centos1、centos2上创建如下配置文件:

vi /etc/rabbitmq/rabbitmq.config


[

    {mnesia, [{dump_log_write_threshold, 1000}]},

    {rabbit, [{tcp_listeners, [5673]},{cluster_nodes,{['rabbit@centos1','rabbit@centos2'], disc}}]},

    {rabbitmq_management, [{listener, [{port, 45672}]}]}

].


#创建完成后启动centos1上的RabbitMQ Master节点和重置centos2上的RabbitMQ Slave节点

#在Master节点上执行

[root@centos1 bin]# rabbitmq-server -detached


#在Slave节点上执行

[root@centos2 bin]# rabbitmqctl stop_app

[root@centos2 bin]# rabbitmqctl reset

[root@centos2 bin]# rabbitmqctl start_app


#确认集群配置是否成功

[root@centos2 bin]# rabbitmqctl cluster_status

Cluster status of node rabbit@centos2 ...

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos1,rabbit@centos2]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


NameFile descriptors (?)Socket descriptors (?)Erlang processesMemoryDisk spaceInfo+/-
rabbit@centos1
20
1024 available
1
829 available
176
1048576 available
38MB
395MB high watermark
13GB
48MB low watermark
Disc 1 Stats
rabbit@centos2
20
1024 available
1
829 available
175
1048576 available
38MB
395MB high watermark
12GB
48MB low watermark
Disc 1




#参考文档

http://www.rabbitmq.com/configure.html

http://jessesnet.com/development-notes/2015/rabbitmq-cluster/



CentOS 6.7 部署RabbitMQ消息中间件集群

RabbitMQ笔记 2015/12/18 RabbitMQ , CentOS

CentOS 6.7 部署RabbitMQ消息中间件集群

#准备工作

分别在两台名centos1和centos2的CentOS6.7安装RabbitMQ消息中间件节点:详情步骤请查看:http://imethan.cn/blog/article/78

将节点服务更新为“stop”状态


#集群说明

默认安装的RabbitMQ节点会自动生成“Erlang cookie”,该cookie用于识别是否是集群中的一个节点,集群中的全部节点的cookie必须保持一致,否则没办法成为集群中的一个节点。

默认安装生成的cookie位于“/var/lib/rabbitmq/.erlang.cookie”路径或者是“$HOME/.erlang.cookie”路径


#将centos1中的“/var/lib/rabbitmq/.erlang.cookie”复制到centos2的“/var/lib/rabbitmq/”目录下


#分别启动CentOS的RabbitMQ服务

cd /usr/lib/rabbitmq/bin

centos1$ rabbitmq-server -detached

centos2$ rabbitmq-server -detached


#启动过程中出现如下问题:

"Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only"

chmod 600 /var/lib/rabbitmq/.erlang.cookie


“Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces”

vi /var/lib/rabbitmq/.erlang.cookie

将centos1中的cookie内容copy到centos2中的cookie


#两个节点独立启动后查看状态

centos1$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos1 ...

[{nodes,[{disc,[rabbit@centos1]}]},

 {running_nodes,[rabbit@centos1]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


centos2$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos2 ...

[{nodes,[{disc,[rabbit@centos2]}]},

 {running_nodes,[rabbit@centos2]},

 {cluster_name,<<"rabbit@centos2.imethan.cn">>},

 {partitions,[]}]


#创建集群,将centos2节点加入centos1集群

centos2$ rabbitmqctl stop_app

Stopping node rabbit@centos2 ...

centos2$ rabbitmqctl join_cluster rabbit@centos1

Clustering node rabbit@centos2 with rabbit@centos1 ...

centos2$ rabbitmqctl start_app

Starting node rabbit@centos2 ...


#查看集群状态

centos1$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos1 ...

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos2,rabbit@centos1]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


centos2$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos2 ...

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos1,rabbit@centos2]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


登录WEB管理界面首页查看集群状态

NameFile descriptors (?)Socket descriptors (?)Erlang processesMemoryDisk spaceInfo+/-
rabbit@centos1
25
1024 available
1
829 available
181
1048576 available
39MB
395MB high watermark
13GB
48MB low watermark
Disc 1 Stats
rabbit@centos2
20
1024 available
1
829 available
175
1048576 available
38MB
395MB high watermark
12GB
48MB low watermark
Disc 1


至此,centos1和centos2的RabbitMQ集群部署完成。



#其他管理操作

#重启节点,本例子集群中只有两个节点,如果将其中的主节点停止,集群的另外节点将切换为主节点

centos1$ rabbitmqctl stop

Stopping and halting node rabbit@centos1 ...


centos2$ rabbitmqctl cluster_status

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos2]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


NameFile descriptors (?)Socket descriptors (?)Erlang processesMemoryDisk spaceInfo+/-
rabbit@centos1
Node not running
rabbit@centos2
25
1024 available
1
829 available
181
1048576 available
38MB
395MB high watermark
12GB
48MB low watermark
Disc 1 Stats


centos1$ rabbitmq-server -detached

centos1$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos1 ...

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos2,rabbit@centos1]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


NameFile descriptors (?)Socket descriptors (?)Erlang processesMemoryDisk spaceInfo+/-
rabbit@centos1
25
1024 available
1
829 available
179
1048576 available
38MB
395MB high watermark
13GB
48MB low watermark
Disc 1
rabbit@centos2
25
1024 available
1
829 available
181
1048576 available
38MB
395MB high watermark
12GB
48MB low watermark
Disc 1 Stats


#从集群中移除一个节点

停止节点

centos2$ rabbitmqctl stop_app

Stopping node rabbit@centos2 ...

重置节点

centos2$ rabbitmqctl reset

Resetting node rabbit@rabbit2 ...done.

启动节点

centos2$ rabbitmqctl start_app

Starting node rabbit@rabbit2 ...done.


查看centos2节点是否已经移除

centos1$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos1 ...

[{nodes,[{disc,[rabbit@centos1]}]},

 {running_nodes,[rabbit@centos1]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


#默认安装的集群节点是“Disc”类型,可以设置节点类型为“Ram”

centos2$ rabbitmqctl stop_app

Stopping node rabbit@centos2 ...done.

centos2$ rabbitmqctl join_cluster --ram rabbit@centos1

Clustering node rabbit@centos2 with [rabbit@centos1] ...done.

centos2$ rabbitmqctl start_app

Starting node rabbit@centos2 ...done.


centos2$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos2 ...

[{nodes,[{disc,[rabbit@centos1]},{ram,[rabbit@centos2]}]},

 {running_nodes,[rabbit@centos1,rabbit@centos2]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]


#修改centos2节点类型为“Ram”,集群中必须存在一个“Disc”类型的节点

centos2$ rabbitmqctl stop_app

Stopping node rabbit@centos2 ...

centos2$ rabbitmqctl change_cluster_node_type disc

Turning rabbit@rabbit2 into a ram node ...

centos2$ rabbitmqctl start_app

Starting node rabbit@centos2 ...


查看状态

centos2$ rabbitmqctl cluster_status

Cluster status of node rabbit@centos2 ...

[{nodes,[{disc,[rabbit@centos1,rabbit@centos2]}]},

 {running_nodes,[rabbit@centos1,rabbit@centos2]},

 {cluster_name,<<"rabbit@centos1.imethan.cn">>},

 {partitions,[]}]






#参考文档

http://www.rabbitmq.com/clustering.html

http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html



CentOS 6.7安装RabbitMQ消息中间件

RabbitMQ笔记 2015/12/18 RabbitMQ , CentOS , Linux

#RabbitMQ是基于Erlang开发的,所以首先安装Erlang环境

下载:erlang-17.4-1.el6.x86_64.rpm 下载地址:http://www.rabbitmq.com/releases/erlang/


#rpm安装erlang

rpm -ivh erlang-17.4-1.el6.x86_64.rpm


#安装RabbitMQ Server

下载:rabbitmq-server-3.5.6-1.noarch.rpm 下载地址:http://www.rabbitmq.com/install-rpm.html


#rpm安装rabbitmq-server

rpm -ivh rabbitmq-server-3.5.6-1.noarch.rpm


#启动rabbitmq-server

/sbin/service rabbitmq-server start


#设置开机启动

chkconfig rabbitmq-server on


#开放防火墙端口

SELinux and similar mechanisms may prevent RabbitMQ from binding to a port. When that happens, RabbitMQ will fail to start. Make sure the following ports can be opened:

  • 4369 (epmd), 25672 (Erlang distribution)
  • 5672, 5671 (AMQP 0-9-1 without and with TLS)
  • 15672 (if management plugin is enabled)
  • 61613, 61614 (if STOMP is enabled)
  • 1883, 8883 (if MQTT is enabled)


#默认安装说明

默认安装日志路径:/var/log/rabbitmq

默认安装路径:/usr/lib/rabbitmq

默认安装配置文件存放路径:/etc/rabbitmq


#默认访问用户和虚拟主机

默认安装的rabbitmq服务,默认拥有一个账号和密码都是“guest”的用户,并且绑定到虚拟主机“/”,只能在本机(localhost)访问rabbitmq,正式发布时,建议删除“guest”账号和虚拟主机“/


#管理RabbitMQ节点

进入到bin目录:cd /usr/lib/rabbitmq/bin

停止服务:./rabbitmqctl stop

查看状态: ./rabbitmqctl status

更多rabbitmqctl命令:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html


#查看日志

进入到日志目录:cd /var/log/rabbitmq

浏览日志文件:ls

rabbit@centos1.log  rabbit@centos1-sasl.log  startup_err  startup_log

查看日志文件:cat rabbit@centos1.log


#开启UI管理界面插件“Management Plugin

cd /usr/lib/rabbitmq/bin

rabbitmq-plugins enable rabbitmq_management


URL访问地址:http://server-name:15672


#创建管理员用户,负责整个MQ的运维

rabbitmqctl add_user  admin admin  

rabbitmqctl set_user_tags admin administrator  

更多用户管理命令:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html


创建好后,便可以用账号为admin,密码为admin登录http://server-name:15672 进行MQ的维护



#参考文档

http://www.rabbitmq.com/



CentOS 6.7安装Mongodb并且配置用户权限

mongoDB笔记 2015/12/18 CentOS , MongoDB

MongoDB安装

//添加repo文件

vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/

gpgcheck=0

enabled=1


//yum安装,安装成功后的默认端口为27017

yum install -y mongodb-org


//启动

/etc/rc.d/init.d/mongod start|stop|status|restart


//mongo本地连接

mongo


//远程连接

mongo 127.0.0.1/admin -u username -p password


开启权限AUTH

//默认安装启动的mongodb,没有设置auth,开启auth前,创建管理用户:siteUserAdmin、siteRootAdmin

use admin

db.createUser({user:"siteUserAdmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});

db.createUser({user:"siteRootAdmin",pwd:"123456",roles:[{role:"root",db:"admin"}]});


//编辑配置文件,开启auth,并且重启

vi /etc/mongod.conf

auth=true

/etc/rc.d/init.d/mongod restart


用户权限管理

//登录

mongo

use admin

useadmindb.auth("siteRootAdmin","123456");


//查看数据库

show dbs


//创建collection

db.createCollection("log")


//插入记录

use log

db.loginfo.insert(

   {

     item: "ABC1",

     details: {

        model: "14Q3",

        manufacturer: "XYZ Company"

     },

     stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],

     category: "clothing"

   }

)

//查看记录

show collections


//查询记录

db.loginfo.find()


//创建用户,mongodb在对应数据创建的用户,只能登录对应的数据库登录

db.createUser({user:"loguser",pwd:"123456",roles:[{role:"dbOwner",db:"log"}]})


//查看用户

show users


//配置角色

db.grantRolesToUser( "loguser" , [ { role: "readWrite", db: "log" } ]) 


//删除角色

db.revokeRolesFromUser( "loguser" , [ { role: "readWrite", db: "from_mysql" } ])  


//查看用户信息

db.getUser("loguser")


//查看角色信息

db.getRole("readWrite",{showPrivileges:true})


//修改密码

db.changeUserPassword("loguser","1234567890")


//删除用户

db.dropUser("loguser")


//无限制角色用户创建

useadmindb.createUser({user:"root",pwd:"123456",roles:["root"]})

useadmindb.createUser({user:"system",pwd:"123456",roles:["__system"]})



参考

http://docs.mongodb.org/manual/

//mongo内置角色

http://docs.mongodb.org/manual/reference/built-in-roles/

//mongo shell命令参考

http://docs.mongodb.org/manual/reference/method/



CentOS 6 Linux 常用配置

Linux操作笔记 2015/12/18 CentOS , Linux

关闭防火墙

service iptables stop

限制防火墙开机启动

chkconfig iptables off

防火墙添加端口规则

修改/etc/sysconfig/iptables 文件,添加以下内容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


修改主机名称,重启也生效

uname -a 查看hostname

hostname centos1.imethan.cn 修改让hostname立刻生效

vi /etc/hosts 修改原hostname为 centos1.imethan.cn

vi  /etc/sysconfig/network 修改原hostname为 centos1.imethan.cn,这样可以让reboot重启后也生效

reboot重启,uname -a 重新检查


添加DNS域名转发

vi /etc/hosts

添加转发域名记录,例如

192.168.42.131 www.imethan.cn  blog

#IP地址             #转发目标域名       #别名

#hosts文件格式是一行一条记录,分别是IP地址 hostname aliases,三者用空白字符分隔,aliases可选



修改系统时间

date -s "2015-11-08 15:15:00"


JDK环境变量配置

#vi /etc/profile

在最后面加入

#set java environment

JAVA_HOME=/usr/java/jdk1.7.0_79

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出,是配置马上生效

source /etc/profile


配置SSH免用户名和密码登录

ssh-keygen -t rsa -P ''

scp /home/tungsten/.ssh/id_rsa.pub tungsten@centos1:/home/tungsten/.ssh/authorized_keys

service sshd restart