首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

memcached演练(1) 搭建memcached服务

memcached已经火了好多年了,现在网上关于memcached的资源相当多了,我就不浪费话语了。干脆写一个实战系列,坚持一切用实施说话。 环境介绍 Linux虚拟机 内核信息 [root@hadoop1 ~]# uname -a Linux hadoop1 2.6.32-358.el6.i686 内存:1G 安装过程 1.准备编译环境,安装必须的gcc,make工具,如果没有安装yum,最好安装下。网上有很多共享的yum源。 2.下载最新版本的libevent 1 #wgethttps://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz 3.解压libevent对应压缩包 1 #tarzxvflibevent-2.0.22-stable.tar.gz 解压之后的文件路径:/u01/software/libevent-2.0.22-stable 3.编译libevent 1 2 3 4 5 6 $ cd /u01/software/libevent-2 .0.22-stable $. /configure -prefix= /usr/local/libevent $ make $ make install 确认安装结果 $ ls -al /usr/local/lib | grep libevent 4.下载最新版本的memcached 1 $wgethttp: //memcached .org /latest 5.解压memcached对应压缩包 1 $ tar zxvfmemcached-1.4.29. tar .gz 解压之后的文件路径:/u01/software/memcached-1.4.29 6.编译memcached 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 $ cd /u01/software/memcached-1 .4.29 $[root@hadoop1memcached-1.4.29] #./configure-help `configure'configuresmemcached1.4.29toadapttomanykindsofsystems. Usage:. /configure [OPTION]...[VAR=VALUE]... Configuration: -h,--helpdisplaythishelpand exit --help=shortdisplayoptionsspecifictothispackage --help=recursivedisplaytheshorthelpofalltheincludedpackages -V,--versiondisplayversioninformationand exit -q,--quiet,--silent do notprint`checking...'messages --cache- file =FILEcache test results in FILE[disabled] -C,--config-cache alias for `--cache- file =config.cache' -n,--no-create do notcreateoutputfiles --srcdir=DIR find thesources in DIR[configure dir or`..'] Installationdirectories: --prefix=PREFIX install architecture-independentfiles in PREFIX [ /usr/local ] ... Finetuningoftheinstallationdirectories: --bindir=DIRuserexecutables[EPREFIX /bin ] --sbindir=DIRsystemadminexecutables[EPREFIX /sbin ] --libexecdir=DIRprogramexecutables[EPREFIX /libexec ] --sysconfdir=DIR read -onlysingle-machinedata[PREFIX /etc ] --sharedstatedir=DIRmodifiablearchitecture-independentdata[PREFIX /com ] --localstatedir=DIRmodifiablesingle-machinedata[PREFIX /var ] --libdir=DIRobjectcodelibraries[EPREFIX /lib ] --includedir=DIRCheaderfiles[PREFIX /include ] --oldincludedir=DIRCheaderfiles for non-gcc[ /usr/include ] --datarootdir=DIR read -onlyarch.-independentdataroot[PREFIX /share ] --datadir=DIR read -onlyarchitecture-independentdata[DATAROOTDIR] --infodir=DIRinfodocumentation[DATAROOTDIR /info ] --localedir=DIRlocale-dependentdata[DATAROOTDIR /locale ] --mandir=DIR man documentation[DATAROOTDIR /man ] --docdir=DIRdocumentationroot[DATAROOTDIR /doc/memcached ] --htmldir=DIRhtmldocumentation[DOCDIR] --dvidir=DIRdvidocumentation[DOCDIR] --pdfdir=DIRpdfdocumentation[DOCDIR] --psdir=DIR ps documentation[DOCDIR] OptionalPackages: --with-PACKAGE[=ARG]usePACKAGE[ARG= yes ] --without-PACKAGE do notusePACKAGE(sameas--with-PACKAGE=no) --with-libevent=PATHSpecifypathtolibeventinstallation #./configure--prefix=/usr/local/memcached--with-libevent=/usr/local/lib/ #make #makeinstall 这时候memcached安装成功了 启动memcached 1 $ /usr/local/memcached/bin/memcached 报错 error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory 解决思路 ##跟踪运行memcached所有加载库文件的路径 1 2 3 4 5 6 7 8 9 10 11 12 13 $LD_DEBUG=libsLD_DEBUG=libs. /memcached - v 15862: find library=libevent-2.0.so.5[0];searching 15862:searchcache= /etc/ld .so.cache 15862:searchpath= /lib/tls/i686/sse2 : /lib/tls/i686 : /lib/tls/sse2 : /lib/tls : /lib/i686/sse2 : /lib/i686 : /lib/sse2 : /lib : /usr/lib/tls/i686/sse2 : /usr/lib/tls/i686 : /usr/lib/tls/sse2 : /usr/lib/tls : /usr/lib/i686/sse2 : /usr/lib/i686 : /usr/lib/sse2 : /usr/lib (systemsearchpath) 15862:trying file = /lib/tls/i686/sse2/libevent-2 .0.so.5 15862:trying file = /lib/tls/i686/libevent-2 .0.so.5 15862:trying file = /lib/tls/sse2/libevent-2 .0.so.5 15862:trying file = /lib/tls/libevent-2 .0.so.5 15862:trying file = /lib/i686/sse2/libevent-2 .0.so.5 15862:trying file = /lib/i686/libevent-2 .0.so.5 15862:trying file = /lib/sse2/libevent-2 .0.so.5 15862:trying file = /lib/libevent-2 .0.so.5 ... 首先确认建立软连接 1 2 3 4 $ ls /usr/local/lib/libevent-2 .0.so.5 /usr/local/lib/libevent-2 .0.so.5 $ ln -s /usr/local/lib/libevent-2 .0.so.5 /usr/lib/i686/libevent-2 .0.so.5 如果以root用户登陆,必须指定-u参数 1 $ /usr/local/memcached/bin/memcached -uhadoop 确认memcached是否启动成功 1 2 3 4 5 6 $ ps -ef| grep memcached hadoop158914034022:45pts /4 00:00:00 /usr/local/memcached/bin/memcached -uhadoop root1589915561022:45pts /5 00:00:00 grep memcached #netstat-tlnp|grepmemcached tcp000.0.0.0:112110.0.0.0:*LISTEN15891 /memcached tcp00:::11211:::*LISTEN15891 /memcached 最后telnet 确认下 1 2 3 4 5 6 7 8 $telnet127.0.0.111211 Trying127.0.0.1... Connectedto127.0.0.1. Escapecharacteris '^]' . stats STATpid15891 STATuptime86 STAT time 1470494793 OK。至此memcached1.4.9版本已经成功在机器上安装。个人感觉最麻烦的地方,就是处理libevent。 参考了很多资源,才把问题解决。 memcached设置自启动 为了方便,现将memcached执行变更下权限 最简单的启动方式 只需在/etc/rc.d/rc.local中加入一行 /usr/local/memcached/bin/memcached -d -m 20 -p 11211 -u hadoop 注意 -d:设置为后台进程 -u:指向用户 -p:端口 -m:内存 推荐的方式 2.1.拷贝memcached源码包的memcached.sysv拷贝到/etc/init.d,做为memcached的启动脚本 1 $ cp /u01/software/memcached-1 .4.29 /scripts/memcached .sysv /etc/init .d /memcached 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [root@hadoop1bin] #vi/etc/init.d/memcached #!/bin/sh # #chkconfig:-5545 #description:Thememcacheddaemonisanetworkmemorycacheservice. #processname:memcached #config:/etc/sysconfig/memcached #Sourcefunctionlibrary. . /etc/rc .d /init .d /functions PORT=11211 USER=nobody MAXCONN=1024 CACHESIZE=64 OPTIONS= "" if [-f /etc/sysconfig/memcached ]; then . /etc/sysconfig/memcached fi #Checkthatnetworkingisup. if [ "$NETWORKING" = "no" ] then exit 0 fi RETVAL=0 prog= "memcached" start(){ echo -n$ "Starting$prog:" #insurethat/var/run/memcachedhasproperpermissions chown $USER /var/run/memcached daemonmemcached-d-p$PORT-u$USER-m$CACHESIZE-c$MAXCONN-P /var/run/memcached/memcached .pid$OPTIONS RETVAL=$? echo [$RETVAL- eq 0]&& touch /var/lock/subsys/memcached } stop(){ echo -n$ "Stopping$prog:" killprocmemcached RETVAL=$? echo if [$RETVAL- eq 0]; then rm -f /var/lock/subsys/memcached rm -f /var/run/memcached/memcached .pid fi } restart(){ stop start } #Seehowwewerecalled. case "$1" in start) start ;; stop) stop ;; status) statusmemcached ;; restart|reload) restart ;; condrestart) [-f /var/lock/subsys/memcached ]&&restart||: ;; *) echo $ "Usage:$0{start|stop|status|restart|reload|condrestart}" exit 1 esac exit $? 修改下面这一句(其实就将memcached 命令指向咱们的全路径) daemonmemcached-d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS daemon/usr/local/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS 配置自启动 1 2 3 [root@hadoop1bin]$chkconfigmemcachedon [root@hadoop1bin]$chkconfig| grep memcached memcached0:off1:off2:on3:on4:on5:on6:off 安装nc 1 [root@hadoop1yum.repos.d]$yum install nc memcached 自带的stats命令,对搜索不太友好。为了很好的搜索,借助nc工具。 比如,想查找connection相关的参数 1 2 3 4 [root@hadoop1yum.repos.d] #echostats|nc127.0.0.111211|grepconnection STATcurr_connections10 STATtotal_connections13 STATconnection_structures11 配合nc使用形式,个人参考网上资源,简单罗列下 1 2 3 watch "echostats|nc127.0.0.111211" printf "stats\r\n" |nc127.0.0.111211 echo stats|nc127.0.0.111211 ------------------------------------------------------------ The End 接下来,演练的内容是通过telnet命令行和JAVA 客户端工具,访问memcachd. 本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/1835163,如需转载请自行联系原作者

