服务器搭建记录

来源:互联网 发布:linux firefox找不到 编辑:程序博客网 时间:2024/06/07 05:01


一、下载编译软件安装编译软件
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
二、安装nginx 
1.需下载pcre,进行安装(网上看到,可能阿里云服务已经有了不需要安装了)
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz#下载pcer
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35/
./configure
make && make install
2.下载nginx安装
wget http://nginx.org/download/nginx-1.12.0.tar.gz #下载,自己找对应版本
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module 
make && make install
cd /usr/local/webserver/nginx
sbin/nginx -v #查看版本
添加全局命令
vim /etc/profile
export PATH=$PATH:/usr/local/webserver/nginx/sbin
source /etc/profile #刷新
3.nginx 的配置文件
#user  nobody;
worker_processes  1;


#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
error_log logs/error.log info;


#pid        logs/nginx.pid;
pid logs/nginx.pid;


events {
worker_connections  1024;
}




http {
include       mime.types;
default_type  application/octet-stream;


#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';
log_format main '$http_x_forwarded_for $remote_addr [$time_local] $request '
'$status $body_bytes_sent $request_time $http_referer $http_user_agent - - - - -'




#access_log  logs/access.log  main;


access_log logs/access.log main;


server_tokens off;
sendfile        on;
#tcp_nopush     on;
tcp_nopush on;
#新加的配置
tcp_nodelay on;


#keepalive_timeout  0;
keepalive_timeout  65;
#新加的配置
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;


gzip  on;
gzip_min_length    1k;
gzip_buffers       4 16k;
gzip_http_version  1.0;
gzip_comp_level    2;
gzip_types         text/plain application/x-javascript text/css application/xml;
gzip_vary          on;
gzip_proxied       any;


#gzip  on;


server {
listen       80;
server_name  localhost;


#charset koi8-r;


#access_log  logs/host.access.log  main;
#匹配/这个正则规则下的一些配置(这里我配置转发),这是最简单版,直接反向代理,连静态资源都没有区分
location / {
root   html;
index  index.html index.htm;
#虽然8080tomcat还没安装,但是可以先配置
#proxy_pass   http://127.0.0.1:8080;
proxy_pass http://112.74.170.66;
}


#error_page  404              /404.html;


# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}


# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#    proxy_pass   http://127.0.0.1;
#}


# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}


# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#    deny  all;
#}
}




# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;


#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}




# HTTPS server
#
#server {
#    listen       443 ssl;
#    server_name  localhost;


#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;


#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m;


#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;


#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}


}
4.启动和停止nginx 
nginx 
nginx -s stop #停止
nginx -s reload #重新载入配置文件
nginx -s reopen #重启
三、mysql安装(5.7.10版本以后)
1.下载mysql
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar
解压到安装路径
#tar -xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar
# tar -xzvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz              # 解压文件
# cd mysql-5.7.13-linux-glibc2.5-x86_64                            # 进入
# mv * /usr/local/mysql                                                # 移动到之前我创建的mysql文件夹下。
创建mysql的data文件夹
2.检查你所用的Linux下有没有安装过mysql,没有卸载干净
#rpm -qa|grep -i mysql
mysql-5.7.13-linux-glibc2.5-x86_64
可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了--nodeps选项,忽略了依赖关系:
#rpm -e mysql-5.7.13-linux-glibc2.5-x86_64 --nodeps
当然你的也可能不止这一个文件,也可能有多个,那么你就依次  rpm -e xx --nodeps 卸载,卸载完了再检查一下,若确定删除干净后,在经行下面步骤
3.创建mysql的用户组/用户
groupadd mysql
useradd -r -g mysql mysql #-r 为非登录用户 ,-g 用于指定group
4.给安装路径付权限
chown -R mysql.mysql /alidata/server/mysql
5.初始化数据
# cd /alidata/server/mysql      
# ./bin/mysqld --user=mysql --basedir=/app/server/mysql --datadir=/app/server/mysql/data --initialize
可能会出现报错:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决办法:
缺少安装包libaio和libaio-devel.
命令行
yum install libaio*。自动安装这两个包
[Note] A temporary password is generated for root@localhost: **mjT,#x_5sW
注意:需要保存好密码:**mjT,#x_5sW
6.修改my.conf文件
[mysqld]
basedir=/app/server/mysql
datadir=/app/server/mysql/data


