Linux系列---软件安装
一、简介FTP(File Transfer Protocol),中文名文件传输协议,是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输
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包
- 上传到操作系统:https://blog.csdn.net/u014770372/article/details/78956567
http://rpmfind.net/linux/rpm2html/search.php?query=nc - 执行安装:rpm -ivh nc-1.84-24.el6.x86_64.rpm
- 验证:nc -lk 8888
4. 安装Flink1.7
- 解压:https://blog.csdn.net/boling_cavalry/article/details/85038527
https://flink.apache.org/downloads.html - flink目录下启动:./bin/start-cluster.sh
- 可以在浏览器上访问:http://ip地址:8081
- 验证flink的安装
- 在新窗口使用:nc -l 9000 即连接本机的9000端口
- 在flink目录下执行:./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
- 在执行了nc -l 9000的窗口输入一个句子,每次输入完成按下一个回车
- 这便是flink的wc测试
5. 安装docker
-
https://docs.docker.com/install/linux/docker-ce/centos/
-
卸载旧版本:sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine -
共有三种方式可以安装docker CE:①设置存储库进行安装。②使用rpm软件包进行安装。③使用便捷脚本进行安装
-
使用存储库安装:
安装所需的包: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 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性 消息并退出。 -
使用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 -
卸载
卸载docker包:sudo yum remove docker-ce
删除所有图像,容器和卷:sudo rm -rf /var/lib/docker
6. 安装jdk
- 卸载之前自带的jdk:
查找旧版本:rpm -qa | grep Java
无依赖删除:rpm -e --nodeps 后面跟系统自带的jdk名
检验是否删掉:rpm -qa | grep Java - 正常解压安装即可
- 在线导入安装包:如果之前没有用过可以通过 yum -y install lrzsz 命令安装这个插件
安装插件完成之后输入 rz 命令然后按回车,就会弹出一个窗口,然后你就在这个寻找自己的安装包然双击,传输就会 进行。如果传输条不动可以重新传输。 - 配置环境进行保存:保存并退出的命令有两种 第一种是: 按住shift 键然后连按两次z(这是我常用的,因为它方便快 速),第二种是:wq 命令,有一种是不保存退出的命令:q ,注意:以上三种命令都是在非插入模式(插入模式下按 键盘左上角的ESC键退出插入模式就是非插入模式了)下操作。
出现如下命令,则代表安装成功
7. 安装zookeeper
-
上传解压
-
cd conf
cp zoo_sample.cfg zoo.cfg -
添加以下内容
# 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
-
新建两个目录:mkdir -p /tmp/zookeeper/data mkdir -p /tmp/zookeeper/log
-
在/tmp/zookeeper/data下创建一个myid文件,并写入一个数值,例如0,标示该服务器的编号
-
启动服务:zkServer.sh start 查看状态:zkServer.sh status
-
如果是集群模式:
需要在每台机器的/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
-
上传解压
-
配置环境变量
-
修改配置文件
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,是错误的 -
启动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)都可以测试
-
关闭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
-
下载插件:wget https://github.com/mobz/elasticsearch-head/archive/master.zip
-
由于运行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 -
增加以下配置
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
-
修改完保存并:source /etc/profile
-
这里遇到了大坑啊,由于ES启动时不建议用root账户的所以我直接用其他的账户登录之后修改,但是不让改没权限,然后我就切换到root修改也source 了,但是在切换回其他账户的时候
echo $NODE_HOME
死活是空的,我就纳闷了,在看也修改了,这里就埋下了坑,就直接说解决方案吧,哭死了,必须在用当前账户在 source /etc/profile一次才行 -
echo $NODE_HOME
就会输出配置的信息
9.3. 安装grunt
-
接下来解压下载的master.zip,进入下载的elasticsearch-head-master
-
执行
[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 -
输出版本说明成功
修改head插件源码:
修改服务器监听地址:Gruntfile.js
修改修改连接地址:_site/app.js
-
在elasticsearch-head-master目录下
[root@localnode1 elasticsearch-head]# npm install
[root@localnode1 elasticsearch-head]# grunt server
启动成功就可以访问127.0.0.1:9100就可以看到如下界面
当然是只有一个节点信息的,具体界面操作就自行学习吧这样启动三个节点之后就能在head中看到如下界面
9.4. 安装IKanalyzer插件
-
获取ES-Ikanalyzer
注意:一定要和ES的版本一致
地址:Releases · medcl/elasticsearch-analysis-ik · GitHub -
安装插件
将 ik 的压缩包解压到 ES安装目录的plugins/目录下(最好把解出的目录名改一下,防止安装别的插件时同名冲突),然后重启ES。
-
扩展词库
扩展词典可以修改配置文件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>
-
测试
- 创建一个索引
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 }, ...
- standard分词器把中文都拆分成了单个字。IK分词器拆分成了字和词语。
- 创建一个索引
9.5. 安装Kibana
-
下载解压安装包,一定要装与ES相同的版本(下载旧版本需要点击 past releases)
下载地址:https://www.elastic.co/cn/downloads/kibana
-
解压并配置
到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文件内部的注释说明。
-
启动
./bin/kibana
成功启动后,可以访问:http:// 192.168.252.129:5601来访问kibana,ip为kibana安装节点ip,端口默认为5601,可以在config/kibana.yml中配置 -
Kibana使用:https://blog.csdn.net/cb2474600377/article/details/78963247
更多推荐
所有评论(0)