优秀的个人博客,低调大师

搭建部署Hadoop 之Yarn

Yarn集群资源管理系统 Yarn 角色及概念 •Yarn 是 Hadoop 的一个通用的资源管理系统 • Yarn 角色 – Resourcemanager – Nodemanager – ApplicationMaster – Container – Client • ResourceManager – 处理客户端请求 – 启动 / 监控 ApplicationMaster – 监控 NodeManager – 资源分配与调度 • NodeManager – 单个节点上的资源管理 – 处理来自 ResourceManager 的命令 – 处理来自 ApplicationMaster 的命令 • Container – 对任务运行行环境的抽象,封装了 CPU 、内存等 – 多维资源以及环境变量、启动命令等任务运行相关的信息资源分配与调度 • ApplicationMaster – 数据切分 – 为应用程序申请资源,并分配给内部任务 – 任务监控与容错 • Client – 用户与 YARN 交互的客户端程序 – 提交应用程序、监控应用程序状态,杀死应用程序等 Yarn 结构 • YARN 的核心思想 • 将 JobTracker 和 TaskTacker 进行分离,它由下面几大构成组件: – ResourceManager 一个全局的资源管理器 – NodeManager 每个节点(RM)代理 – ApplicationMaster 表示每个应用 – 每一个 ApplicationMaster 有多个 Container 在NodeManager 上运行 系统规划 主机 角色 软件 192.168.4.1master Resource Manager YARN 192.168.4.2node1 Node Manager YARN 192.168.4.3node2 Node ManagerYARN 192.168.4.4node3Node ManagerYARN Yarn 安装与配置 具体实验准备 可以参考http://blog.51cto.com/13558754/2066708 # ssh 192.168.4.1 # cd /usr/local/hadoop/ # cd etc/hadoop/ # cp mapred-site.xml.template mapred-site.xml # vim mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value>// 配置使用yarn 资源管理系统 </property> </configuration> # vim yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value>//配置Resource Manager 角色 </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>// 一个 java 的类 真实环境与开发人员沟通 </property> </configuration> 配置完成以后 # for i in node{1..3}//将配置文件同步到所有主机 > do > rsync -azSH --delete /usr/local/hadoop/etc/hadoop/ ${i}:/usr/local/hadoop/etc/hadoop -e 'ssh' > done # cd /usr/local/hadoop/ 启动 yarn 服务 # ./sbin/start-yarn.sh 在所有主机上执行 jps, 查看是否启动成功 # for i in master node{1..3} > do > echo ${i} > ssh ${i} "jps" > done master 3312 Jps 3005 ResourceManager node1 3284 Jps 3162 NodeManager node2 2882 NodeManager 3004 Jps node3 2961 Jps 2831 NodeManager 显示所有可用的计算节点 # ./bin/yarn node -list 18/01/31 06:41:56 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-StateNode-Http-AddressNumber-of-Running-Containers node3:46007 RUNNING node3:8042 0 node2:54895 RUNNING node2:8042 0 node1:51087 RUNNING node1:8042 resourcemanager nodemangager 验证 Yarn # bin/hadoop fs -ls /input Found 3 items -rw-r--r-- 2 root supergroup 84854 2018-01-29 21:37 /input/LICENSE.txt -rw-r--r-- 2 root supergroup 14978 2018-01-29 21:37 /input/NOTICE.txt -rw-r--r-- 2 root supergroup 1366 2018-01-29 21:37 /input/README.txt 使用yarn 统计 样本文件中单词出现频率 # ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount hdfs://master:9000/input hdfs://master:9000/output 查看结果 # ./bin/hadoop fs -cat hdfs://master:9000/output/* Yarn 节点管理 [root@master ~] # cat /etc/hosts 192.168.4.1master 192.168.4.2node1 192.168.4.3node2 192.168.4.4node3 192.168.4.5newnode [root@newnode ~]# rsync -azSH --delete master:/usr/local/hadoop /usr/local [root@master hadoop]# ./sbin/start-yarn.sh 添加节点 [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:06:57 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-State Node-Http-Address Number-of-Running-Containers node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 [root@newnode hadoop]# sbin/yarn-daemon.sh start nodemanager [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:07:53 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:4 Node-Id Node-State Node-Http-Address Number-of-Running-Containers newnode:39690 RUNNING newnode:8042 0 node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 删除节点 [root@newnode hadoop]# sbin/yarn-daemon.sh stop nodemanager //不会立即删除 [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:11:31 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:4 Node-Id Node-State Node-Http-Address Number-of-Running-Containers newnode:39690 RUNNING newnode:8042 0 node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 //需要重新启动服务 [root@master hadoop]# ./sbin/stop-yarn.sh [root@master hadoop]# ./sbin/start-yarn.sh [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:12:46 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-State Node-Http-Address Number-of-Running-Containers node1:42010 RUNNING node1:8042 0 node2:55043 RUNNING node2:8042 0 node3:38256 RUNNING node3:8042 0 本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2067497,如需转载请自行联系原作者