user=mysql
character_set_server=utf8
init_connect='SET NAMES utf8'


# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[client]
default-character-set=utf8
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid


#
# include all files from the config directory
#
!includedir /etc/my.cnf.d


7.配置mysql服务开机自动启动
修改support-files/mysql.server中的
basedir=/app/server/mysql
datadir=/app/server/mysql/data


# cp /alidata/server/mysql/support-files/mysql.server /etc/init.d/mysqld      # 拷贝启动文件到/etc/init.d/下并重命令为mysqld
# chmod 755 /etc/init.d/mysqld                                      # 增加执行权限
# chkconfig --list mysqld                                           # 检查自启动项列表中没有mysqld这个,
# chkconfig --add mysqld                                            # 如果没有就添加mysqld:
# chkconfig mysqld on   # 用这个命令设置开机启动:
8.mysql服务的启动/重启/停止
# service mysqld start                                               # 启动服务
# service mysqld restart                                             # 重启服务
# service mysqld stop                                                # 停止服务
启动mysql 服务器
service mysqld start
登陆root修改密码
./bin/mysql -uroot -p
set password = password('');
登陆root时可能会报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
这是my.conf配置有问题
#查看my.cnf关于socket的配置
# more /etc/my.cnf |grep sock
查看my.conf配置的socket位置是否一致
解决故障
a、通过配置my.cnf mysql选项socket文件位置解决
#先停止mysql服务器
[root@SZDB mysqldata]# service mysqld stop
修改my.conf中的socket
b、给/tmp/mysql.sock建一个连接
ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock 

9.添加mysql到环境变量中
添加全局命令
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile #刷新
10.授权远程连接
登陆mysql后:
grant all privileges on *.* to 'root'@'%' identified by '123456';
11.其他一些操作
12.1. 创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 
12.2. 查询用户权限 GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; 
12.3. 付权限 GRANT privileges ON databasename.tablename TO 'username'@'host';
四、安装jdk
1. 下载jdk 解压到目录下 
tar -zxvf jdk1.8.tar.gz
mv jdk1.8 /usr/local/java  #根据自己的爱好放到某个地方,然后配置环境变量
2. 配置环境变量
   vi /etc/profile
JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
source /etc/profile #刷新
五、配置服务器权限规则
1. 安装iptables:
yum search iptables #没事搜索一下
yum install iptables #安装iptables
yum install iptables-services #安装iptables的service,装着,不然服务启动不了
2. 配置iptables
#查看iptables现有规则
iptables -L -n
#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z
#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
#开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#开放8080端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
#开放mysql默认端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#开发23端口(telnet)
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
#允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丢弃
iptables -P INPUT DROP
#所有出站一律绿灯
iptables -P OUTPUT ACCEPT
#所有转发一律丢弃
iptables -P FORWARD DROP
还需要配置按照规则类似的添加8080,3306等端口 
3. 保存配置
service iptables save
4.查看端口号:
netstat -an | grep 22
5.关闭端口号:
iptables -A INPUT -p tcp --drop 端口号-j DROP
iptables -A OUTPUT -p tcp --dport 端口号-j DROP
可能遇到的保存:
# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
安装yum install iptables-services

systemctl stop firewalld
systemctl mask firewalld
============================linux操作记录=======================================================================================
#设置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.154.128
NETMASK=255.255.255.0
GATEWAY=192.168.154.2
DNS1=192.168.154.2


#查看端口占用
netstat -apn //查看机器所有在使用的端口
ps -aux | grep tomcat //查看tomcat应用使用情况
netstat -apn | grep portno //查看端口号使用的应用


#修改远程端口号
修改 /etc/ssh/sshd_config Port22
查看SELinux 开放给ssh使用的端口:
semanage port -l|grep ssh/sshd_config
添加端口号:semanage port -a -t ssh_port_t -p tcp 10086




1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld


#查看防火墙状态:service firewalld status
#关闭防火墙:service firewalld stop
#禁止firewall开机启动:systemctl disable firewalld.service
#停止firewall systemctl stop firewalld.service 
#关闭规则:service iptables stop


