工作日志
【基于ELK搭建日志分析系统】- Kibana安装

下载与ES对应的版本:官网地址解压修改$KIBANA_HOME/config/kibana.yml文件启动Kibana:sudo$KIBANA_HOME/bin/kibana浏览器输入host:5601能正常打开页面即可KAAE插件安装KAAE为Kibana的插件,主要用来监控和报警,用户可以根据需求配置相应的监控条件,达到某个条件会发出报警消息,同时KAAE也提供有报告Report功能,能够将查询到的结果生成图表发送到指定邮箱。安装:$KIBANA_HOME/bin/kibana-pulgininstallhttps://github.com/sirensolutions/sentinl/releases/download/tag-6.2.3-3/sentinl-v6.2.4.zip配置kibana.yml文件,在最后加上:重启Kibana后,浏览器输入:http://ip:5601出现以下界面说明插件安装成功可以在页面上按照需求配置监听报警

工作日志
FastDFS服务器迁移

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状态

个人随笔
Vue + SpringBoot实现WebSocket通信

Vue+SpringBoot实现WebSocket通信服务端在SpringBoot项目中添加ServerEndpointExporterBean的方法@BeanpublicServerEndpointExporterexporter(){returnnewServerEndpointExporter();}创建WebSocket客户端管理类:WebSocketComponent.javapackagecn.coralcloud.blog.web.component;importcom.alibaba.fastjson.JSON;importorg.springframework.stereotype.Component;importjavax.websocket.*;importjavax.websocket.server.ServerEndpoint;importjava.io.IOException;importjava.util.Objects;importjava.util.concurrent.CopyOnWriteArraySet;/**@authorgeff@nameWebSocketComponent@description@date2019-12-1814:22/@ServerEndpoint(value="/websocket")@ComponentpublicclassWebSocketComponent{/**静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。/privatestaticintonlineCount=0;/**concurrent包的线程安全Set,用来存放每个客户端对应的CumWebSocket对象。/privatestaticCopyOnWriteArraySetwebSocketSet=newCopyOnWriteArraySet<>();/**与某个客户端的连接会话,需要通过它来给客户端发送数据/privateSessionsession;/**连接建立成功调用的方法@paramsessionsession/@OnOpenpublicvoidonOpen(Sessionsession){this.session=session;//加入set中webSocketSet.add(this);//添加在线人数addOnlineCount();System.out.println("新连接接入。当前在线人数为:"+getOnlineCount());}/**连接关闭调用的方法/@OnClosepublicvoidonClose(){//从set中删除webSocketSet.remove(this);//在线数减1subOnlineCount();System.out.println("有连接关闭。当前在线人数为:"+getOnlineCount());}/**收到客户端消息后调用@parammessagemessage@paramsessionsession/@OnMessagepublicvoidonMessage(Stringmessage,Sessionsession){System.out.println("客户端发送的消息:"+message);sendAll(JSON.toJSONString(messageDTO),session.getId());}/**群发@parammessagemessage/privatestaticvoidsendAll(Stringmessage,StringsessionId){webSocketSet.forEach(item->{if(!item.session.getId().equals(sessionId)){//群发try{item.sendMessage(message);}catch(IOExceptione){e.printStackTrace();}}});}/**发生错误时调用@paramsessionsession@paramerrorerror/@OnErrorpublicvoidonError(Sessionsession,Throwableerror){System.out.println("----websocket-------有异常啦");error.printStackTrace();}/**减少在线人数/privatevoidsubOnlineCount(){WebSocketComponent.onlineCount--;}/**添加在线人数/privatevoidaddOnlineCount(){WebSocketComponent.onlineCount++;}/**当前在线人数@returnint/publicstaticsynchronizedintgetOnlineCount(){returnonlineCount;}/**发送信息@parammessagemessagethrowsIOException/publicvoidsendMessage(Stringmessage)throwsIOException{//获取session远程基本连接发送文本消息this.session.getBasicRemote().sendText(message);//this.session.getAsyncRemote().sendText(message);}@Overridepublicbooleanequals(Objecto){if(this==o){returntrue;}if(o==null||getClass()!=o.getClass()){returnfalse;}WebSocketComponentthat=(WebSocketComponent)o;returnObjects.equals(session,that.session);}@OverridepublicinthashCode(){returnObjects.hash(session);}}@ServerEndpoint注解标识当前WebSocket服务端endpoint地址,本文实际前端访问的ws地址为:ws://localhost:8080/websocket。至此,服务端工作完成。页面VUE端<template><el-cardv-loading="loading"element-loading-spinner="el-icon-loading":body-style="{padding:'5px',backgroundColor:'#eee'}"class="socket-box"shadow="hover"><divclass="socket-box__content":style="{height:(boxHeight-125)+'px'}"id="socket-content"><divv-if="hasMore"@click="loadMore"class="load-more"><span>加载更多</span></div><divv-elsestyle="width:100%;text-align:center;font-size:12px">没有更多了</div><divclass="item"v-for="minmessages":class="checkMe(m)?'sender':''"><divclass="slide"><divclass="avatar":style="{background:m.background}">{{m.name.substring(0,1)}}</div><divclass="meta"><divclass="name">{{m.name}}</div><divclass="date">{{m.createTime|datetime}}</div></div></div><p>{{m.content}}</p></div></div><divclass="socket-box__footer"><el-form@submit.native.prevent><el-form-item><el-inputtype="textarea"resize="none":rows="3":disabled="!connect":placeholder="connect?'输入内容...':'当前连接断开,请刷新重试!'":clearable="true"v-model="message"@keydown.native.enter="submitMsgForm"></el-input></el-form-item><el-form-item><el-button@click="sendMsg(message)":disabled="!connect"style="width:100%"type="primary"size="small">发送(Enter)</el-button></el-form-item></el-form></div></el-card></template><script>import{GET}from"@/api";exportdefault{name:"Chatroom",data(){return{messages:[],message:'',//boxHeight:document.documentElement.clientHeight-85,hasMore:true,pager:{pageNo:1,pageSize:10,total:0},loading:false,connect:false}},props:{boxHeight:{type:Number,required:true}},methods:{submitMsgForm(event){if(event.shiftKey){return;}event.preventDefault();this.sendMsg(this.message)},checkMe(message){letuser=localStorage.getItem("socketUser");if(user){user=JSON.parse(user);returnuser.uid===message.uid}else{returnfalse;}},initWebSocket:function(){this.websock=newWebSocket(`ws://localhost:8080/websocket`);this.websock.onopen=this.websocketonopen;this.websock.onerror=this.websocketonerror;this.websock.onmessage=this.websocketonmessage;this.websock.onclose=this.websocketclose;constthat=this;that.loading=true;GET({url:'/api/personal/web/message/socketData?pageNo=1',callback:res=>{if(res.code===200){that.messages=res.data.messages;that.hasMore=res.data.messages.length===that.pager.pageSize;that.$nextTick(function(){document.getElementById("socket-content").scroll({top:document.getElementById("socket-content").scrollHeight,left:0,behavior:'smooth'})})}that.loading=false}})},sendMsg(data){if(/^\s*$/.test(data)){this.message='';return;}//发送时传入JSON(UID,昵称,内容)constlocal=localStorage.getItem("socketUser");if(local){constl=JSON.parse(local);this.send(l,data)}else{//弹框this.$prompt('首次发表,请输入昵称','提示',{confirmButtonText:'确定',cancelButtonText:'取消',}).then(({value})=>{//随机生成UIDconstuid=this.randomVideoUuid(32,16);constform={uid:uid,name:value,background:`rgb(${Math.random()*255},${Math.random()*255},${Math.random()*255})`};localStorage.setItem("socketUser",JSON.stringify(form));this.send(form,data)}).catch(()=>{this.$message({type:'info',message:'取消输入'});});}},send(obj,data){obj.content=data;obj.createTime=newDate().getTime();this.websock.send(JSON.stringify(obj));this.message='';this.messages.push(obj);this.$nextTick(function(){document.getElementById("socket-content").scroll({top:document.getElementById("socket-content").scrollHeight,left:0,behavior:'smooth'})})},loadMore(){this.loading=true;constthat=this;if(this.hasMore){this.pager.pageNo+=1;GET({url:'/api/personal/web/message/socketData?pageNo='+this.pager.pageNo,callback:res=>{if(res.code===200){that.messages=[...res.data.messages,...that.messages];that.hasMore=res.data.messages.length>=that.pager.pageSize;}that.loading=false;}})}},websocketonopen:function(e){console.log("WebSocket连接成功",e);this.connect=true;},websocketonerror:function(e){console.log("WebSocket连接发生错误");this.connect=false;},websocketonmessage:function(e){constda=JSON.parse(e.data);this.messages.push(da);this.$nextTick(function(){document.getElementById("socket-content").scroll({top:document.getElementById("socket-content").scrollHeight,left:0,behavior:'smooth'})})},websocketclose:function(e){console.log("connectionclosed("+e.code+")");},randomVideoUuid(len,radix){letchars='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');letuuid=[];radix=radix||chars.length;if(len){for(leti=0;i<len;i++)uuid[i]=chars[0|Math.random()*radix];}else{letr;uuid[8]=uuid[13]=uuid[18]=uuid[23]='-';uuid[14]='4';for(leti=0;i<36;i++){if(!uuid[i]){r=0|Math.random()*16;uuid[i]=chars[(i===19)?(r&0x3)|0x8:r];}}}returnuuid.join('');},},mounted(){this.initWebSocket();}}</script>本段代码为简单的Vue实现的网页聊天室代码,其中@/api为自己简单封装的JS函数,用户初次进入页面时会生成一个随机UID保存到localStorage中,在mounted周期中初始化websocket连接。本聊天室最终效果地址:https://web.coralcloud.cn/blog/message

开发项目专栏
SpringBoot+Thymleaf项目初入(二) - 配置基础页面访问

1.建基础包/文件夹2.application.propertis编写application.propertis基础配置和数据库连接3.index.ftl注:在index.ftl页面可以输入感叹号!,然后按tab键一键生成HTML代码4.IndexController.java5.启动服务启动服务,后再浏览器输入http://localhost:8080,是否能成功访问:

个人随笔
WebStorm破解激活

下载破解文件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生效.

Java开发
SpringBoot框架之@Controller和@RestController的区别?

1.@RestController注解相当于@ResponseBody+@Controller合在一起的作用。2.如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return里的内容。3.如果需要返回到指定页面,则需要用@Controller配合视图解析器InternalResourceViewResolver才行。4.如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。)

Tags: JAVA
大数据开发
CentOS7安装CDH5

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解决检查全部通过,点击继续,进入集群设置,选择自定义服务,可以根据自己需要配置安装相应的服务:根据自己的需要进行修改配置:数据库配置:开始安装启动相应组件:等待集群配置安装完成!注意:倘若过程中图形化安装过程中失误导致安装失败,需要重新图形化安装:

工作日志
【基于ELK搭建日志分析系统】- FileBeat安装

采集节点主要安装Filebeat组件即可,Filebeat可以很简单运行在Windows/Linux操作系统上,不需要其余环境。下载Filebeat压缩包:https://www.elastic.co/downloads/past-releases/filebeat-6-2-4根据操作系统选择对应的版本下载解压修改目录下filebeat.yml文件,具体配置下图:上图为filebeat的输入端配置,指定监听文件上图为filebeat的输出端配置,指定输出到本机的Logstash中Filebeat启动(cd$FILEBEAT_HOME):./filebeat-e-cfilebeat.yml后台启动可使用nohup命令nohup./filebeat-e-cfilebeat.yml-d"publish">logs/filebeat.log2>&1&

个人随笔
Centos7安装Redis

一、安装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

大数据开发
Centos安装ApacheHadoop2.7.7

Centos安装ApacheHadoop2.7.7准备文件:hadoop-2.7.7.tar.gz一、安装JDK安装Hadoop之前需要保证JDK8成功安装java-version二、上传Hadoop压缩包上传成功后解压文件:tar-zxvfhadoop-2.7.7.tar.gz假设解压后的Hadoop目录为:/home/hadoop/hadoop-2.7.7注意配置HADOOP_HOME环境变量exportHADOOP_HOME=/home/hadoop/hadoop-2.7.7exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin三、配置服务器免密登录$ssh-keygen-trsa-P''-f~/.ssh/id_rsa$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys$chmod0600~/.ssh/authorized_keys执行完成后:sshmaster命令则能够跳过输入密码阶段直接连接四、修改配置==配置文件所在位置:$HADOOP_HOME/etc/hadoop==core-size.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property></configuration>hdfs-size.xml<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>mapred-site.xml<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.application.classpath</name><value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value></property></configuration>yarn-site.xml<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>五、启动初始化HDFShdfsnamenode-format启动HDFSstart-dfs.sh启动YARNstart-yarn.sh启动成功后访问http://master:50070查看HDFS状态六、相关命令start-dfs.sh启动HDFS(namenode/datanode/SecondaryNamenode)stop-dfs.sh停止HDFSstart-yarn.sh启动Yarnstop-yarn.sh停止Yarnstart-all.sh启动HDFS和Yarnstop-all.sh停止HDFS和Yarn