Linux系列---软件安装

1. 背景

linux与windows是截然不同的系统,其特点就是一切皆文件,省去复杂且耗费性能的可视化界面,由此,其性能完全用在提供服务上,这就是服务器选择linxu的原因。

centos中安装软件,一般情况下都是需要配置环境变量,这样可以在任何地方都自由方便的开启关闭或查询软件的状态。

附一份centos7.6的 /etc/profile 文件


HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi
 
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
 
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi
 
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done
 
unset i
unset -f pathmunge
 
 
export JAVA_HOME=/home/apps/jdk1.8.0_73
export JRE_HOME=$JAVA_HOME/jre
export ZOOKEEPER_HOME=/home/apps/zookeeper-3.4.13
export KAFKA_HOME=/home/apps/kafka_2.11-1.1.0
 
 
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin

2. FTP服务安装

2.1. 简介

FTP(File Transfer Protocol),中文名文件传输协议,是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

2.2. 题外话

在此,作为一名挨踢选手,我想到了经常使用的一个软件SecureCRT在 进行传输文件时经常用到的一个窗口“SFTP”,名字如此像,有联系吗?顺手一查,果然!

sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。

那么如何使用呢?

windows中可以使用Core FTP,FileZilla, WinSCP,Xftp,SecureCRT来连接SFTP进行上传,下载文件,建立,删除目录等操作。

linux下直接在终端中输入:sftp username@remote ip(or remote host name)。出现验证时,只需填入正确的密码即可实现远程链接。登入成功后终端呈现出:sftp>…

在sftp的环境下的操作就和一般ftp的操作类似了,ls,rm,mkdir,dir,pwd,等指令都是对远端进行操作,如果要对本地操作,只需在上述的指令上加‘l’变为:lls,lcd, lpwd等。当然既然是ftp,当然得说它的上传和下载咯!

上传:put /path/filename(本地主机) /path/filename(远端主机);

下载:get /path/filename(远端主机) /path/filename(本地主机)。

另外提一下sftp在非正规端口(正规的是22号端口)登录:sftp -o port=1000 username@remote ip.

当我们使用Alt+P快捷键时其实就是利用了SFTP这个功能,只不过封装了一下而已。

2.3. 详解

FTP的两个TCP连接

控制连接(TCP 21端口)主要用于实现FTP协议控制信令传送,服务器端打开TCP 21端口被动等待客户端发起连接命令;客户端则以主动方式打开随机端口,发起连接的建立请求。

数据连接(TCP 20端口)主要用于实现应用数据传送,服务器的数据连接端使用端口20。服务器执行主动打开数据连接,通常也执行主动关闭数据连接 。

FTP连接建立的两种方式

1 主动方式

主动方式也称为PORT方式,是FTP协议最初定义的数据传输连接方式,主要特点是:

FTP客户端通过向FTP服务器发送PORT命令,告诉服务器该客户端用于传输数据的临时端口号当需要传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输。在建立数据连接的过程中,由服务器主动发起连接,因此被称为主动方式。
在这里插入图片描述
2.被动方式

被动方式也称为PASV方式,被动方式的主要特点是:

FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道,完成数据传输。在整个过程中,由于服务器总是被动接收客户端的数据连接,因此被称为被动方式。
在这里插入图片描述
FTP主动、被动方式的选择

当FTP服务器与FTP客户端均处于同一局域网内,即两者之间互访不存在防火墙或其他安全设备时,主动方式、被动方式均可实现FTP文件分发共享。

如果FTP服务器处于路由器,防火墙或其他NAT设备之后,建议使用被动模式(passive mode)。因为在主动模式下传输数据时,由FTP发起的数据传输一般会被客户端网关的防火墙阻断。

关于主动与被动FTP优缺点的简要总结

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。

被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

针对上述防火墙带来的问题,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。

详解

https://zhuanlan.zhihu.com/p/34109504

常见FTP客户端支持的连接方式
PORT:主动模式
EPRT:增强主动模式
PASV:被动模式
EPSV:增强被动模式
在这里插入图片描述
在这里插入图片描述

2.4. 安装

1.在目标Linux系统下,如果常规的yum -y install vsftpd命令无法成功安装ftp,那么你需要通过网络资源查找到ftp相对应的rpm包,进行原始的手动安装,因为我进行的是一个项目安装包的升级,所以只能用rpm包,并且,Centos7和Centos8的rpm包不通用