#查看状态:sestatus -v


iptables命令术语中是ACCEPT(允许流量通过)、LOG(记录日志信息)、REJECT(拒绝流量通过)、DROP(拒绝流量通过)。允许动作和记录日志工作都比较好理解,着重需要讲解的是这两条拒绝动作的不同点,其中REJECT和DROP的动作操作都是把数据包拒绝,DROP是直接把数据包抛弃不响应,而REJECT会拒绝后再回复一条“您的信息我已收到,但被扔掉了”,让对方清晰的看到数据被拒绝的响应。




=================================kafka==================================================================================
一、#windows启动kafka
:启动zk
cd G:\Big-File\Architecture\storm\kafka_2.10-0.9.0.0
bin\windows\zookeeper-server-start   config/zookeeper.properties
:修改kafka配置config/server.properties
log.dirs=G:/Big-File/Architecture/storm/kafka_2.10-0.9.0.0/kafka-logs
num.partitions=1
:启动kafka
bin\windows\kafka-server-start   config/server.properties
:创建主题
bin\windows\kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
:查看主题
bin\windows\kafka-topics --list --zookeeper localhost:2181
:发送消息
bin\windows\kafka-console-producer --broker-list localhost:9092 --topic test
:接收消息
bin\windows\kafka-console-consumer --zookeeper localhost:2181 --topic test --from-beginning
:查看主题信息
bin\windows\kafka-topics --describe --zookeeper localhost:2181 --topic test


二、linux 安装zookeeper 3.4.10
1.下载zookeeper 
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
2.配置防火墙策略: 
iptables -P INPUT ACCEPT;
iptables -F;
iptables -X;
iptables -Z;
iptables -A INPUT -i lo -j ACCEPT;
iptables -A INPUT -p tcp --dport 22 -j ACCEPT;
iptables -A INPUT -p tcp --dport 21 -j ACCEPT;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT;
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT;
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT;
iptables -A INPUT -p tcp --dport 443 -j ACCEPT;
iptables -A INPUT -p tcp --dport 23 -j ACCEPT;
iptables -A INPUT -p tcp --dport 2888 -j ACCEPT;
iptables -A INPUT -p tcp --dport 2181 -j ACCEPT;
iptables -A INPUT -p tcp --dport 9092 -j ACCEPT;
iptables -A INPUT -p tcp --dport 3888 -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT;
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT;
iptables -P INPUT DROP;
iptables -P OUTPUT ACCEPT;
iptables -P FORWARD DROP;
service iptables save;
3.解压zookeeper文件到安装路径下
tar -vxzf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 /app/zookeeper/zookeeper-3.4.10
4.复制conf/zoo_sample.cfg为conf/zoo.cfg
修改
dataDir=/tmp/zookeeper/zkdata
dataLogDir=/tem/zookeeper/log
添加配置
initLimit=5 #这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到Leader的Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长度后Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20 秒
syncLimit=2 #这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒
server.1=192.168.136.99:2888:3888
server.2=192.168.136.100:2888:3888
server.3=192.168.136.101:2888:3888
5.在dataDir路径下创建myid文件
echo 1 > myid #1为server.后面的数字
6.配置zookeeper环境变量
export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
7.启动zookeeper服务
zkServer.sh start
8.查看机器状态:
zkServer.sh status
9.客服端连接服务器
zkCli.sh -server centos1:2181  (因为是集群,机器名随便选一台即可)


参数说明:
tickTime:zookeeper中使用的基本时间单位, 毫秒值.
initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower。 initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
dataDir: 数据存放目录. 可以是任意目录.但是我喜欢这么干
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置
clientPort: 监听client连接的端口号.
server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址或者修改为机器ip映射配置. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