优秀的个人博客,低调大师

搭建cadvisor + influxdb + grafana 监控系统

启动influxdb 1 2 dockerrun-d--net=host-ePRE_CREATE_DB=cadvisor--nameinfluxsrvtutum/ influxdb:0.8.8 启动cadvisor 1 2 3 4 5 6 7 8 9 10 dockerrun\ --volume=/: /rootfs :ro\ --volume= /var/run : /var/run :rw\ --volume= /sys : /sys :ro\ --volume= /var/lib/docker/ : /var/lib/docker :ro\ --publish=8080:8080\ --detach= true \ --name=cadvisor\ -eRUN_OPTS= "-storage_driver=influxdb-storage_driver_host=hostip:8086" \ logbase /cadvisor-influxdb 异常: 一开始 在 influxdb 执行 list series 无数据, 知道cadvisor没有往db 传 /usr/bin/cadvisor --logtostderr --v=2 查看详细日志,一般是网络问题,官方镜像一直有问题,无法读取网络状态,所以更换镜像 启动grafana 1 2 3 4 5 6 7 8 9 10 dockerrun-d--net=host\ -eHTTP_USER=admin\ -eHTTP_PASS=admin\ -eINFLUXDB_HOST=localhost\ -eINFLUXDB_PORT=8086\ -eINFLUXDB_NAME=cadvisor\ -eINFLUXDB_USER=root\ -eINFLUXDB_PASS=root\ --namegrafanagrafana/ grafana:2.0.2 本文转自银狐博客51CTO博客,原文链接http://blog.51cto.com/foxhound/1774410如需转载请自行联系原作者 战狐

优秀的个人博客,低调大师

spark 入门及集群环境搭建

软件环境: VMware workstation 11.0 linux :CentOS 6.7 hadoop-2.7.3 jdk-1.0.7_67 spark-2.1.0-bin-hadoop2.7/ 安装虚拟机和jdk就不再此赘述。 直接讲解安装hadoop和spark的安装。 一。下载hadoop源码包。点击此处下载:http://hadoop.apache.org/ 1.下载后解压到指定的目录下。 tar -zxvf hadoop-2.7.3.tar.gz -C /usr/hadoop 2.解压后进入目录 cd /usr/hadoop/hadoop-2.7.3 3.修改配置文件: 进入到cd /hadoop-2.7.3/etc/hadoop下需要修改几个配置文件 1> cpetc/hadoop/hadoop-env.sh.template.hadoop-env.sh cpetc/hadoop/hdfs-site.xml.templete hdfs-site.xml cpetc/hadoop/core-site.templete core-site.xml cp etc/hadoop/mapred-env.sh.templete mapred-env.sh cp etc/hadoop/mapred-site.templete mapred-site.sh cp etc/hadoop/slaves.templete slaves cp etc/yarn-env.sh.templete yarn-env.sh cp etc/yarn-site.xml.templete yarn-site.xml 注意: 一般修改系统配置文件时最好做一个备份或者复制后修改,就像这样的。 hadoop-env.sh 配置文件的内容 #Thejavaimplementationtouse. exportJAVA_HOME=/opt/modules/jdk1.7.0_67/ 这是需要修改为自己机器安装的jdk的位置。其他文件内容不需要修改。 hdfs-site.xml <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.block.size</name> <value>134217728</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoopdata/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoopdata/dfs/data</value> </property> <property> <name>fs.checkpoint.dir</name> <value>/home/hadoopdata/checkpoint/dfs/cname</value> </property> <property> <name>fs.checkpoint.edits.dir</name> <value>/home/hadoopdata/checkpoint/dfs/cname</value> </property> <property> <name>dfs.http.address</name> <value>master:50070</value> </property> <property> <name>dfs.secondary.http.address</name> <value>slave1:50090</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>true</value> </property> </configuration> 3> core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> </property> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.7.3/data/tmp</value> </property> </configuration> 4> mapred-env.sh exportJAVA_HOME=/usr/local/java/jdk1.7.0_67/ 修改为自己电脑的jdk路径。 5> mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> <final>true</final> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <property> <!-- 配置map任务的主节点 运行在哪台节点--> <name>mapred.job.tracker</name> <value>master:9001</value> </property> 6> slaves 设置需要几个节点运行 master slave1 slave2 7> yarn-env.sh JAVA=$JAVA_HOME/bin/java 引用jdk的路径 8> yarn-site.xml <property> <name>yarn.resourcemanager.hostname</name> <value>salve2 </value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>slave2:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>slave2:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>slave2:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>slave2:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>slave2:8088</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/opt/modules/hadoop-2.7.3/tmp/logs</value> </property> 注意: 修改完配置后,需要将hadoop分发到其他节点。 slave1和slave2. scp -r /usr/hadoop/hadoop-2.7.3 root@slave1:/usr/hadoop scp -r /usr/hadoop/hadoop-2.7.3 root@slave2:/usr/hadoop 然后需要修改环境变量文件。可以修改当前用户的 环境变量文件,就是~./bash_rc 或全局变量文件 /etc/profile export JAVA_HOME=/usr/local/jdk-1.7.0_67 export PATH=:PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin: 保存 :wq; 然后可以把环境变量文件发送给其他节点。 二. 格式化namenode节点 hadoop namenode -format 会看到一堆输出信息。然后会提示namenode 格式化成功的提示。 三。启动集群. 可以全部启动,也可以单独 启动。 hadoop 安装路径下有个sbin 目录,下是存放的是系统的启动脚本。 全部启动: start-all.sh 单独启动节点: hadoop-daemon.sh start namenode/datanode xxx. 启动后用jps查看进程。 本文转自 ChinaUnicom110 51CTO博客,原文链接:http://blog.51cto.com/xingyue2011/1947302

