Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装

目录

  • docker
  • 安装java
  • 安装mysql
  • 安装Mysql8
  • 安装python3
  • 安装supervisor
  • 安装ElasticSearch
  • 打包images

docker

  • yum install docker
  • systemctl start docker
  • systemctl enable docker
  • docker pull centos
  • 执行 yum install等待很漫长。如果报错:Cannot set property TasksAccounting, or unknown property

安装java

  • cp jdk*.tar.gz到容器中,解压

  • vi /etc/profile

    export JAVA_HOME=/usr/local/java8
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • source /etc/profile

  • java -version

安装mysql

  • 获取 mysql 的yum源
 #获取 mysql 的yum源
 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
 #安装上面的yum 源
 yum -y install mysql57-community-release-el7-10.noarch.rpm
 #yum 安装 mysql
 yum -y install mysql-community-server
 #开启服务
 systemctl start mysqld
  • 查看配置文件位置
mysqld --verbose --help --pid-file=/var/run/mysqld/mysqld.pid | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
  • 更改mysql 配置:/etc/my/cnf
validate_password=OFF 
character-set-server=utf8 
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
  • 获取mysql 初始密码
grep "password" /var/log/mysqld.log
#结果:[Note] A temporary password is generated for root@localhost: k:nT
  • 进入到mysql,进行操作
# 进入
mysql -u root -p 
#更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '111111';
# 更改 使mysql可以远端访问
update user set host = '%' where user = 'root';
  • 测试,可以使用物理机,使用navicat 对docker中的mysql进行访问

安装Mysql8

# 下载el7的mysql8rpm包
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
tar -xf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
yum install -y  mysql-community-{client,common,devel,embedded,libs,server}-*
# 报错 Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
yum provides '*/applydeltarpm'
yum install deltarpm -y
# 再次执行
yum install -y  mysql-community-{client,common,devel,embedded,libs,server}-*
systemctl start mysqld
systemctl enable mysqld
# 获取 随机密码
grep 'temporary password' /var/log/mysqld.log
vi /etc/my.cnf
    validate_password.check_user_name   =OFF
    validate_password.length         =0
    validate_password.mixed_case_count   =0
    validate_password.number_count          =0
    validate_password.policy        =0
    validate_password.special_char_count  =0
    #validate_password=OFF  # 8中不好用了
    character-set-server=utf8 
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
# 重启 一定得先做
systemctl restart mysqld
# 登录修改密码与远程访问
mysql -u root -p 
    #更改密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    use mysql;
    update user set host = '%' where user = 'root';
# 测试 navicat 远程没法访问 [1251 client does not support authentication protocol requested by server]
## 更新密码时 需要用 `WITH mysql_native_password`
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

安装python3

yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum update
yum install -y python36u python36u-libs python36u-devel python36u-pip
yum install gcc
python3.6 --version
pip3.6 --version

安装supervisor

pip3.6 install supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
  • 更改配置文件
minfds= 819200
[include]
files = /etc/supervisor/*.ini
/tmp/supervisor.sock 改成 /var/run/supervisor.sock,
/tmp/supervisord.log 改成 /var/log/supervisor.log,
/tmp/supervisord.pid 改成 /var/run/supervisor.pid
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;改为serverurl=unix:///var/run/supervisor.sock
chmod 777 /run
chmod 777 /var/log
touch /var/run/supervisor.sock
chmod 777 /var/run/supervisor.sock
unlink /var/run/supervisor.sock
    
supervisord -c /etc/supervisor/supervisord.conf
#将需要监控的编写ini放到/etc/supervisor文件下

1. touch /usr/lib/systemd/system/supervisord.service
2. vi /usr/lib/systemd/system/supervisord.service
# supervisord service for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit] 
Description=Supervisor daemon

[Service] 
Type=forking 
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf 
ExecStop=/usr/bin/supervisorctl shutdown 
ExecReload=/usr/bin/supervisorctl reload 
KillMode=process 
Restart=on-failure 
RestartSec=42s

[Install] 
WantedBy=multi-user.target

2. systemctl enable supervisord
3. systemctl is-enabled supervisord
  • ini例子
[program:test]
user=root
command = nohup java -Xms3g -Xmx3g -jar test.jar > test.log 2>&1 &
directory=/root/test
startsecs=3
stopwaitsecs=0
autostart=true
autorestart=true
stdout_logfile=/var/log/test.log
stderr_logfile=/var/log/test.err

安装ElasticSearch

需要Java环境

  • 下载tar.gz并解压,并移动
mv elasticsearch-7.1.0 /usr/local/elasticsearch
  • 修改配置
vi /usr/local/elasticsearch/config/elasticsearch.yml
  • yml文件
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
# 7.1 版本即便不是多节点也需要配置一个单节点,否则
#the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
cluster.initial_master_nodes: ["node-1"]
# 配置indices fielddata得内存,超过80%就会释放
indices.fielddata.cache.size: 80%
# request数量使用内存限制,默认为JVM堆的40%。
indices.breaker.request.limit: 80%
  • 创建一个非root用户elsearch来执行elasticsearch脚本。ES不能用root用户启动
# elasticsearch can not run elasticsearch as root
adduser elsearch # 会自动建组 test
# 将文件夹以及子文件夹全部该为test用户
chown -R elsearch:elsearch elasticsearch
ll
# drwxr-xr-x 1 elsearch elsearch 4096 May 28 16:54 elasticsearch
  • 7.X新特性
  1. removal mapping types官方:https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html
目前版本有一个默认的type _doc,使用api对文档操作的时候,也不需要在url上加入 type了,直接index即可,具体的api可以大部分都可以通过在url去掉type进行操作。
  1. not_analyzed不存在了,如果需要不拆分
可以对index进行analyzer设置,将默认的analyzer设置成keyword就不会拆分了。
----------------------------------------------------------------
设置analyzer:需要先关闭index
1. POST http://server_ip/index_name/_close?pretty
2. PUT : http://server_ip/index_name/_settings?pretty
    BODY:
    {
        "index":{
            "analysis" : {
                "analyzer" : {
                    "default" : {
                        "type" : "keyword"
                    }
                }
            }
        }
    }
3. POST http://server_ip/index_name/_open?pretty
  1. 没有string这个 column type了。可以换成text或者keyword
  2. 在查询中,新增{"track_total_hits":true},可以查询出total得总数。不会被限制成10000

打包images

  • 上传到dockerhub得做法
sudo docker commit -a kane  testdocker.io/kane0725/test:v1
# 注,这里为了能够提交到dockerhub上, 命名规则必须为docker.io/dockerhub name/****
docker login
docker push docker.io/kane0725/test:java
  • 本地保存镜像得做法
# 导出打成本地 tar 包
docker export -o test.tar a404c6c174a2
# 将 tar 包导入成镜像
docker import test.tar test_images

你可能感兴趣的:(Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装)