机器的ip映射可以修改vim /etc/hosts 
192.168.136.99 zo1
三、linux 搭建kafka 2.11_0.11
1.下载:wget http://mirrors.shuosc.org/apache/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz
2.解压并copy到安装路径下:
tar -vxzf kafka_2.11-0.11.0.0.tgz 
mv kafka_2.11-0.11.0.0 /app/kafka/kafka_2.11
3.修改config/server.properties
broker.id=0(修改为相应的节点数)
port=9092
host.name=192.168.136.100
zookeeper.connect=192.168.136.99:2181,192.168.136.100:2181,192.168.136.101:2181
4.启动系统
./bin/kafka-server-start.sh config/server.properties &
5.测试kafka
./bin/kafka-topics.sh  --create --zookeeper 192.168.136.99:2181,192.168.136.100:2181,192.168.136.101:2181 --replication-factor 1 --partitions 1 --topic test
./bin/kafka-console-producer.sh --broker-list 192.168.136.99:9092,192.168.136.100:9092,192.168.136.101:9092 --topic test
./bin/kafka-console-consumer.sh --zookeeper 192.168.136.99:2181,192.168.136.100:2181,192.168.136.101:2181 --from-beginning --topic test
=====================redis 集群搭建======================================================================================================
linux 安装redis 4.0.2 (主从模式,该集群中有三个节点,每个节点有一主一备。该环境搭建使用3台虚拟机。每个虚拟机安装两个redis实例一主一备)
一、下载redis包
1.wget http://download.redis.io/releases/redis-4.0.2.tar.gz
2.解压并编译安装下:
tar -vxzf redis-4.0.2.tar.gz
cd redis-4.0.2
#编译安装 其中/app/redis/redis-4.0.2为安装路径
make && make install PREFIX=/app/redis/redis-4.0.2
3.创建配置文件夹复制redis.conf重命名
mkdir /app/redis/cluster
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7000.conf
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7001.conf
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7002.conf
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7003.conf
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7004.conf
cp /app/redis/redis-4.0.2/redis.conf /app/redis/cluster/redis-7005.conf
4.修改配置文件
port  7000                                //端口根据对应的文件夹去配制端口 7000,7001,7002,7003,7004,7005      
bind 本机ip                               //根据本机所在的IP或hostname去配制 node1 node2 node3
daemonize    yes                          //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002,7003,7004,7005
cluster-enabled  yes                      //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成 7000,7001,7002,7003,7004,7005
cluster-node-timeout  15000               //请求超时  默认15秒,可自行设置
appendonly  yes   
5.复制src目录中的redis-trib.rb 到/app/redis/redis-4.0.2/bin目录
6.安装ruby环境
yum install -y ruby
yum install -y rubygems
#安装ruby的包
wget https://rubygems.org/downloads/redis-4.0.0.rc1.gem
gem install -l ./redis-4.0.0.rc1.gem
7.启动各个节点
./redis-4.0.2/bin/redis-server ./cluster/redis_7000.conf
./redis-4.0.2/bin/redis-server ./cluster/redis_7001.conf
./redis-4.0.2/bin/redis-server ./cluster/redis_7002.conf
./redis-4.0.2/bin/redis-server ./cluster/redis_7003.conf
./redis-4.0.2/bin/redis-server ./cluster/redis_7004.conf
./redis-4.0.2/bin/redis-server ./cluster/redis_7005.conf
8.对端口号开墙:(如果防火墙关闭无需执行)
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --zone=public --add-port=17000/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=17002/tcp --permanent
firewall-cmd --zone=public --add-port=17003/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=7005/tcp --permanent
firewall-cmd --zone=public --add-port=17004/tcp --permanent
firewall-cmd --zone=public --add-port=17005/tcp --permanent
firewall-cmd --reload
9.创建集群(某个节点redis安装目录下bin中执行下面的脚本)
./redis-trib.rb  create  --replicas  1  192.168.136.99:7000 192.168.136.99:7001  192.168.136.101:7002  192.168.136.101:7003  192.168.136.100:7004  192.168.136.100:7005
10.验证集群(各个节点连接测试)
./redis-cli -h 192.168.136.99 -p 7000 -c
./redis-cli -h 192.168.136.100 -p 7004 -c
./redis-cli -h 192.168.136.101 -p 7002 -c

==================================es=======================================================================================
elasticsearch 下载head插件的语句:
plugin.bat install mobz/elasticsearch-head


测试ik的路径:
http://localhost:9200/your_index/_analyze?text=中华人民共和国MN&tokenizer=my_ik