优秀的个人博客,低调大师

linux下的LNMP环境搭建

首先了解一下LNMP这四个字母的意思:可以把四个字母分开来看:L:linux的操作系统;N:Nginx网站服务;M:mysql数据库;P:php解析环境。 本次主要能学会Nginx网站服务的基本构建; 学会构建Nginx主机;(这个和apache的网站服务的虚拟web主机类似,本次不做过多讲解) 学会部署LNMP网站服务平台 今天我准备了天空网络电影系统。所以简单的把这个点播系统部署上(http://www.skyuc.com/) 一:Nginx服务基础 Nginx的优点:(1)稳定性;(2)系统资源消耗低;(3)并发连接的高处理能力 1.安装及运行控制 编译安装Nginx Nginx的配置及运行需要pcre,zlib等软件包的支持,一遍提供相应的库和头文件,能确保Nginx的安装顺利完成。所以需要安装yum仓库,方便安装依赖包。 创建运行用户和组 默认以nodody身份运行。建议为其建立专门的用户,能准确的控制起访问权限,增加灵活性,降低安全风险。这是Nginx网站服务的单独运行用户,不需要登录系统。 useradd -M -s /sbin/nologin nginx 编译安装Nginx --perfix//指定Nginx的安装路径 --user //用于指定运行的用户 --group//用户指定运行的组 --with-http_stub_module//启动模块以支持状态统计 为了是Nginx服务器的运行方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx”命令就可以调用Nginx的主程序。 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 2.Nginx的运行控制 检查配置文件 与apache的主程序httpd类似,Nginx的主程序也提供了“-t”选项来对配置文件进行检查,以便找出不当或错误的配置。配置文件Nginx.conf默认位于安装目录下的conf/子目录下。若要检查其他位置的配置文件,可使用“-c”选项来指定路径 启动.停止Nginx 直接运行Nginx即可启动Nginx服务器,这种方式是使用默认的配置文件,若要该用其他配置文件,需添加“-c配置文件路径”选项来指定路径。 通过检查Nginx程序的监听状态,或者在浏览器中访问此web服务,可以确认Nginx服务是否正常运行 netstat -anpt | grep nginx 主程Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重新加载配置,OUT信号表示退出进程,KILL信号表示杀死进程。 Nginx进程运行时,PID号默认存放在log/目录下的Nginx.pid文件中 3.配置文件nginx.conf Nginx服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,配置的语句格式为“关键字 值;” 全局配置 由各种配置语句组成,不使用特定的界定标记,全局配置部分包括Nginx服务的运行用户;工作进程数,错误日志,PID存放位置 #user nobody;//运行用户 woker_processes 1;//工作进程数量 #error_log logs/error.log;//错误日志文件的位置 #pid logs/nginx.pid; //PID文件位置 1/0事件配置 使用“events{}”界定标记,用来指定Nginx进程的1/0响应模型,每个进程的连接数等设置。 若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万多个,具体还是要看服务器的硬件,网络带宽等因素 HTTP配置 使用“http{}”界定标记,包括访问日志,HTTP端口,网页目录,默认字符集,连接保持以及后续讲解的虚拟web主机,php解析等 二:LNMP架构及应用部署 众所周知,LAMP平台是目前应用最为广泛的网站服务器架构,其中的“A”对应这web服务软件Apache HTTP Server。随着Nginx在企业中的使用呈上升趋势,相信不久的将来LNMP架构会成为这个行业的主流,因此也受更多的Linux工程师所青昧。 1.构建LNMP平台 安装Mysql数据库 为了与Nginx,php环境保持一致,仍选择采用源代码编译的方式安装Mysql组件 yum -y install ncurses-devel(需要安装yum仓库,这是一个很多依赖包的软件,以便支持mysql数据库) tar zxvf cmake-2.8.6.tar.gz cd cmake-2.8.6 ./configure && gmake && gmake install(编译安装Mysql时需要用这个软件来编译,所以需要把这个软件装上) tar zxvf mysql-5.5.22.tar.gz cd mysql-5.5.22 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 --DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install 安装完毕后还没有完事,还需要优化数据库,初始化数据库,启动mysql服务 2.安装php解析环境 较新版本的php已经自带FPM(进程管理器)模块,用来对php解析实例进行管理,优化解析效率。需要添加“--enable-fpm”以启用此模块 编译安装php yum -y install gd libxm12-devel libjped-devel libpng-devel tar zxvf php-5.3.28.tar.gz cd php-5.3.28 ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-mbstring --enable-fpm --with-fpm --with-jpeg-dir=/usr/lib && make && make install 配置Nginx支持PHP环境 让Nginx能解析PHP网页,两种方法可以选择。其一:充当中介,将访问PHP页面的web请求转交给其他服务器去处理,其二:通过使用PHP的FPM模块来调用本机的PHP环境 启用php-fpm进程 参考php-fpm.conf配置文件,并修改其中的PID文件,运行用户,服务数等相关设置。然后启动php-fpm程序即可(默认监听本机的9000端口号) php-fpm.conf文件中,pid配置行指出了PID信息的存放位置,对应的实际路径/usr/local/php5/var/php-rpm.pid. 配置Nginx至此PHP解析 无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php=fpm进程进行解析,都需要在“server{}”配置段中添加location设置,以便指定当访问.php网页是采取何种操作。 对于第一种方法(转交给其他web服务器处理),使用的配置语句如下 server { ...... location ~ \.php${ proxy_passhttp://ip:80; } } 对于第二种方法(调用本机的php-fpm进程),使用的配置如下: server { ...... location ~ \.php$ { root/var/www/tanhong; fastcgi_pass127.0.0.1:9000; fastcgi_index index.php includefastcgi.conf; } } 三。在LNMP平台中部署web应用 1.下载并部署程序代码 天空网络电影系统是一套PHP视频点播系统,支持各种p2p流媒体软件,适合电影门户站,多媒体中心,网吧,酒店,教育等行业使用,官方网站为(http://www.skync.com) 将下载的程序文件解压,找到其中的wwwroot文件夹并将其放置到LNMP服务器的网站默认根目录(一般不会根据实际情况,可能网站的目录会放置在一个隐秘的位置) yum -y install unzip unzip SKYNC.v3.4.2.SOURCE.zip cd SKYNC.v3.4.2.SOUTCE mv wwwroot /usr/local/nginx/html/skync cd /usr/local/nginx/html/skync chown -R php:php admincp/ data/ templates/ upload 2.创建数据库 为了降低web应用程序对数据库的风险,建议设置专用的数据库及授权用户,而不是直接使用数据库的默认root用户 mysql -u root -p //验证root用户的密码 mysql> CREATE DATABASE skyncdb;//创建数据库 mysql>GRANT all ON skyncdb.* TO RUNSKYNC@localhost IDENTIFIED BY 'sky@uc123' 本文转自 宏强 51CTO博客,原文链接:http://blog.51cto.com/tanhong/1881223

优秀的个人博客,低调大师

CentOS7搭建lamp环境

Mysql安装 CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 [root@localhost ~]# yum install mariadb-server mariadb [root@localhost ~]# yum install mysql-devel [root@localhost ~]# systemctl restart mariadb#重启Mysql [root@localhost ~]# mysql#进入Mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>set password for 'root'@'localhost' =password('password'); #设置密码 Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit#退出 Bye [root@localhost ~]# maraidb -u root -p123456#再次进入Mysql 123456为我设置的密码 [root@localhost ~]# mysql --version#查看版本信息 mariadb数据库的相关命令是: systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动 安装Apache [root@localhost ~]# yum install httpd [root@localhost ~]# httpd -v#查看版本信息 安装php 一、删除旧版本 如果已经安装过php就先删除之前的版本。检查方法如下: yum list installed | grep php 然后将安装的包进行删除 比如 yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64也可直接 yum remove php* 具体根据显示的安装列表的名称进行相应的删除 二、安装新版版 1. 更新yum安装包 CentOS 7.x rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm CentOS 6.x rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm CentOS 5.x rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm 2. 通过云进行php和其他组件的安装 yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 yum install php70w-fpm 其他需要的组件在自行安装。 三、其他版本php安装 如果想安装php5.5或者5.6版本,将上面的php70w替换为php55w或者php56w就可以了。 查看版本信息 [root@localhost ~]# php -v PHP 7.0.24 (cli) (built: Sep 30 2017 10:10:28) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies 四,添加配置信息 [root@localhost ~]# cd /var/www/html/ [root@localhost html]#vim index.php <?php phpinfo(); ?> 五,重启httpd [root@localhost ~]# systemctl restart httpd

优秀的个人博客,低调大师

LAMP应用架构优势与搭建

Office Anywhere采用基于WEB的企业计算平台,如下图: LAMP架构的优势 名词解释(引自百度百科): LAMP:基于Linux,Apache,MySQL和PHP的开放资源网络开发平台。Linux是开放操作系统;Apache是最通用的网站服务器;MySQL是带有基于网络管理附加工具的关系型数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。 许多网站采用Apache 网站服务器+MySQL数据库+PHP语言引擎开发。可运行于Windows,Linux,Unix,苹果Mac OS等多种操作系统。 下面分别介绍Apache、PHP、MySQL的优势。 Apache网站服务器 Apache 是一个开源软件项目,自1996年起,一些顶尖的软件工程师,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的 NCSA HTTPd 服务器的基础上开发与维护Apache服务器,1999年Apache软件基金会成立。 Apache的特点是简单、速度快、性能稳定。 Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上。 据Netcraft统计:截止2008年6月,全世界互联网站总量达1.72亿,使用Apache服务器的位居第一,达49.12%,而使用微软IIS的为35.39%。 国内使用Apache服务器的知名网站和应用有: 搜狐(Apache 1.3)、新浪(Apache 2.0.54)、网易(Apache 2.2.6)、腾讯QQ网站、新华网、中华网、人民网、chinaren、淘宝网 以上网站服务信息,可以到http://uptime.netcraft.com查询,国外采用Apache的网站更多,不再详述。 PHP语言引擎 PHP的优势包括:开源模式使得开发者无需付费,支持多种操作系统,强大的的可伸缩性,稳定高效运行,快速开发,面向对象的编程,支持和JAVA的交互等特性。 PHP在数据库方面的支持非常丰富,包括:filePro,Informix,InterBase,mSQL,Microsoft SQL Server,MySQL,Sybase,ODBC,Oracle,PostgreSQL等等。 作为全球最普及的互联网开发语言之一,占到了全世界互联网应用的40%, PHP从1994年诞生至今已被2000多万个网站采用,国外流行程度更高。全球知名互联网公司Yahoo!、Goolge、Lycos、YouTube和中国知名网站新浪、百度、腾讯、TOM 等均是PHP 技术的经典应用。其中新浪网90%以上的Web开发采用PHP语言(资料数据转自CSDN程序员杂志2008年6月刊,新浪网架构师所著原文)。 并且,随着PHP 技术的成熟和完善,PHP 已经从一种针对网络开发的计算机语言发展成为了一个适合于企业级部署的技术平台,IBM、 Cisco、西门子、Adobe等公司均在普遍选用 PHP 技术。 在国际权威机构的调查报告中显示,PHP 技术在全球互联网社区领域的应用位居第一。在Alexa中文网站500强中,394家网站全部或部分应用着PHP 技术。在中国,目前也有着数十万的PHP 爱好者和程序员,他们身在不同地区,但都是PHP、开源的追随者。 PHP语言的发展十分迅猛,Web2.0时代的到来,更加速了PHP的普及,以下是几个生动的案例: 微软2007年花2.4亿美金收购1.6%股份的世界第二大社区网站facebook就采用了PHP语言开发,利用PHP的高度可伸缩特性,facebook支持用户开发扩展应用模块,这种全新的技术特性造就了facebook的极大成功,目前市值已超过100亿美元,它的未来就是一个网络版的操作系统。可以看到尽管微软发明了ASP.net语言,但仍非常看好PHP技术。 著名网站百度、雅虎都使用PHP开发重量级应用,比如百度的企业竞价排名系统就采用PHP开发,这是百度目前最大的收入来源,百度企业竞价排名管理站点网址:www2.baidu.com。 大家所熟知的PHP开发的论坛软件Discuz!几乎占据了80%的国内论坛软件市场,我们看到的门户网站论坛或社区,大多采用了PHP开发。 在国内OA领域,至少有30%以上的OA品牌采用PHP开发,这也包括采用通达OA平台开发的30余家正规品牌和众多盗版产品,PHP开发的OA在国内几乎有统一天下之势。 PHP与JAVA、ASP、ASP.net等网络语言的数据对比 现在最流行的统计方式,就是Google了,看看Google的搜索结果,基本就能判断出其在市面上的网站的使用情况, 约有11,050,000,000项符合php的查询结果 约有 3,540,000,000项符合asp的查询结果 约有 1,900,000,000项符合aspx的查询结果 约有 771,000,000项符合jsp的查询结果 全球PHP网站页面达到110亿,超过了ASP、ASP.net和JSP的总和。 这段时间葛优频繁曝光,总是喋喋不休的告诉俺们一个道理——用的人多的卡就是好卡。而如果套用这个光头明星的话,那就是:我,相信群众,从上面查询的结果大家可以看到,人民群众是很爱戴PHP的。 MySQL数据库 MySQL是一个关系型数据库管理系统,目前MySQL被业界广泛地应用,在过去两年里,MySQL在所有开发者使用的数据库中获得了25%的市场份额。 MySQL开发者为瑞典MySQL AB公司。在2008年1月16日,被Java语言的创始和主导公司—美国Sun公司10亿美元收购。 Mysql已经在中国设立了研发与技术支持中心(万里开源携手MySQL共建MySQL中国研发中心),通达科技通过与之交流,加强了合作的认识,也获得了技术指导,将更好地提高Mysql的企业应用水平。MySQL中国充分肯定了通达在企业推广Mysql数据库应用的贡献,欢迎通达向用户推荐使用Mysql数据库。双方也将在后续的市场推广中,展开更深层次的合作,包括向集团企业用户提供高可靠的基于Mysql的数据库解决方案和优质服务,更多信息参考通达网站新闻。 大家所熟悉的新浪网、腾讯QQ、淘宝网,都大量采用了MySQL数据库。 腾讯QQ采用Linux操作系统+MySQL数据库平台,至2004年2月,其注册用户数已经达到2.8亿户,活跃人数9200万,凭借上千台服务器组成的集群应用,至2005年2月,腾讯QQ的同时在线人数突破了1000万,这也充分证明了MySQL数据库的的大容量、快速响应的特点。 MySQL CEO Mickos说:MySQL尤其适用于Web应用,这也是该产品如今最为广泛的应用领域。其重要客户包括了Yahoo和Google,他们都在自己的站点中使用MySQL数据库。该产品同样还被用于嵌入式环境,在诸如零售业、制造业、政府机构和大学这样的环境用于完成办公任务。由于其可以实现各种用途,MySQL的客户遍布各个领域,从电信业(沃达丰、爱立信)到IT(惠普、德州仪器)再到新闻出版(美联社、时代杂志)。 MySQL客户还包括:朗讯、北电、美洲银行、西门子、思科、摩托罗拉、UPS、美国国防部、美国洛克希德-马丁公司、德国邮政、道琼斯、迪斯尼、戴姆勒-克莱斯勒等。 对于超高负载系统,通达可以提供Linux集群+MySQL数据库集群版的高性能配置方案,这种方案与Google或Baidu的集群系统方案类似,扩展空间很大,如果增加大量用户,只需再增加节点服务器就可以了。 快速部署LAMP 使用yum安装方式部署lamp(由于本人能力有限,所以有不尽人意的地方还请多多包涵) 一、yum配置 //进行yum源路径的配置 //baseurl为yum源的路径,Server为一会挂载的光盘中的目录,我们用到的包都在这个目录下;enable=1开启yum功能;gpgcheck=0不验证yum安装的包,其下面的一行为验证方式。 二、挂载系统光盘 //将光盘挂载到目录mnt下 三、安装apache、php和mysql包 //安装时间稍微长点 修改主机名 #hostname oracle.com #vim /etc/sysconfig/network 修改http.conf中servername 查看apache是否可以使用 # php –i用来查看php服务的,只是输出的信息太多无法截图了 查看mysql服务的安装 开启apache和mysql的服务和设置开机启动 四、编写两个简易的网页做测试 ① 静态网页测试 ② 动态网页测试(php) 五、安装discuz论坛 解压discuz包到/var/www/html目录下 在/var/www/html中会看到名为upload的包,这就是discuz解压后的目录 在浏览器地址栏里输入192.168.8.254/upload/install进行discuz的安装 //点击“我同意”进行下一步 //进行目录、文件权限检查时显示当前状态不可写 我们进入/var/www/html/upload下对那些不可写的目录和文件进行权限的修改 把那些不可写的目录和文件复制到一个文件中去,我这里就把它们复制到名chmod的文件 //由于本人vi下的编辑能力有限,所以用了上面的笨方法 再次刷新页面 //可以看到刚才的那些文件和目录变成可写了,点击下一步 //修改“数据库用户名”为root,密码为空;管理员账号admin,密码随意,点击下一步 //让我们填一些联系方式,先不管了直接跳过 //看到我们的论坛了,让我们亲自体验一下吧 //点击“登录”,输入管理员账号和密码,接下来你就可以发挥自己的想象来设计自己的网站了。 我们使用脚本来快速部署LAMP vim lamp.sh #!/bin/sh yum –y install http* php* mysql* echo “192.168.8.254”&gt;/var/www/html/index.html echo “<?php;phpinfo();?>”&gt;/var/www/html/index.php /etc/init.d/httpd start /etc/init.d/mysqld start chkconfig httpd on chkconfig mysqld on unzip Discuz_7.2_FULL_SC_UTF8.zip –d /var/www/html/ cd /var/www/html/upload/ chmod 777 ./config.inc.php chmod 777 ./attachments chmod 777 ./forumdata chmod 777 ./forumdata/cache chmod 777 ./forumdata/templates chmod 777 ./forumdata/threadcaches chmod 777 ./forumdata/logs chmod 777 ./uc_client/data/cache clear echo "Please access http://192.168.8.254/upload/install/ to begin your installation." //192.168.8.254为我服务器的地址,此脚本我放在/opt目录下执行,并且Discuz_7.2_FULL_SC_UTF8.zip包也在此目录下,一定要在同一个目录下执行。 此文下载地址:http://down.51cto.com/data/159575 由于页面内容过多,我写的一个源代码定制安装文档已上传到http://down.51cto.com/data/160441,花了我四天的时间详细的在机器上亲自实施了两次。此文档为生产当中用的最为频繁的方法,如果需要源码包就给我留言我单播给你 本文转自 baiying 51CTO博客,原文链接:http://blog.51cto.com/baiying/476474,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android环境搭建及相关命令

1.下载SDK 到Android官方的镜像网站 http://androidappdocs.appspot.com/sdk/index.html 下载,网页有介绍quick start,解压后,打开SDK Setup.exe选择下载相应的SDK版本。 同时建议添加环境变量ANDROID_SDK_HOME E:\ ,否则到了后面创建 SD卡镜像文件的时候,Android是默认把那几百MB的镜像文件放在C:\Documents and Settings\<user>\.Android里面的。而设置ANDROID_SDK_HOME为E:\,重启系统生效后,SD卡img文件就放在E:\.Android里面。而且Android的相关配置也是放在E:\.Android里面的,不用担心系统重装/恢复c盘所带来的影响! 2. 安装ADT插件 到http://androidappdocs.appspot.com/sdk/eclipse-adt.html下载,按照网页的介绍安装。安装后启动Eclipse,打开Eclipse的菜单window -> Preferences,找到Android, 设置SDK Location为SDK Setup.exe所在的文件夹。 3. 创建SD卡镜像 创建SD卡镜像文件,推荐使用SDK Setup.exe来创建,对于新手来说,使用adb.exe的命令是比较麻烦的!可以使用android list avd来查看已成功建立的模拟器! 4. 启动模拟器 在SDK Setup.exe,start刚才创建的SD卡镜像,模拟器就会启动!对此,可以把下面的批处理保存为start_emulator.bat ,放在SDK Setup.exe所在文件夹,方便启动模拟器: cd tools emulator -avd AndroidVD -no-boot-anim 其中AndroidVD是该SD卡镜像文件的名字!-no-boot-anim表示启动没有动画显示状态,降低启动时的CPU占用! 5. 在非Eclipse的IDE的项目创建 可以使用以下批处理创建项目,保存为Create_Project_MyAndroidApp.bat,放在SDK Setup.exe所在文件夹,方便创建,每次创建新的项目,需要修改里面的相关内容,所以推荐使用Eclipse来创建项目! cd tools android create project --target 1 --name MyAndroidApp --path G:\StudyAndroid\MyAndroidAppProject --activity MyAndroidAppActivity --package com.can.myandroid --target 1 这里的1,需要运行android list targets查看 --name 项目名 --path 项目文件夹路径 --activity main Activity的名字 --package 包名 更多的介绍在官方网站Developing In Other IDEs http://androidappdocs.appspot.com/guide/developing/other-ide.html 6. 其他adb命令 安装软件 adb -s emulator-5554 install -r MyAndroidApp-debug.apk路径 卸载软件 adb uninstall com.can.myandroid(这是package名) adb uninstall -k <package名>卸载软件但是保留配置和缓存文件 还有其他的adb命令,请运行adb /?查看帮助。 7. Android模拟器和真机的不同之处 * 不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出) * 不支持USB连接 * 不支持相机/视频捕捉 * 不支持音频输入(捕捉);但支持输出(重放) * 不支持扩展耳机 * 不能确定连接状态 * 不能确定电池电量水平和交流充电状态 * 不能确定SD卡的插入/弹出 * 不支持蓝牙 8.在Eclipse中查看Android SDK源代码的方法 首先就是要下载Android SDK的源代码,方法不具体描述,大概就是使用Git来下载。 然后把源代码放到在相应的平台文件夹里面的source目录,例如放到D:\android-sdk-windows\platforms\android-7里面的source目录(目录没有就新建)。 这样在Eclipse,当鼠标放在某个函数时,会显示该函数的声明和形参。在debug时可以跳转到这些源代码里面,而不会提示这些源代码文件not found。 本文转自 Icansoft 51CTO博客,原文链接: http://blog.51cto.com/android/298314

优秀的个人博客,低调大师

ELK日志分析平台搭建全程

环境: OS:Centos 6.6 elasticsearch-5.6.3.tar.gz jdk-8u151-linux-x64.tar.gz kibana-5.6.3-linux-x86_64.tar.gz logstash-5.6.3.tar.gz node-v6.11.4-linux-x64.tar.xz 一、准备环境: 1、创建用户,并给安装目录设置权限 1 2 3 4 [root@1inux~]#groupaddelk [root@1inux~]#useradd-gelkelk [root@1inux~]#mkdir/elk [root@1inux~]#chown-Relk:elk/elk 修改系统某些参数值:【如不修改启动时会报错】 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@1inux~]#vim/etc/security/limits.conf //添加一下内容 --------------------------- *softnofile 65536 *hardnofile 65536 *softnproc 2048 *hardnproc 4096 ---------------------------- [root@bogonelk]#vim/etc/security/limits.d/ 90 -nproc.conf //添加如下内容 *softnproc 2048 [root@1inux~]#vim/etc/sysctl.conf //添加以下内容 ------------------ fs.file- max = 65536 vm.max_map_count= 655360 ---------------------- [root@1inux~]#sysctl-p //查看vm.max_map_count值是否修改成功 修改进程数: [root@1inux~]#ulimit-u 2048 安装Java [root@1inux elk]# mkdir /usr/local/Java [root@1inux elk]# tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/Java 添加环境变量: [root@1inux jdk1.8.0_151]# vim /etc/profile 添加如下: 1 2 3 exportJAVA_HOME=/usr/local/Java/jdk1.8.0_151 exportPATH=$PATH:$JAVA_HOME/bin exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPAT 重新加载 [root@1inux jdk1.8.0_151]# source /etc/profile 查看是否安装成功: 1 2 3 4 [root@1inuxjdk1 .8. 0_151]#java-version javaversion" 1.8. 0_151" Java(TM)SERuntimeEnvironment(build 1.8. 0_151-b12) JavaHotSpot(TM) 64 -BitServerVM(build 25.151 -b12,mixedmode) 二:安装ELK 1、安装elasticsearch 1 2 3 4 5 6 #tar-zxvfelasticsearch-5.6.3.tar.gz 修改配置文件: vim./elasticsearch-5.6.3/config/elasticsearch.yml //设置监听IP及监听端口: network.host:0.0.0.0//设置监听IP http.port:9200//设置监听端口 注:elasticsearch不能使用root用户启动 启动elasticsearch//第一次启动有点慢: 1 2 3 4 5 6 7 [elk@1inuxroot]$cd/elk/elasticsearch-5.6.3/bin [elk@1inuxbin]$./elasticsearch 然后查看端口: [root@1inux~]#ss-tnl|grep9200 LISTEN0128::ffff:192.168.159.130:9200:::* [root@1inux~]# 1.1安装部署head 编辑elasticsearch配置文件做如下修改: 1 2 3 4 5 6 #vim/elk/elasticsearch-5.6.3/config/elasticsearch.yml node.name:node-1inux//修改集群名字 cluster.name:my-1inux//修改节点名字 //增加新的参数,这样head插件可以访问es http.cors.enabled:true http.cors.allow-origin: "*" 1)安装git 1 [root@ 1 inux/]#yum-yinstallgit 下载代码: 1 [root@ 1 inuxelk]#gitclonegit://github.com/mobz/elasticsearch-head.git 修改head目录权限: 1 [root@1inuxelk]#chown-Relk:elkelasticsearch-head 2)下载安装node https://nodejs.org/en/download/ 然后下载xz进行解压 1 2 3 #yum-yinstallxz [root@1inuxelk]#xz-dnode-v6.11.4-linux-x64.tar.xz [root@1inuxelk]#tar-xvfnode-v6.11.4-linux-x64.tar 添加node的环境变量 1 2 3 4 5 6 7 [root@ 1 inuxnode-v 6.11 . 4 -linux-x 64 ]#vim/etc/profile 添加如下: exportNODE_HOME=/elk/node-v 6.11 . 4 -linux-x 64 exportPATH=$PATH:$NODE_HOME/bin 重新加载 [root@ 1 inuxnode-v 6.11 . 4 -linux-x 64 ]#source/etc/profile 查看是否生效: 1 2 3 4 5 6 [root@1inuxnode-v6.11.4-linux-x64]#echo$NODE_HOME /elk/node-v6.11.4-linux-x64 [root@1inuxnode-v6.11.4-linux-x64]#node-v v6.11.4 [root@1inuxnode-v6.11.4-linux-x64]#npm-v 3.10.10 1 2 3 切换国内镜像源: npmconfig set registryhttps: //registry.npm.taobao.org npmconfig set disturlhttps: //npm.taobao.org/dist 3)安装grunt 1 2 [root@1inuxnode_modules]#npminstall-ggrunt [root@1inuxnode-v6.11.4-linux-x64]#npminstallgrunt-cli-g 查看是否安装成功: 1 2 [root@1inuxnode-v6 .11.4 -linux-x64]#grunt-version grunt-cliv1 .2.0 修改服务器监听地址 1 2 [root@1inuxelk]#vim/elk/elasticsearch-head/Gruntfile.js hostname:'*', 修改链接地址: 1 2 3 4 [root@1inuxelk]#vim/elk/elasticsearch-head/_site/app.js this .base_uri= this .config.base_uri|| this .prefs.get( "app-base_uri" )||" 修改为: this .base_uri= this .config.base_uri|| this .prefs.get( "app-base_uri" )|| "http://192.168.159.130:9200" ; 运行head 1 2 3 4 在head目录中执行 [root@1inuxelasticsearch-head]#npminstall 启动: [root@1inuxelasticsearch-head]#gruntserver 2、安装kibana [root@1inux elk]# tar -zxvf kibana-5.6.3-linux-x86_64.tar.gz 1 2 3 4 5 6 7 解压后编辑配置文件; [root@ 1 inuxbin]#vim../config/kibana.yml//修改为elasticsearch的访问地址及端口如下 #server.host: "localhost" server.host: "192.168.159.130" #elasticsearch.url: "http://localhost:9200" elasticsearch.url:" 然后保存启动如下; 1 2 3 4 5 6 7 8 [root@1inuxbin]#./kibana log [15:45:26.952][info][status][plugin:kibana@5.6.3]Statuschangedfromuninitializedtogreen-Ready log [15:45:27.067][info][status][plugin:elasticsearch@5.6.3]Statuschangedfromuninitializedtoyellow-WaitingforElasticsearch log [15:45:27.118][info][status][plugin:console@5.6.3]Statuschangedfromuninitializedtogreen-Ready log [15:45:27.136][info][status][plugin:metrics@5.6.3]Statuschangedfromuninitializedtogreen-Ready log [15:45:27.566][info][status][plugin:timelion@5.6.3]Statuschangedfromuninitializedtogreen-Ready log [15:45:27.697][info][listening]Serverrunningathttp://localhost:5601 log [15:45:27.699][info][status][uisettings]Statuschangedfromuninitializedtoyellow-Elasticsearchpluginisyellow 3、安装logstash-5.6.3.tar.gz 1 2 3 [root@ 1 inuxelk]#tar-zxvflogstash -5.6 . 3 .tar.gz 解压后编辑配置文件,然后就可以使用了 编写文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 编辑文件#vim/config/test.conf input{ file{ type=> "nginx_log" path=> "/var/log/nginx/access.log" start_position=> "beginning" } } output{ elasticsearch{ hosts=> "192.168.159.130" index=> "1inux" } stdout{codec=>rubydebug} } 启动: root@1inuxbin]#./logstash-f../config/test.conf 报错: 1、 1 2 3 [root@bogonelk]#./elasticsearch- 5.6.3 /bin/elasticsearch [ 2017 - 10 -25T06: 29 : 04 , 996 ][WARN][o . e . b . ElasticsearchUncaughtExceptionHandler][]uncaughtexception in thread[main] org . elasticsearch . bootstrap . StartupException:java . lang . RuntimeException:can not runelasticsearch as root 解决方案:使用elk用户启动 问题二、 1 2 3 4 5 6 ERROR:[4]bootstrapchecksfailed [1]:maxfiledescriptors[4096] for elasticsearchprocess is toolow,increasetoatleast[65536] [2]:maxnumberofthreads[1024] for user[elk] is toolow,increasetoatleast[2048] [3]:max virtual memoryareasvm.max_map_count[65530] is toolow,increasetoatleast[262144] 参考上面系统修改 问题三、 1 2 3 4 编辑elasticsearch配置文件 [ 4 ]:systemcallfiltersfailedtoinstall;checkthelogsandfixyourconfigurationordisablesystemcallfiltersatyourownrisk 在bootstrap.memory_lock下面添加: bootstrap.system_call_filter:false 本文转自 1inux 51CTO博客,原文链接:http://blog.51cto.com/1inux/1976229

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册