存储集群应与业务服务器不在同一台机器,此处搭建ES存储集群使用单节点的方式。ES集群机器需要实现安装配置好JAVA_HOME环境变量。安装配置下载,版本应与filebeat版本一致:官网地址解压修改elasticsearch.yml配置文件:其中cluster.name避免使用默认名称,各节点中配置为相同的名称,ES就会自动搜索加入启动elasticsearch:==ES集群启动不允许使用root账户==,所以应该先创建一个用户,使用新创建的用户启动elasticsearchgroupaddelkuseradd-gelkelkpasswdelk#创建elk用户密码chown-Relk:elk$ELASTICSEARCH_HOMEsuelk$ELASTICSEARCH_HOME/bin/elasticsearch-d#后台启动ES启动完成后测试,浏览器输入http://host:9200测试,有如下结果则为正常:问题解决启动elasticsearch时出现:elasticsearch:which:nojavain(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)[解决]在$ES_HOME/config/elasticsearch文件中加入以下配置:JAVA_HOME=/usr/local/jdk1.8maxnumberofthreads[1024]foruser[elk]likelytoolow,increasetoatleast[2048].[解决]切换到root用户,进入limits.d目录下修改配置文件:vi/etc/security/limits.d/90-nproc.conf找到并修改为softnproc2048hardnproc4096maxfiledescriptors[4096]forelasticsearchprocesslikelytoolow,increasetoatleast[65536][解决]切换到root用户,进入limits.d目录下修改配置文件。vi/etc/security/limits.d/90-nproc.conf找到并修改为softnofile65536hardnofile131072maxvirtualmemoryareasvm.max_map_count[65530]likelytoolow,increasetoatleast[262144][解决]修改:vim/etc/sysctl.conf添加下面配置:vm.max_map_count=655360并执行命令:sysctl-p
下载破解文件JetbrainsIdesCrack-3.4.jar将下载的文件复制到WebStorm安装文件夹下的bin文件夹下(在桌面上WebStorm快捷方式上右键【打开文件所在的位置】可直接进入)双击打开WebStorm进入激活页面,点选【Evaluateforfree】试用30天,进入应用界面在菜单【Help】->【EditcustomVMoptions..】点击打开配置文件.在配置文件最下方加入一行:-javaagent:D:\software\WebStorm2019.1.3\bin\JetbrainsIdesCrack-3.4.jar这里的文件路径具体指向到刚才复制的破解文件路径下在菜单【Help】->【Register...】点击打开激活页面,选择【licenseserver】激活方式,在下面输入框中填写:https://fls.jetbrains-agent.com点击【Activate】激活后,重启WebStorm生效.
1.@Component,@Service,@Controller,@Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理2.@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能3.如果想使用自定义的组件注解,那么只要在你定义的新注解中加上@Component即可:4.@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。5.@Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。6.@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。7.用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。
一、安装Redis1.下载Rediswgethttp://download.redis.io/releases/redis-4.0.6.tar.gz2.解压tar-zxvfredis-4.0.6.tar.gz3.yum安装gccyuminstall-ygcc4.编译安装rediscdredis-4.0.6makeMALLOC=libccdsrc&&makeinstall二、启动Redis1.在/etc目录下新建redis目录mkdir-p/etc/redis2.将/usr/local/redis-4.0.6/redis.conf文件复制一份到/etc/redis目录下,并命名为6379.confcp/usr/local/redis-4.0.6/redis.conf/etc/redis/6379.conf3.将redis的启动脚本复制一份放到/etc/init.d目录下cp/usr/local/redis-4.0.6/utils/redis_init_script/etc/init.d/redisd4.设置redis开机自启动cd/etc/init.dchkconfigredisdonserviceredisddoesnotsupportchkconfig看结果是redisd不支持chkconfig,编辑redisd文件,加入如下注释:#chkconfig:23459010#description:Redisisapersistentkey-valuedatabasechkconfigredisdon启动redis:serviceredisdstart停止redis:serviceredisdstop
1.建基础包/文件夹2.application.propertis编写application.propertis基础配置和数据库连接3.index.ftl注:在index.ftl页面可以输入感叹号!,然后按tab键一键生成HTML代码4.IndexController.java5.启动服务启动服务,后再浏览器输入http://localhost:8080,是否能成功访问:
1.@RestController注解相当于@ResponseBody+@Controller合在一起的作用。2.如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return里的内容。3.如果需要返回到指定页面,则需要用@Controller配合视图解析器InternalResourceViewResolver才行。4.如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。)
CentOS7的ClouderaManager5.8安装系统要求http://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_cm_requirements.html内存(最低要求):主机4G节点2G相关包下载:ClouderaManager下载地址:http://archive.cloudera.com/cm5/cm/5/选择cloudera-manager-centos7-cm5.8.0_x86_64.tar.gzCDH5下载地址:http://archive.cloudera.com/cdh5/parcels/5/选择以下三个文件:CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcelCDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha1(下载后重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha)manifest.jsonJDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads选择最新的JDKrpm包cmagent与cmdaemons下载地址:http://archive-primary.cloudera.com/cm5/redhat/7/x86_64/cm/5.8/RPMS/x86_64/选择以下两个文件:cloudera-manager-agent-5.8.1-1.cm581.p0.7.el7.x86_64.rpmcloudera-manager-daemons-5.8.1-1.cm581.p0.7.el7.x86_64.rpmMysqlJDBC驱动下载地址:http://dev.mysql.com/downloads/connector/j/选择mysql-connector-java-5.1.45.tar.gz准备工作:系统环境搭建++以下操作均用root用户操作++1.网络配置(所有节点)vi/etc/sysconfig/network修改hostname:NETWORKING=yesHOSTNAME=master通过servicenetworkrestart重启网络服务生效。vi/etc/hosts修改ip与主机名的对应关系192.168.1.101master192.168.1.102slave1192.168.1.103slave2192.168.1.104slave3注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。2.打通SSH,设置ssh无密码登陆(所有节点)在主节点上执行ssh-keygen-trsa一路回车,生成无密码的密钥对。将公钥添加到认证文件中:Cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys并设置authorized_keys的访问权限:chmod600~/.ssh/authorized_keysscp文件到所有datenode节点:scp~/.ssh/authorized_keysroot@slave1:~/.ssh/scp~/.ssh/authorized_keysroot@slave2:~/.ssh/scp~/.ssh/authorized_keysroot@slave3:~/.ssh/在主节点上sshslave1,正常情况下,不需要密码就能直接登陆进去了。3.安装Oracle的Java(所有节点)CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java7的支持。卸载自带的OpenJdk,使用rpm-qa|grepjava查询java相关的包,使用rpm-e--nodeps包名卸载之。去Oracle的官网下载jdk的rpm安装包,并使用rpm-ivh包名安装之。由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:echo"JAVA_HOME=/usr/java/latest/">>/etc/environment4.安装配置MySql(主节点)通过yuminstallmysql-server安装mysql服务器。chkconfigmysqldon设置开机启动,并servicemysqldstart启动mysql服务,并根据提示设置root的初试密码:mysqladmin-urootpassword'123456'mysql-uroot-p123456进入mysql命令行,创建以下数据库:#hivecreatedatabasehiveDEFAULTCHARSETutf8COLLATEutf8_general_ci;#activitymonitorcreatedatabaseamonDEFAULTCHARSETutf8COLLATEutf8_general_ci;设置root授权访问以上所有的数据库:#授权root用户在主节点拥有所有数据库的访问权限grantallprivilegeson*.*to'root'@'master'identifiedby'123456'withgrantoption;flushprivileges;5.关闭防火墙和SELinux注意:需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。关闭防火墙:serviceiptablesstop(临时关闭)chkconfigiptablesoff(重启后生效)关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):setenforce0(临时生效)修改/etc/selinux/config下的SELINUX=disabled(重启后永久生效)CentOS7.0systemctlstopfirewalld.service#停止firewallsystemctldisablefirewalld.service#禁止firewall开机启动6.所有节点配置NTP服务集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。具体思路如下:master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。所有datanode节点以master节点为基础同步时间。所有节点安装相关组件:yuminstallntp。完成后,配置开机启动:chkconfigntpdon,检查是否设置成功:chkconfig--listntpd其中2-5为on状态就代表成功。centos7:systemctlenablentpdsystemctlis-enabledntpd1.主节点配置位置/etc/ntp.conf在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用65.55.56.206作为对时中心,ntpdate-u65.55.56.206。ntp服务只有一个配置文件,配置好了就OK。这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:driftfile/var/lib/ntp/driftrestrict127.0.0.1restrict-6::1restrictdefaultnomodifynotrapservercn.ntp.org.cnpreferincludefile/etc/ntp/crypto/pwkeys/etc/ntp/keys配置文件完成,保存退出,启动服务,执行如下命令:1servicentpdstart2ntpstat检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:synchronisedtoNTPserver()atstratum2timecorrecttowithin74mspollingserverevery128s如果出现异常请等待几分钟,一般等待5-10分钟才能同步。配置ntp客户端(所有datanode节点)driftfile/var/lib/ntp/driftrestrict127.0.0.1restrict-6::1restrictdefaultkodnomodifynotrapnopeernoqueryrestrict-6defaultkodnomodifynotrapnopeernoquery#这里是主节点的主机名或者ipservermasterincludefile/etc/ntp/crypto/pwkeys/etc/ntp/keysok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:ntpdate-umaster(主节点ntp服务器)这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。启动服务:servicentpdstart因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿正式开工安装CMagent和CMDaemons安装先用scp将cmagent与cmdaemons复制到所有节点用yum进行安装:yum--nogpgchecklocalinstallcloudera-manager-agent-*.x86_64.rpmyum--nogpgchecklocalinstallcloudera-manager-daemons-*.x86_64.rpm安装ClouderaManagerServer和Agent主节点解压安装clouderamanager的目录默认位置在/opt下,解压:tarxzvfcloudera-manager*.tar.gz将解压后的cm-5.8.0和cloudera目录放到/opt目录下。为ClouderaManager5建立数据库:首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.45-bin.jar,放到/opt/cm-5.8.0/share/cmf/lib/中。在主节点初始化CM5的数据库:/opt/cm-5.8.0/share/cmf/schema/scm_prepare_database.shmysqlcm-hlocalhost-uroot-pxxxx--scm-hostlocalhostscmscmscmAgent配置修改/opt/cm-5.8.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。同步Agent到其他节点scp-r/opt/cm-5.8.0root@slave1:/opt/在所有节点创建cloudera-scm用户useradd--system--home=/opt/cm-5.8.0/run/cloudera-scm-server/--no-create-home--shell=/bin/false--comment"ClouderaSCMUser"cloudera-scm准备Parcels,用以安装CDH5将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo如果没有需要手动创建,)。相关的文件如下:CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcelCDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.shamanifest.json最后将CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.sha1,重命名为CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel文件。相关启动脚本通过/opt/cm-5.8.0/etc/init.d/cloudera-scm-serverstart启动服务端。通过/opt/cm-5.8.0/etc/init.d/cloudera-scm-agentstart启动Agent服务。注意:如果AGent启动失败,则手动创建一个cloudera-scm-agent文件夹:mkdir-p/opt/cm-5.8.0/run/cloudera-scm-agent/然后再使用命令启动agent我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。CDH5的安装配置ClouderaManagerServer和Agent都启动以后,就可以进行CDH5的安装配置了。这时可以通过浏览器访问主节点的7180端口测试一下了(由于CMServer的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:选择免费版本:指定集群主机:在搜索框中填写所有的集群的Hostname或者IP,搜索如果所有的主机的agent都启动成功则会有下图显示,没有则重新启动Agent,或者检查日志报错:如果parcel文件事先放在指定文件夹中,则会找到相应的版本:注:如果CDH的安装目录不在/opt下,则需要点击更多选项,修改parcel目录及本地parcel存储路径为正确的目录,然后重启agent和server即可点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。注意:在安装过程中如果一直卡在“正在激活”过程中,检查相应节点的/opt/cm-5.8.0/log/cloudera-scm-agent下的日志,如果出现connectionrefuse的错误信息。则可以通过将已完成激活的主机上的parcels文件夹用scp命令复制到出问题的agent相应位置上,再在parcels文件夹下创建一个快捷方式:ln-sCDHCDH-5.8.0-1.cdh5.8.0.p0.42/然后分配就完成了。Cloudera建议将/proc/sys/vm/swappiness设置为10。当前设置为60。使用sysctl命令在运行时更改该设置并编辑/etc/sysctl.conf以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,ClouderaManager报告您的主机由于交换运行状况不佳。以下主机受到影响通过echo10>/proc/sys/vm/swappiness即可解决。已启用透明大页面压缩,可能会导致重大性能问题。请运行“echonever>/sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到/etc/rc.local等初始脚本中,以便在系统重启时予以设置。通过echonever>/sys/kernel/mm/transparent_hugepage/defrag解决检查全部通过,点击继续,进入集群设置,选择自定义服务,可以根据自己需要配置安装相应的服务:根据自己的需要进行修改配置:数据库配置:开始安装启动相应组件:等待集群配置安装完成!注意:倘若过程中图形化安装过程中失误导致安装失败,需要重新图形化安装:
一、FastDFS介绍1.1介绍FastDFS是一个C语言实现的开源轻量级分布式文件系统,支持Linux、FreeBSD、AID等Unix系统,解决了大数据存储和读写负载均衡等问题,适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用,其中UC基于FastDFS向用户提供网盘、广告和应用下载的业务的存储服务FastDFS与MogileFS、HDFS、TFS等都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。1.2架构FastDFS服务有三个角色:跟踪服务器(TrackerServer)、存储服务器(storageserver)和客户端(client)TrackerServer:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storageserver和group,每个storage在启动后会连接Tracker,告知自己所属group等信息,并保持周期性心跳,Tracker根据storage心跳信息,建立group--->[storageserverlist]的映射表;tracker管理的元数据很少,会直接存放在内存;tracker上的元信息都是由storage汇报的信息生成的,本身不需要持久化任何数据,tracker之间是对等关系,因此扩展tracker服务非常容易,之间增加tracker服务器即可,所有tracker都接受stroage心跳信息,生成元数据信息来提供读写服务(与其他Master-Slave架构的优势是没有单点,tracker也不会成为瓶颈,最终数据是和一个可用的StorageServer进行传输的)StorageServer:存储服务器,主要提供容量和备份服务;以group为单位,每个group内可以包含多台storageserver,数据互为备份,存储容量空间以group内容量最小的storage为准;建议group内的storageserver配置相同;以group为单位组织存储能够方便的进行应用隔离、负载均衡和副本数定制;缺点是group的容量受单机存储容量的限制,同时group内机器坏掉,数据恢复只能依赖group内其他机器重新同步(坏盘替换,重新挂载重启fdfs_storaged即可)1.3Group存储策略多个group之间的存储方式有3种策略:roundrobin(轮询)、loadbalance(选择最大剩余空间的组上传文件)、specifygroup(指定group上传)group中storage存储依赖本地文件系统,storage可配置多个数据存储目录,磁盘不做raid,直接分别挂载到多个目录,将这些目录配置为storage的数据目录即可storage接受写请求时,会根据配置好的规则,选择其中一个存储目录来存储文件;为避免单个目录下的文件过多,storage第一次启时,会在每个数据存储目录里创建2级子目录,每级256个,总共65536个,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中1.4工作流程1.4.1上传FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。StorageServer会定期的向TrackerServer发送自己的存储信息。当TrackerServerCluster中的TrackerServer不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker。当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storageserver。当分配好storageserver后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件。FastDFS上传时序图:1.4.2同步写文件时,客户端将文件写至group内一个storageserver即认为写文件成功,storageserver写完文件后,会由后台线程将文件同步至同group内其他的storageserver。每个storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步。storage的同步进度会作为元数据的一部分汇报到tracker上,tracke在选择读storage的时候会以同步进度作为参考。1.4.3下载客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件。跟uploadfile一样,在downloadfile时客户端可以选择任意trackerserver。tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。FastDFS下载时序图:二、FastDFS安装2.1下载安装libfastcommon下载libfastcommonwgethttps://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz解压tar-zxvfV1.0.38.tar.gzcdlibfastcommon-1.0.38编译安装./make.sh./make.shinstall2.2安装fastDFS下载wgethttps://github.com/happyfish100/fastdfs/archive/V5.10.tar.gz解压tar-zxvfV5.10.tar.gzcdfastdfs-5.10编译安装./make.sh./make.shinstallFastdfs的文件目录A、服务脚本:/etc/init.d/fdfs_storaged/etc/init.d/fdfs_trackerdB、配置文件模板:/etc/fdfs/client.conf.sample/etc/fdfs/storage.conf.sample/etc/fdfs/tracker.conf.sample2.3配置跟踪器(Tracker)进入/etc/fdfs,复制FastDFS跟踪器样例配置文件tracker.conf.sample,并重命名为tracker.conf。cd/etc/fdfscptracker.conf.sampletracker.confvimtracker.conf编辑tracker.conf,加粗的需要修改下,其它的默认即可。#配置文件是否不生效,false为生效disabled=false#提供服务的端口port=22122#Tracker数据和日志目录地址(根目录必须存在,子目录会自动创建)base_path=/home/data/fastdfs/trackerhttp.server_port=80创建tracker基础数据目录,即base_path对应的目录mkdir-p/home/data/fastdfs/tracker防火墙中打开跟踪端口(默认的22122)vim/etc/sysconfig/iptables最下面添加一行:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22122-jACCEPT重启iptables:serviceiptablesrestart启动Tracker初次成功启动,会在/home/data/fdfsdfs/tracker/(配置的base_path)下创建data、logs两个目录。可以用这种方式启动:/etc/init.d/fdfs_trackerdstartservicefdfs_trackerdstart查看FastDFSTracker是否已成功启动,22122端口正在被监听,则算是Tracker服务安装成功。netstat-unltp|grepfdfs关闭Tracker命令:servicefdfs_trackerdstop2.4配置存储(Storage)进入/etc/fdfs目录,复制FastDFS存储器样例配置文件storage.conf.sample,并重命名为storage.conf#cd/etc/fdfs#cpstorage.conf.samplestorage.conf#vimstorage.conf编辑storage.conf,加粗的需要修改,其它的默认即可。#配置文件是否不生效,false为生效disabled=false#指定此storageserver所在组(卷)group_name=group1#storageserver服务端口port=23000#心跳间隔时间,单位为秒(这里是指主动向trackerserver发送心跳)heart_beat_interval=30#Storage数据和日志目录地址(根目录必须存在,子目录会自动生成)base_path=/home/data/fastdfs/storage#存放文件时storageserver支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。store_path_count=1#逐一配置store_path_count个路径,索引号基于0。#如果不配置store_path0,那它就和base_path对应的路径一样。store_path0=/home/data/fastdfs/file#FastDFS存储文件时,采用了两级目录。这里配置存放文件的目录个数。#如果本参数只为N(如:256),那么storageserver在初次运行时,会在store_path下自动创建N*N个存放文件的子目录。subdir_count_per_path=256#tracker_server的列表,会主动连接tracker_server#有多个trackerserver时,每个trackerserver写一行tracker_server=192.168.1.161:22122#允许系统同步的时间段(默认是全天)。一般用于避免高峰同步产生一些问题而设定。sync_start_time=00:00sync_end_time=23:59#访问端口http.server_port=80创建Storage基础数据目录,对应base_path目录mkdir-p/home/data/fastdfs/storage这是配置的store_path0路径mkdir-p/home/data/fastdfs/file防火墙中打开存储器端口(默认的23000)vim/etc/sysconfig/iptables添加如下端口行:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport23000-jACCEPT重启防火墙:serviceiptablesrestart启动Storage启动Storage前确保Tracker是启动的。初次启动成功,会在/home/data/fastdfs/storage目录下创建data、logs两个目录。可以用这种方式启动/etc/init.d/fdfs_storagedstartservicefdfs_storagedstart查看Storage和Tracker是否在通信:/usr/bin/fdfs_monitor/etc/fdfs/storage.conf
1.在使用mybatis的动态sql时,有时候遇到根据条件判断添加where后面的筛选条件的情况,会出现多余的AND或者OR:2.使用where关键字:2.1当第一个参数为空时,拼接后的sql为:select*fromtdwhereandphone=.......;2.2当所有的参数都为空时,拼接后的sql为:select*fromtdwhere.....,显然这样的sql不是完整的sql,执行时会报错.3.使用where标签时:3.1当第一个参数为空时,拼接后的sql为:select*fromtdwherephone=......(若语句的开头为AND或者OR时,where元素会将他们去除).3.2当所有的参数都为空时,拼接后的sql为:select*fromtd.(where元素只会在至少有一个子元素的条件返回SQL子句的情况下才去插入“WHERE”子句)。
FastDFS服务器迁移1.1目标服务器安装FastDFS首先按照上一篇文章《FastDFS介绍和安装》搭建好新的FastDFS服务器(Tracker,Storage),先配置好不用启动1.2修改配置文件修改新的Storage配置文件/etc/fdfs/storage.conf将tracker_server的IP修改为旧的Tracker服务器IP1.3启动目标Storage进程,同步数据servicefdfs_storagedrestart查看同步进程,在旧tracker服务器执行:fdfs_monitor/etc/fdfs/client.conf可以看到同步状态:等待数据同步...ACTIVE标识表示数据已经同步完成数据同步完成后,停掉Storage服务servicefdfs_storagedstop1.4修改storage配置文件修改/etc/fdfs/storage.conf文件将tracker_server的IP修改为新的tracker服务器IP1.5修改.data_init_flag文件该文件所在位置为storage.conf文件中所配置的base_path路径后面的data路径下,如配置为/home/data/fastdfs/storage,则文件所在位置为/home/data/fastdfs/storage/data/下将文件中sync_src_server配置项留空,其它配置项不变sync_src_server=1.6启动进程启动新的storage服务器进程,启动新的tracker服务器进程,在新tracker服务器下fdfs_monitor/etc/fdfs/client.conf查看Storage状态
- SpringBoot+Thymleaf项目初入(五) - 图片验证码
- SpringBoot+Thymleaf项目初入(四) - 用户登录页面优化
- SpringBoot+Thymleaf项目初入(三) - 用户登录
- SpringBoot+Thymleaf项目初入(二) - 配置基础页面访问
- SpringBoot+Thymleaf项目初入(一) - 基础项目搭建
- MyBatis之where关键字与<where>标签的区别
- 文件上传之@RequestParam与@RequestPart
- Spring注解之@Component
- SpringBoot框架之@Controller和@RestController的区别?
- Centos安装ApacheHadoop2.7.7