1.Elasticsearch会为所有的string类型数据使用standard分词器建立倒排索引
2.elasticsearch的查询与否(query DSL)分为两部分:query和filter,query查询考虑的是"文档中的字段值与给定值的匹配程度如何",会计算出每份文档与给定值的相关性分数,用这个分数对匹配了的文档进行相关性排序;filter查询考虑的是"文档中的字段值是否等于给定值",答案在"是"与"否"中;


#集群搭建 安装elasticsearch-5.6.0
1.下载elasticsearch包
2.解压到安装路径
tar -vxzf elasticsearch-5.6.0.tar.gz
mv elasticsearch-5.6.0 /app/es/elasticsearch-5.6.0
3.创建数据保存和日记文件夹
mkdir /app/es/data
mkdir /app/es/logs
4.修改vim elasticsearch.yml
cluster.name: mkums
node.name: mkums-node2
node.master: true
node.attr.rack: r1
path.data: /app/es/data
path.logs: /app/es/logs
network.host: 192.168.136.100
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.136.99", "192.168.136.101"]
discovery.zen.minimum_master_nodes: 3

#是否允许跨源 REST 请求
#http.cors.enabled: true
#指定允许 REST 请求来自何处。
#http.cors.allow-origin: "*"
5.修改max_map_count
sysctl -w vm.max_map_count=655360
6.创建es用户
groupadd elsearch
useradd elsearch -g elsearch -p admin123
7.赋权限
chown -R elsearch:elsearch /app/es
8.开墙:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --reload
9.修改启动文件elasticsearch
vim ./bin/elasticsearch

if [ -x "$JAVA_HOME/bin/java" ]; then
   JAVA="$JAVA_HOME/bin/java"
else
   JAVA=`which java`
fi
前面添加
export JAVA_HOME=/app/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
10.切换用户启动es
su elsearch
./bin/elasticsearch

11.安装插件()


注意:
1.测试环境内存不够时通过config/jvm.options进行修改
启动遇到的问题:
问题二:ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf 


添加如下内容:


* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
 
问题三:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]


解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf 
修改如下内容:


* soft nproc 1024
#修改为
* soft nproc 2048


问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]


解决:切换到root用户修改配置sysctl.conf


vi /etc/sysctl.conf 
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

Elasticsearch 配置文件属性
属性 缺省值 描述
cluster.name federated_clusterElasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。
node.name node1Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。
node.master true指示某个节点是否符合成为主节点的条件。主节点管理 Elasticsearch 集群的状态。在运行时,Elasticsearch 服务会自动提名某一个合格的集群成员成为主节点。
仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。
node.data true指示节点是否为数据节点。数据节点包含并管理索引的一部分。
仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。
http.enabled false指示是否为 Elasticsearch 服务启用 HTTP。如果您要通过使用 Elasticsearch REST 请求来直接查询 Elasticsearch 数据,那么可以启用 HTTP 端口。
限制:
Elasticsearch HTTP 端口不支持安全连接。
htttp.port 9200如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口。
http.cors.enabled true如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allowed.origin localhost如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
transport.tcp.port 9300用于某个集群中 Elasticsearch 节点之间的通信的端口。
discovery.zen.minimum_master_nodes 1指示某个集群定额所需的 Process Federation Server 的数量。
缺省值为 1 表示单服务器环境。对于生产环境,请将该值设置为组成定额所需的 Process Federation Server 的数量。例如,如果在集群中总计有三个 Process Federation Server,请将该值设置为“2”,如果在集群中总计有五个 Process Federation Server,请将该值设置为“3”。
有关更多信息,请参阅 Elasticsearch 文档。
discovery.zen.ping.multicast.enabled false通过发送节点所接收和响应的一个或多个多点广播请求来提供对其他 Elasticsearch 服务节点的多点广播 ping 发现功能。有关更多信息,请参阅 Elasticsearch 文档。
discovery.zen.ping.unicasts.hosts localhost提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。
例如:
discovery.zen.ping.unicast.hosts="localhost:9300,localhost:9301,localhost:9302
Copy to clipboard
有关更多信息,请参阅 Elasticsearch 文档

discovery.zen.ping.timeout 3sElastic 搜索节点等待加入 Elasticsearch 集群的时间。







原创粉丝点击