找到一个靠谱的链接: RPM resource vsftpd(x86-64)

2.下载完毕后,把这个rpm安装包拖到你的目标Linux系统的某个路径下,输入安装命令:rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm,很快你就会看到安装成功的英文提示!使用命令:rpm -q vsftpd,查看安装的版本已验证是否安装成功
此时就已经成功在机器上安装了FTP服务。

但是这只是安装服务,如果你需要它作为服务器或者客户端,还需要继续

3.安装ftp的客户端,同样如果命令yum -y install ftp无法让你如愿,请下载ftp客户端的rpm包。点击连接RPM resource ftp
选择自己喜欢的包,需要的只是一个面向网络的搜索链接而已。

4.于是你在其他Linux上安装了ftp的客户端,并想尝试上传一个文件到这个ftp服务器上,你输入了:
ftp x.x.x.x(提供Ftp服务的IP地址),跳出No Route to Host这样刺眼字眼,聪明如我的你,肯定想到了防火墙设置?!所有,接下来,你只需要提供ftp服务的机器上,输入两行命令:
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

5.当你避开这个问题时,你却发现ftp需要输入用户名和密码,root不可用,因为在/etc/vsftpd下,你会看见ftpusers、user_list这两个文件,上面提供了黑名单,root是默认被禁止使用的用户名,那么这个时候,肿么办?!很简单,一是修改这2个文件,把root从黑变白(#root),这种方式,因为考虑到安全因素,我们还是自己添加一个用户名和密码吧!
添加用户命令: useradd ftpadmin -s /sbin/nologin
设置ftpadmin用户密码,运行命令:passwd ftpadmin
具体内容参考:Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录

6.至此,就可以很开心的在ftp客户端上访问ftp服务了!

3. 安装NC包

  1. 上传到操作系统:https://blog.csdn.net/u014770372/article/details/78956567
    http://rpmfind.net/linux/rpm2html/search.php?query=nc
  2. 执行安装:rpm -ivh nc-1.84-24.el6.x86_64.rpm
  3. 验证:nc -lk 8888

4. 安装Flink1.7

  1. 解压:https://blog.csdn.net/boling_cavalry/article/details/85038527
    https://flink.apache.org/downloads.html
  2. flink目录下启动:./bin/start-cluster.sh
  3. 可以在浏览器上访问:http://ip地址:8081
  4. 验证flink的安装
  5. 在新窗口使用:nc -l 9000 即连接本机的9000端口
  6. 在flink目录下执行:./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
  7. 在执行了nc -l 9000的窗口输入一个句子,每次输入完成按下一个回车
  8. 这便是flink的wc测试

5. 安装docker

  1. https://docs.docker.com/install/linux/docker-ce/centos/

  2. 卸载旧版本:sudo yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-engine

  3. 共有三种方式可以安装docker CE:①设置存储库进行安装。②使用rpm软件包进行安装。③使用便捷脚本进行安装

  4. 使用存储库安装:
    安装所需的包:sudo yum install -y yum-utils
    device-mapper-persistent-data
    lvm2
    设定稳定存储库:sudo yum-config-manager
    –add-repo
    https://download.docker.com/linux/centos/docker-ce.repo
    非必须步骤:启用夜间或测试存储库
    启用夜间存储库:sudo yum-config-manager --enable docker-ce-nightly
    启用测试通道:sudo yum-config-manager --enable docker-ce-test
    禁用夜间存储:sudo yum-config-manager --disable docker-ce-nightly
    安装最新版本的docker:sudo yum install docker-ce docker-ce-cli containerd.io
    启动docker:sudo systemctl start docker
    测试:sudo docker run hello-world 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性 消息并退出。

  5. 使用rpm软件包的方式进行安装
    下载:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 并下载.rpm要安装的Docker版本的 文件
    安装:sudo yum install /path/to/package.rpm 将下面的路径更改为下载Docker软件包的路径。
    启动:sudo systemctl start docker
    运行:sudo docker run hello-world

  6. 卸载
    卸载docker包:sudo yum remove docker-ce
    删除所有图像,容器和卷:sudo rm -rf /var/lib/docker

6. 安装jdk

  1. 卸载之前自带的jdk:
    查找旧版本:rpm -qa | grep Java
    无依赖删除:rpm -e --nodeps 后面跟系统自带的jdk名
    检验是否删掉:rpm -qa | grep Java
  2. 正常解压安装即可
  3. 在线导入安装包:如果之前没有用过可以通过 yum -y install lrzsz 命令安装这个插件
    安装插件完成之后输入 rz 命令然后按回车,就会弹出一个窗口,然后你就在这个寻找自己的安装包然双击,传输就会 进行。如果传输条不动可以重新传输。
  4. 配置环境进行保存:保存并退出的命令有两种 第一种是: 按住shift 键然后连按两次z(这是我常用的,因为它方便快 速),第二种是:wq 命令,有一种是不保存退出的命令:q ,注意:以上三种命令都是在非插入模式(插入模式下按 键盘左上角的ESC键退出插入模式就是非插入模式了)下操作。

出现如下命令,则代表安装成功
在这里插入图片描述

7. 安装zookeeper

  1. 上传解压

  2. cd conf
    cp zoo_sample.cfg zoo.cfg

  3. 添加以下内容

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/tmp/zookeeper/data
    dataLogDir=/tmp/zookeeper/log
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    
  4. 新建两个目录:mkdir -p /tmp/zookeeper/data mkdir -p /tmp/zookeeper/log

  5. 在/tmp/zookeeper/data下创建一个myid文件,并写入一个数值,例如0,标示该服务器的编号

  6. 启动服务:zkServer.sh start 查看状态:zkServer.sh status

  7. 如果是集群模式:
    需要在每台机器的/etc/hosts文件中添加ip地址和机器域名的映射,例如
    192.168.0.1 local1
    192.168.0.2 local2
    192.168.0.3 local3

    然后在每台机器的zoo.cfg文件中添加以下配置
    server.1=192.168.0.1:2888:3888
    server.2=192.168.0.2:2888:3888
    server.3=192.168.0.3:2888:3888

    安装完成后,启动命令为zkServer.sh start,出现如下状况则为正确安装了。standalone意为单机模式运行。
    在这里插入图片描述
    ​8. 关闭:zkServer.sh stop

8. 安装kafka

  1. 上传解压

  2. 配置环境变量

  3. 修改配置文件
    broker.id=0 broker的编号。如果是集群模式,则需要每个broker的编号不同
    listeners=PLAINTEXT://192.168.120.221:9092 broker对外提供服务的入口地址,集群模式需要各自ip和域名
    log.dirs=/tmp/kafka-logs 存放消息日志文件的地址
    zookeeper.connect=192.168.120.221:2181 kafka所需要的zookeeper集群的地址,有的书中后面还加了一个/kafka,是错误的

  4. 启动kafka:bin/kafka-server-start.sh config/server.properties
    后台运行:bin/kafka-server-start.sh config/server.properties & 或者bin/kafka-server-start.sh -daemon config/server.propertie

    安装完成后,利用自带的消费生产者进行测试,如果可以正常消费则代表是安装正确的。

    启动消费者:kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo

    新窗口启动生产者:kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo

    如果可以正常的收发消息,则代表kafka安装成功。此时能够正常收发代表安装没问题,但是还需要远程连接一下,才能确定能否使用,因为kafka是需要远程使用的,使用代码或者远程连接软件(kafka tool)都可以测试

  5. 关闭kafka:kafka-server-stop.sh

9. ES插件和辅助软件安装

9.1. 软件下载地址

GitHub的地址:https://codeload.github.com/medcl/elasticsearch-analysis-ik/tar.gz/v6.3.1
ES官网的地址:https://www.elastic.co/cn/

9.2. 安装head插件

参考:https://www.cnblogs.com/wangzhuxing/p/9352258.html

  1. 下载插件:wget https://github.com/mobz/elasticsearch-head/archive/master.zip

  2. 由于运行head需要运行node所以也要下载node,具体版本可以参考https://cdn.npmmirror.com/binaries/node

    wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
    tar -zxvf node-v4.4.7-linux-x64.tar.gz

  3. 增加以下配置

    JAVA_HOME=/home/soft/jdk1.8.0_131
    JRE_HOME=/home/soft/jdk1.8.0_131/jre
    NODE_HOME=/home/niezp/ES/node-v0.10.28-linux-x64
    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_HOME/bin
    NODE_PATH=$NODE_HOME/lib/node_modules
    
    export JAVA_HOME JRE_HOME NODE_PATH CLASS_PATH PATH NODE_PATH 
    
  4. 修改完保存并:source /etc/profile

  5. 这里遇到了大坑啊,由于ES启动时不建议用root账户的所以我直接用其他的账户登录之后修改,但是不让改没权限,然后我就切换到root修改也source 了,但是在切换回其他账户的时候
    echo $NODE_HOME
    死活是空的,我就纳闷了,在看也修改了,这里就埋下了坑,就直接说解决方案吧,哭死了,必须在用当前账户在 source /etc/profile一次才行

  6. echo $NODE_HOME
    就会输出配置的信息

9.3. 安装grunt

  1. 接下来解压下载的master.zip,进入下载的elasticsearch-head-master

  2. 执行
    [root@localnode1 elasticsearch-head-master]#npm install -g grunt-cli
    接下来检查grunt 安装是否成功
    [root@localnode1 elasticsearch-head]# grunt -version
    grunt-cli v1.2.0
    grunt v0.4.5

  3. 输出版本说明成功

    修改head插件源码:

    修改服务器监听地址:Gruntfile.js
    在这里插入图片描述
    修改修改连接地址:_site/app.js
    在这里插入图片描述

  4. 在elasticsearch-head-master目录下

    [root@localnode1 elasticsearch-head]# npm install
    [root@localnode1 elasticsearch-head]# grunt server
    启动成功就可以访问127.0.0.1:9100就可以看到如下界面
    在这里插入图片描述
    当然是只有一个节点信息的,具体界面操作就自行学习吧

    这样启动三个节点之后就能在head中看到如下界面
    在这里插入图片描述

9.4. 安装IKanalyzer插件

  1. 获取ES-Ikanalyzer
    注意:一定要和ES的版本一致
    地址:Releases · medcl/elasticsearch-analysis-ik · GitHub

  2. 安装插件
    将 ik 的压缩包解压到 ES安装目录的plugins/目录下(最好把解出的目录名改一下,防止安装别的插件时同名冲突),然后重启ES。

  3. 扩展词库
    扩展词典可以修改配置文件config/IKAnalyzer.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords">custom/ext_stopword.dic</entry>
        <!--用户可以在这里配置远程扩展字典 远程词库,可热更新,在一处地方维护-->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
    
  4. 测试

    • 创建一个索引
      http://start.com:9200/iktest
      {
          "mappings":{
              "_doc":{
                      "properties": {
                      "content": {
                      "type": "text",
                      "analyzer": "ik_max_word",
                      "search_analyzer": "ik_max_word"
                      }
                  }
              }
          
          }
      }
      
    • 分词测试
      http://start.com:9200/_analyze
      {
        "analyzer":"ik_smart",
        "text":"天团S.H.E昨在两厅院艺文广场举办17万人露天音乐会,3人献唱多首经典好歌,让现场粉丝听得如痴如醉"
      }
      
    • 结果
      {
          "tokens": [
              {
                  "token": "天",
                  "start_offset": 0,
                  "end_offset": 1,
                  "type": "CN_CHAR",
                  "position": 0
              },
              {
                  "token": "团",
                  "start_offset": 1,
                  "end_offset": 2,
                  "type": "CN_CHAR",
                  "position": 1
              },
              {
                  "token": "s.h.e",
                  "start_offset": 2,
                  "end_offset": 7,
                  "type": "LETTER",
                  "position": 2
              },
              {
                  "token": "昨在",
                  "start_offset": 7,
                  "end_offset": 9,
                  "type": "CN_WORD",
                  "position": 3
              },
              ...
      
    1. standard分词器把中文都拆分成了单个字。IK分词器拆分成了字和词语。

9.5. 安装Kibana

  1. 下载解压安装包,一定要装与ES相同的版本(下载旧版本需要点击 past releases)
    下载地址:https://www.elastic.co/cn/downloads/kibana
    在这里插入图片描述

  2. 解压并配置
    到kibana安装目录的config下,编辑kibana.yml配置文件,添加如下配置:

    #配置本机ip
    server.host: "192.168.130.125"
    #配置es集群url
    elasticsearch.url: "http://192.168.130.125:9200"
    

    该配置文件还可以添加其他配置项,例如:server.port: 5601 用来配置kibana服务端口,具体其他配置可以参考kibana.yml文件内部的注释说明。

  3. 启动
    ./bin/kibana
    成功启动后,可以访问:http:// 192.168.252.129:5601来访问kibana,ip为kibana安装节点ip,端口默认为5601,可以在config/kibana.yml中配置

  4. Kibana使用:https://blog.csdn.net/cb2474600377/article/details/78963247

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lipviolet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值