首页 文章 精选 留言 我的

精选列表

搜索[数据库相关],共10023篇文章
优秀的个人博客,低调大师

Hive优化相关设置

参数 hive.optimize.cp=true:列裁剪 hive.optimize.prunner:分区裁剪 hive.limit.optimize.enable=true:优化LIMIT n语句 hive.limit.row.max.size=1000000: hive.limit.optimize.limit.file=10:最大文件数 1. 本地模式(小任务): 需要满足以下条件: 1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB) 2.job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4) 3.job的reduce数必须为0或者1 hive.exec.mode.local.auto.inputbytes.max=134217728 hive.exec.mode.local.auto.tasks.max=4 hive.exec.mode.local.auto=true hive.mapred.local.mem:本地模式启动的JVM内存大小 2. 并发执行: hive.exec.parallel=true ,默认为false hive.exec.parallel.thread.number=8 3.Strict Mode: hive.mapred.mode=true,严格模式不允许执行以下查询:分区表上没有指定了分区没有limit限制的order by语句笛卡尔积:JOIN时没有ON语句 4.动态分区: hive.exec.dynamic.partition.mode=strict:该模式下必须指定一个静态分区 hive.exec.max.dynamic.partitions=1000 hive.exec.max.dynamic.partitions.pernode=100:在每一个mapper/reducer节点允许创建的最大分区数 DATANODE:dfs.datanode.max.xceivers=8192:允许DATANODE打开多少个文件 5.推测执行: mapred.map.tasks.speculative.execution=true mapred.reduce.tasks.speculative.execution=true hive.mapred.reduce.tasks.speculative.execution=true; 6.Single MapReduce MultiGROUP BY hive.multigroupby.singlemar=true:当多个GROUP BY语句有相同的分组列,则会优化为一个MR任务 7. 是否提供虚拟列 hive.exec.rowoffset:是否提供虚拟列 8. 分组 两个聚集函数不能有不同的DISTINCT列,以下表达式是错误的:INSERT OVERWRITE TABLE pv_gender_agg SELECT pv_users.gender, count(DISTINCT pv_users.userid), count(DISTINCT pv_users.ip) FROM pv_users GROUP BY pv_users.gender;SELECT语句中只能有GROUP BY的列或者聚集函数。 9. hive.map.aggr=true;在map中会做部分聚集操作,效率更高但需要更多的内存。 hive.groupby.mapaggr.checkinterval:在Map端进行聚合操作的条目数目 10. hive.groupby.skewindata=true:数据倾斜时负载均衡,当选项设定为true,生成的查询计划会有两个MRJob。第一个MRJob 中,Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的GroupBy Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MRJob再根据预处理的数据结果按照GroupBy Key分布到Reduce中(这个过程可以保证相同的GroupBy Key被分布到同一个Reduce中),最后完成最终的聚合操作。 11.Multi-Group-By Inserts: FROM test INSERT OVERWRITE TABLE count1 SELECT count(DISTINCT test.dqcode) GROUP BY test.zipcode INSERT OVERWRITE TABLE count2 SELECT count(DISTINCT test.dqcode) GROUP BY test.sfcode; 12.排序 ORDER BY colName ASC/DESC hive.mapred.mode=strict时需要跟limit子句 hive.mapred.mode=nonstrict时使用单个reduce完成排序 SORT BY colName ASC/DESC :每个reduce内排序 DISTRIBUTE BY(子查询情况下使用 ):控制特定行应该到哪个reducer,并不保证reduce内数据的顺序 CLUSTER BY :当SORT BY 、DISTRIBUTE BY使用相同的列时。 13.合并小文件 hive.merg.mapfiles=true:合并map输出 hive.merge.mapredfiles=false:合并reduce输出 hive.merge.size.per.task=256*1000*1000:合并文件的大小 hive.mergejob.maponly=true:如果支持CombineHiveInputFormat则生成只有Map的任务执行merge hive.merge.smallfiles.avgsize=16000000:文件的平均大小小于该值时,会启动一个MR任务执行merge。 14.map/reduce数目 减少map数目: set mapred.max.split.size set mapred.min.split.size set mapred.min.split.size.per.node set mapred.min.split.size.per.rack set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat增加map数目:当input的文件都很大,任务逻辑复杂,map执行非常慢的时候,可以考虑增加Map数,来使得每个map处理的数据量减少,从而提高任务的执行效率。假设有这样一个任务: select data_desc, count(1), count(distinct id),sum(case when …),sum(case when ...),sum(…) from a group by data_desc如果表a只有一个文件,大小为120M,但包含几千万的记录,如果用1个map去完成这个任务,肯定是比较耗时的,这种情况下,我们要考虑将这一个文件合理的拆分成多个,这样就可以用多个map任务去完成。 set mapred.reduce.tasks=10; create table a_1 as select * from a distribute by rand(123);这样会将a表的记录,随机的分散到包含10个文件的a_1表中,再用a_1代替上面sql中的a表,则会用10个map任务去完成。每个map任务处理大于12M(几百万记录)的数据,效率肯定会好很多。 reduce数目设置: 参数1:hive.exec.reducers.bytes.per.reducer=1G:每个reduce任务处理的数据量 参数2:hive.exec.reducers.max=999(0.95*TaskTracker数):每个任务最大的reduce数目 reducer数=min(参数2,总输入数据量/参数1) set mapred.reduce.tasks:每个任务默认的reduce数目。典型为0.99*reduce槽数,hive将其设置为-1,自动确定reduce数目。 15.使用索引: hive.optimize.index.filter:自动使用索引 hive.optimize.index.groupby:使用聚合索引优化GROUP BY操作

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

code push 相关命令

code-push login 登陆 code-push logout 注销 code-push access-key ls 列出登陆的token code-push access-key rm <accessKye> 删除某个 access-key 输入code-push app add <appName>即可完成注册。 code-push app add 在账号里面添加一个新的app code-push app remove 或者 rm 在账号里移除一个app code-push app rename 重命名一个存在app code-push app list 或则 ls 列出账号下面的所有app code-push app transfer 把app的所有权转移到另外一个账号 code-push deployment -k ls <appName>获取 部署秘钥 code-push deployment ls ckhsAndroid -k code-push release-react <appName> <platform> -t 版本 -d 环境 --des 描述 -m true (强制更新) code-push release-react MyApp-iOS ios --t 1.0.0 --dev false --d Production --des "1.优化操作流程" --m true 其中参数--t为二进制(.ipa与apk)安装包的的版本;--dev为是否启用开发者模式(默认为false);--d是要发布更新的环境分Production与Staging(默认为Staging);--des为更新说明;--m 是强制更新。 关于code-push release-react更多可选的参数,可以在终端输入code-push release-react进行查看。 script脚本 "codepush-ios": "code-push release-react ckhsIOS ios -m true", "codepush-android": "code-push release-react ckhsAndroid android -m true", "codepush-product-ios":"code-push release-react ckhsIOS ios --d Production --m true", "codepush-product-android":"code-push release-react ckhsAndroid android --d Production -m true", 更新规则 1> CodePush部署版本 > App版本 更新可用,但当前版本比运行版本高。不作更新 2> CodePush部署版本 < App版本 不执行更新处理 3> CodePush部署版本 == App版本 自动下载更新,并根据加载策略加载最新bundle 回滚 当部署的版本不同时,不能跨版本回滚。 例如:CodePush历史版本中为2.10.1,此时发布2.10.2版本。当从2.10.2发起回滚操作回到2.10.1时,是不可行的。 问题探讨: 用户安装版本为1.0.1 迭代更新上传 版本 1.1.0 上传到应用市场新的包 针对1.0.1做更新,1.1.0 运行版本大于发布的热更新版本 不做更新,1.0.1的用户可进行更新。 问题来了:当版本迭代到1.2.0时 每次迭代都要针对1.0.1 的用户,1.1.0的用户?如果发了n多个版本都要针对安装不同的用户版本去发布更新内容吗? 测试下之后:

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

elasticsearch监控相关接口

转自官网:https://www.elastic.co/guide/en/elasticsearch/reference/1.6/cat.html 转自csdn:http://blog.csdn.net/yangwenbo214/article/details/74000458 转自cnblogs:https://www.cnblogs.com/smail-bao/p/7448392.html Cluster Health The cluster health API allows to get a very simple status on the health of the cluster. $ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' The API can also be executed against one or more indices to get just the specified indices health: $ curl -XGET 'http://localhost:9200/_cluster/health/test1,test2' Cluster State The cluster state API allows to get a comprehensive state information of the whole cluster. As the cluster state can grow (depending on the number of shards and indices, your mapping, templates), it is possible to filter the cluster state response specifying the parts in the URL. $ curl -XGET 'http://localhost:9200/_cluster/state/{metrics}/{indices}' A couple of example calls: # return only metadata and routing_table data for specified indices $ curl -XGET 'http://localhost:9200/_cluster/state/metadata,routing_table/foo,bar' # return everything for these two indices $ curl -XGET 'http://localhost:9200/_cluster/state/_all/foo,bar' # Return only blocks data $ curl -XGET 'http://localhost:9200/_cluster/state/blocks' Cluster Stats The Cluster Stats API allows to retrieve statistics from a cluster wide perspective. The API returns basic index metrics (shard numbers, store size, memory usage) and information about the current nodes that form the cluster (number, roles, os, jvm versions, memory usage, cpu and installed plugins). curl -XGET 'http://localhost:9200/_cluster/stats?human&pretty' Pending cluster tasks The pending cluster tasks API returns a list of any cluster-level changes (e.g. create index, update mapping, allocate or fail shard) which have not yet been executed. $ curl -XGET 'http://localhost:9200/_cluster/pending_tasks' Cluster Reroute The reroute command allows to explicitly execute a cluster reroute allocation command including specific commands. For example, a shard can be moved from one node to another explicitly, an allocation can be canceled, or an unassigned shard can be explicitly allocated on a specific node. Cluster Update Settings Allows to update cluster wide specific settings. Settings updated can either be persistent (applied cross restarts) or transient (will not survive a full cluster restart). Nodes Stats The cluster nodes stats API allows to retrieve one or more (or all) of the cluster nodes statistics. curl -XGET 'http://localhost:9200/_nodes/stats' curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/stats' The first command retrieves stats of all the nodes in the cluster. The second command selectively retrieves nodes stats of onlynodeId1andnodeId2 Nodes Info The cluster nodes info API allows to retrieve one or more (or all) of the cluster nodes information. curl -XGET 'http://localhost:9200/_nodes' curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2' The first command retrieves information of all the nodes in the cluster. The second command selectively retrieves nodes information of onlynodeId1andnodeId2. All the nodes selective options are explainedhere. By default, it just returns all attributes and core settings for a node. It also allows to get only information onsettings,os,process,jvm,thread_pool,network,transport,httpandplugins: curl -XGET 'http://localhost:9200/_nodes/process' curl -XGET 'http://localhost:9200/_nodes/_all/process' curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/jvm,process' # same as above curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/info/jvm,process' curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/_all The_allflag can be set to return all the information - or you can simply omit it. plugins- if set, the result will contain details about the loaded plugins per node: name: plugin name description: plugin description if any site:trueif the plugin is a site plugin jvm:trueif the plugin is a plugin running in the JVM url: URL if the plugin is a site plugin Nodes hot_threads An API allowing to get the current hot threads on each node in the cluster. Endpoints are/_nodes/hot_threads, and/_nodes/{nodesIds}/hot_threads. The output is plain text with a breakdown of each node’s top hot threads. Nodes Shutdown The nodes shutdown API allows to shutdown one or more (or all) nodes in the cluster.

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

Android笔记:CoverFlow相关

====================效果一,修改getChildDrawingOrder方法================================= 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 // 重载视图显示顺序让左到中间显示,再到右到中间显示 protected int getChildDrawingOrder( int childCount, int i) { // long t = getSelectedItemId(); // int h = getSelectedItemPosition(); // if (i < childCount / 2) // { // return i; // } // return childCount - i - 1 + childCount / 2; // Reset the last position variable everytime we are starting a new // drawing loop if (i == 0 ) lastPosition = 0 ; int centerPosition = getSelectedItemPosition() - getFirstVisiblePosition(); if (i == childCount - 1 ) { return centerPosition; } else if (i >= centerPosition) { lastPosition++; return childCount - lastPosition; } else { return i; } } 修改后效果: ==============================参考资料=========================================== 1.Gallery重叠效果 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=97392&reltid=186440&pre_pos=8&ext= 2.Modifying Coverflow to use xml file http://stackoverflow.com/questions/16078716/modifying-coverflow-to-use-xml-file 3.使用Android自带Gallery组件实现CoverFlow,源码+解析 http://www.eoeandroid.com/thread-39709-1-1.html 4.Android实现CoverFlow效果 http://blog.csdn.net/jxsmallmouse/article/details/7732341 5.CoverFlow http://www.inter-fuser.com/2010/01/android-coverflow-widget.html http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1290635,如需转载请自行联系原作者

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

cisco 日志相关信息

下面的内容来自:http://bbs.51cto.com/thread-911912-1.html 5#大侠唐在飞 发的内容 ,我存在自己的博客里就是为了方便以后查看 日志消息通常是指Cisco IOS中的系统错误消息。其中每条错误信息都被分配了一个严重级别,伴随一些只是问题或事件的严重性分析。Cisco IOS发送日志消息(包括debug命令的输出)到日志记录过程。默认情况下,只发送到控制台接口,可可以将日志记录到路由器内部缓存,终端线路,系统日志服务器和SNMP管理站。一、日志消息格式 在Cisco IOS设备中,日志消息采用下面的格式:%<facility>-<severity>-<mnemonic>:<message_text> 下面是一个简单的例子:%LINK-5-CHANGED:Interface Ethernet1,changed state toadministratively down 假设为日志消息已经启用了时间戳和序列号,对于日志消息,将看到以下信息,首先是序列号,紧接着是时间戳,然后才是消息:000022:Jan 02 15:42:11.048:%LINK-5-CHANGED:Interface Ethernet0,changed state to administratively down二、基本日志记录配置 在设置日志记录时,需要完成两个基本的任务:打开日志记录和控制日志在线路上的显示。1、打开日志记录 默认地,日志记录只在路由器的控制台线路上打开,要在其他地方记录日志,则必须相应地打开日志记录并进行配置。使用以下命令打开日志记录:Router(config)#logging on 使用logging on命令,可以为日志记录打开其他已配置的目的地,如系统日志服务器或路由器的内部缓存。在将系统消息记录到除了控制台端口的其他位置之前,必须执行该命令;但是,使用其他的logging命令,可以单独控制哪个过程将接收日志消息。例如,已经配置了命令,将日志消息记录到系统日志服务器,但是没有执行logging on命令,则Cisco IOS只将消息记录到控制台线路。二、配置同步日志记录 logging synchronous命令的主要目的是将日志消息输出和调试输出同步到路由器线路上:控制台、辅助和VTY线路。 同步日志的主要目的是控制何时消息被显示在路由器的线路上。当启用这个特性时,同步日志使得Cisco IOS显示消息,然后执行一个等价的Ctrl-R的命令,这使得路由器将已经输入的信息重新显示在命令行上。 可以使用logging synchronous命令来影响日志消息的显示:Router(config)#line type #Router(config)-line)#logging synchronous [level severity_level|all][limit #_of_lines] 严重程度是指日志消息的严重程度,这些消息是异步显示的。严重性数值比该值高的消息(更低严重性的消息)被同步显示;数值更低的(更严重)消息被异步显示。默认的严重级别是2。参数all使得所有消息都被异步显示,不管分配的严重级别。 参数limit指定在路由器开始丢弃新的消息前,有多少个同步消息可以排在队列中。默认是20条消息。如果到达该阀值,路由器必须丢弃消息时,就会看到以下日志消息,说明路由器必须丢弃的消息数目:%SYS-3-MSGLOST #_of_messages due to overflow 同步日志的主要缺点是当路由器正在产生许多消息,而我们正在CLI中很慢地输入时,路由器必须丢弃超过阀值地任何消息。因此,将无法在线路上看到这些消息。如果看到这类事件对你来说很关键,建议将它们记录在路由器内部缓存、系统日志服务器或者SNMP管理台。 在给非控制台线路(如VTY)设置很大地队列极限值时要小心。如果黑客可以进入路由器上的VTY,而VTY上打开了同步日志,则黑客可以在输入命令期间使VTY线路空闲。这将导致Cisco IOS用消息填满很大的队列,可能会耗尽路由器的整个内存。三、日志记录目的地 可以将日志信息转发到以下4种基本目的地●线路;●内部缓存;●系统日志服务器;●SNMP管理台。1、严重级别 每个日志消息被关联一个严重级别,用来分类消息的严重等级:数字越低,消息越严重。严重级别的范围从0(最高)到7(最低)。使用logging命令可以用数字或者名称来指定严重性。 日志消息的严重级别参数级别 系统日志描述 描述emergencies0LOG_EMERG系统不可用alerts1LOG_ALERT在端口下是需要立即操作的critical2LOG_CRIT路由器上存在一个关键状态errors3LOG_ERR路由器上存在一个错误状态warnings4LOG_WARNING路由器上存在一个警告状态notifications5LOG_NOTICE路由器上发生了一个平常的但重要的事件informational6LOG_INFO路由器上发生了一个信息事件debugging7LOG_DEBUG来自debug命令的输出缺省地,console、monitor、buffer的logging被设置为debugging级,而trap(syslog)服务器的logging被设置为informational 如果在ACL语句中使用log关键字,则只有严重级别设为6或者7时,才会在控制台上显示输出。 对于日志记录功能可以控制的一个选项是,哪些消息被记录到4个目的地。例如,在控制台上,可以限制记录严重级别为4(即显示从0到4的消息)的日志消息;但是对系统日志服务器,可以设置为6(0到6)。2、线路日志 有两个命令可用于控制日志消息被发送到路由器的线路上: Router(config)#logging console [severity_level] Router(config)#logging monitor [severity_level] logging console命令是指将日志记录到物理的TTY,如控制台和辅助线路。logging monitor命令将日志记录到逻辑VTY。默认地,记录日志到控制台对所有级别都打开;但是可以通过改变logging console命令中的严重级别来修改。 将日志记录到VTY和AUX默认是关闭的,要打开就要执行特权级的EXEC命令terminal monitor,将控制台日志消息复制到VTY,或者配置logging monitor命令。如果使用了后者,在初次访问路由VTY时,则不需要执行terminal monitor命令来查看TTY命令行的日志输出。在配置logging monitor命令时,如果不指定严重级别,则默认为7(调试)。 对两个命令,都必须使用logging on命令来打开日志记录。 由于将消息显示在终端线路上,如控制台,会给路由器增加处理负担,所以建议将严重级别改到比调试更高的严重级别(较低的数字)。如果要查看较低严重级别的消息,可以使用路由器内部缓存、系统日志服务器,或者SNMP管理台。 如果在生成错误和调试消息的过程中,关闭logging on命令,会大大降低路由器的速度,直到这些消息显示在路由器的线路上。因此为显示在控制台线路的日志消息分配严重级别时要小心。3、内部缓存日志 记录日志消息到TTY或者VTY存在的一个问题是,如果没在看连接线路的屏幕输出,消息滚过屏幕并超出了终端软件的历史缓存,则没有任何机制可以再看到那些丢失的消息。如果把日志消息记录到除了线路以外的其他目的地,则可以避免这个问题。 一个解决方案是将日志消息记录到路由器的内部缓存,根据路由器平台的不同,该项可能是默认打开或关闭的;大多数平台下,默认是打开的。使用以下命令将日志记录到路由器的缓存: Router(config)#logging buffered [buffer_size|severity_level] 该命令有两个参数,buffer_size指定为内部缓存分配多大的内存,以字节为单位。使用default logging buffered命令将缓存大小设回出厂的默认值。severity_level指出应该记录的严重级别。默认的大小和严重级别(通常是7)依赖于平台型号。4、系统日志服务器日志 以下是将日志记录到系统日志服务器的基本命令: Router(config)#logging on Router(config)#logging host {IP_address|hostname} Router(config)#logging trap severity_level Router(config)#logging source-interface interface_type_interface_#Router(config)#logging origin-id {hostname|ip|string string} Router(config)#logging facility facility_type logging on命令允许将日志记录到非控制台目的地。logging host命令指定系统日志服务器的IP地址、主机名或者完全合格的域名(FQDN)。如果不只一次输入该命令,指定不同的系统日志服务器目的地,可以建立路由器使用的系统日志服务器列表。 在Cisco IOS12.2(15)T版本之前,使用logging {hostname|IP_address}命令打开陷阱日志记录,现在使用logging host命令。 logging trap命令指定要发送到系统日志服务器的日志消息的严重级别。默认是informational。 默认地,路由器用来到达系统日志服务器的接口IP地址将作为IP数据包头中的源IP地址。使用logging source-interface命令来生成一致的日志条目。这样路由器使用一个相同的源地址。使用该命令时,必须指定接口的名称和编号。只有路由器有两个或更多接口可以到达系统日志服务器时,该命令才是必需的。但是为了一致性,要确保在系统日志数据包中使用相同的源地址。这使得在系统日志服务器上执行过滤规则来阻止的不希望的日志消息变得更容易。 在12.2(15)T版本中,Cisco增加了将路由器身份信息添加到系统日志消息的功能,这样可以基于每个路由器,更容易地在系统日志服务器上搜寻或者分离信息。这是由logging origin-id实现的。该命令默认是关闭的。身份信息可以选择hostname(使用hostname命令配置的名称)、IP地址(发送接口的IP地址)和string(用来定义路由器身份信息的字符串)。如果字符串包含空格,则必须用引号将它括起来。 logging facility命令定义在运行UNIX的系统日志服务器上使用的工具,日志信息将保存在该服务器上。 系统日志工具类型 参数 描述auth授权系统cronCron工具daemon系统守护程序kern内核local0到local7本地定义的消息(从0到7)lpr打印机系统mailE-mail系统newsUSENET新闻sys9到sys14系统使用syslog系统日志user用户定义进程uucpUNIX到UNIX的复制系统 如果不指定工具,默认是local7。在UNIX上,可以通过编辑适当的配置文件来为指定的工具指定日志文件的保存位置。例如,编辑/etc/syslog配置文件,可以为工具创建一个条目。如:local7.debugging /usr/adm/logs/router.log 该例中,工具级别是local7,debugging关键字指定了系统日志记录级别。系统日志级别将决定哪个级别的消息将保存在以下的文件中:任何该严重级别及更高级别的消息将存储在这个特定的文件中。5、SNMP日志 要将日志消息发送到SNMP管理台,要执行以下命令: Router(config)#snmp-server enable trap syslog 然后,有三个命令控制将日志消息记录到管理台: Router(config)#logging on Router(config)#logging history severity_level Router(config)#logging history size number 第二个命令指定哪些严重级别的日志消息应该被发送到SNMP管理台。默认级别是warning。由于SNMP使用UDP,而UDP是不可靠的连接,系统日志陷阱保存在路由器的历史表中。至少一条系统日志消息(最新的一条)被保存在历史表中(默认是一条消息)。可以用logging history size将这个值增加到500条。 从Cisco IOS12.2(1.4)版本开始,Cisco IOS可以使用ip nat log translations syslog命令来记录每个NAT转换。四、其他日志命令1、日期和时间戳 默认地,日志消息不包括日期和时间戳。使用以下两个命令中的一个来添加日期和时间戳: Router(config)#service timestamps {debug|log} uptime 或者 Router(config)#service timestamps {debug|log} datetime [msec] [localtime] [show-timezone] [year] 可以在两种类型的消息中添加时间戳:调试和日志消息。使用debug参数使Cisco IOS在调试输出时包括时间戳。使用log参数则在每种日志消息中添加一个时间戳。第一个命令包括了uptime参数,使得Cisco IOS在消息中包括路由器开机以来的时间,如: 1w0d:%sys-5-CONFIG_I:Configured from console by console 如果要知道准确的日期和时间,则使用datetime参数。这个参数使得Cisco IOS在消息中包括日期和时间(日期和时间使用UTC格式),标准格式是:MMM DD HH:MM:SS。当使用datetime参数时,有一些可选的参数可用。msec参数在消息中包括毫秒信息。localtime显示基于路由器本地配置的时区时间。默认情况下,年份信息不包括在时间信息中,但是使用可选的year则可以包括该信息。show-timezone参数在日期和时间输出中包括时区名称。下面是一个log参数和datetime、localtime和show-timezone选项一起使用的简单例子: (.May 23 11:13:25 UTC: %SYS-5-CONFIG_I:Configured from console by consle) 日志消息一般是从三种字符的一种开始的:空格、星号或者句点。 日志消息起始字符参数名称描述 空格路由器的时钟被手动设置,或者和NTP时间服务器同步*星号路由器的始终没有被设置,或者没有和NTP服务器同步.句点路由器的时钟被设置为同步,但和NTP服务器失去联系2、序列号 除了将时间戳添加到日志消息中外,还可以让Cisco IOS在每条消息中显示序列号。可以使用以下命令来实现: Router(config)#service sequence-numbers3、速率限制 从Cisco IOS12.1(3)T版本开始,可以用logging rate-limit命令以秒为单位限制记录日志消息的速率 Router(config)#logging rate-limit {number|all number|console number}[except severity] 默认地,路由器上没有速率限制。通过指定一个从1到10,000的数。可以将每秒记录的日志消息数限制到该值。all关键字,后面跟一个数值,将作用于所有日志记录和调试消息。console关键字则限制将日志消息记录到控制台的速率。except参数对指定严重级别或者根高级别的消息建立一个例外。 强烈建议使用该命令,特别是在控制台接口上。在受到攻击时,会出现泛洪,该命令可以减少路由器需要处理的消息量。五、日志记录验证1、show logging命令 show logging显示了当前系统日志错误和事件记录的状态,包括所有配置的系统日志服务器地址,哪种类型日志打开,以及日志记录统计。以下是命令的格式: Router#show logging [summary] 使用clear logging命令清除内部缓存器中的日志消息。2、show logging history命令 该命令显示了系统日志历史表的大小、表中的消息的状态以及消息本身。六、日志记录和错误计数 如果正在使用路由器内部缓存,并且较老的消息正在老化时,该特性非常有用。使用该特性,Cisco IOS仍然会跟踪特定日志消息的发生数,以及该消息最后一次发生的情况。如果内部缓存不能够保留所有消息,而同样的错误或者问题却持续发生时,则该特性很有用。该特性基本上可以替代上面讨论的show logging summary命令 在配置模式执行以下命令启用该特性: Router(config)#logging count 该命令对每个日志消息进行计数,包括每种消息类型最后一次发生的时间戳。 启用该特性后,可以使用show logging count命令来查看错误计数。 本文转自孤舟夜航之家博客51CTO博客,原文链接http://blog.51cto.com/cysky/773537如需转载请自行联系原作者 cysky

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

lvm相关命令学习

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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 我的博客已迁移到xdoujiang.com请去那边和我交流 基础环境 1、当前版本 cat /etc/debian_version 7.8 2、安装包lvm2 apt-get install lvm2-y 一、将sdbsdcsdd三块分区加到卷组(hadoop),并创建5G的逻辑卷(hadoop1),PE默认 1、使用pvcreate命令将sdbsdcsdd分区创建成物理卷(pvcreate-initializeadiskorpartition for usebyLVM) pvcreate /dev/sdb /dev/sdc /dev/sdd Writingphysicalvolumedatatodisk "/dev/sdb" Physicalvolume "/dev/sdb" successfullycreated Writingphysicalvolumedatatodisk "/dev/sdc" Physicalvolume "/dev/sdc" successfullycreated Writingphysicalvolumedatatodisk "/dev/sdd" Physicalvolume "/dev/sdd" successfullycreated EXAMPLES Initializepartition #4onthethirdSCSIdiskandtheentirefifthSCSIdiskforlaterusebyLVM: pvcreate /dev/sdc4 /dev/sde 2、使用pvs或pvdisplay命令查看 1)pvs(pvs-reportinformationaboutphysicalvolumes) PVVGFmtAttrPSizePFree /dev/sdb lvm2a--10.00g10.00g /dev/sdc lvm2a--10.00g10.00g /dev/sdd lvm2a--10.00g10.00g 2)pvdisplay(pvdisplay-displayattributesofaphysicalvolume) "/dev/sdb" isanewphysicalvolumeof "10.00GiB" ---NEWPhysicalvolume--- PVName /dev/sdb VGName PVSize10.00GiB AllocatableNO PESize0 TotalPE0 FreePE0 AllocatedPE0 PVUUIDOkVC5O-SWOq-daXZ-BrNy-Hy83-G9Sm-d8bMT4 "/dev/sdc" isanewphysicalvolumeof "10.00GiB" ---NEWPhysicalvolume--- PVName /dev/sdc VGName PVSize10.00GiB AllocatableNO PESize0 TotalPE0 FreePE0 AllocatedPE0 PVUUID7vg9eM-pIRR-Ahi0-BNvn-A1pr-WQa0-hvdC9X "/dev/sdd" isanewphysicalvolumeof "10.00GiB" ---NEWPhysicalvolume--- PVName /dev/sdd VGName PVSize10.00GiB AllocatableNO PESize0 TotalPE0 FreePE0 AllocatedPE0 PVUUIDMyPYTC-Vk4P-ltjL-SX6w-jK3V-422c-HACxOK 3、使用vgcreate命令创建hadoop卷组并将sdbsdcsdd加入到卷组里(vgcreate-createavolumegroup) vgcreatehadoop /dev/sdb /dev/sdc /dev/sdd Volumegroup "hadoop" successfullycreated 这里使用默认的PE4MB EXAMPLES Tocreateavolumegroupnamedtest_vgusingphysicalvolumes /dev/sdk1 ,and /dev/sdl1 withdefaultphysicalextentsizeof4MB: vgcreatetest_vg /dev/sdk1 /dev/sdl1 4、使用vgs或vgdisplay命令查看 1)vgs(vgs-reportinformationaboutvolume groups ) VG #PV#LV#SNAttrVSizeVFree hadoop300wz--n-29.99g29.99g 2)vgdisplay(vgdisplay-displayattributesofvolume groups ) ---Volumegroup--- VGNamehadoop SystemID Formatlvm2 MetadataAreas3 MetadataSequenceNo1 VGAccess read /write VGStatusresizable MAXLV0 CurLV0 OpenLV0 MaxPV0 CurPV3 ActPV3 VGSize29.99GiB PESize4.00MiB TotalPE7677 AllocPE/Size0/0 FreePE/Size7677/29.99GiB VGUUID9BpObQ-0qNt-7MRM-cJ4Y-aMyE-5ZEd-GoSi9N 5、使用lvcreate命令创建逻辑卷为hadoop1大小是5G(lvcreatecreatesanewlogicalvolume in avolumegroup) lvcreate-L5G-nhadoop1hadoop Logicalvolume "hadoop1" created -L,--sizeLogicalVolumeSize[bBsSkKmMgGtTpPeE] Givesthesizetoallocate for thenewlogicalvolume.AsizesuffixofK for kilobytes,M for megabytes, G for gigabytes,T for terabytes,P for petabytesorE for exabytesisoptional.Defaultunitismegabytes. 6、使用lvs或lvdisplay命令查看 1)lvs(lvs-reportinformationaboutlogicalvolumes) LVVGAttrLSizePoolOriginData%MoveLogCopy%Convert hadoop1hadoop-wi-a---5.00g 2)lvdisplay(lvdisplay-displayattributesofalogicalvolume) ---Logicalvolume--- LVPath /dev/hadoop/hadoop1 LVNamehadoop1 VGNamehadoop LVUUIDy8CHyc-G7du-h9jZ-XV4T-dvZC-bzv1-NdsbS0 LVWriteAccess read /write LVCreationhost, time debian,2015-06-1223:51:09-0400 LVStatusavailable #open0 LVSize5.00GiB CurrentLE1280 Segments1 Allocationinherit Readaheadsectorsauto -currently set to256 Blockdevice254:0 7、将 /dev/hadoop/hadoop1 格式化成ext4 mkfs.ext4 /dev/hadoop/hadoop1 8、写进 /etc/fatab 中并挂载 /dev/mapper/hadoop-hadoop1 /hadoop ext4defaults00 mount -a 9、查看是否挂载成功 df -Th FilesystemTypeSizeUsedAvailUse%Mountedon rootfsrootfs9.2G1.7G7.1G19%/ udevdevtmpfs10M010M0% /dev tmpfstmpfs99M256K99M1% /run /dev/disk/by-uuid/f730250f-21de-45dd-a3e7-6c5d74508f4b ext49.2G1.7G7.1G19%/ tmpfstmpfs5.0M05.0M0% /run/lock tmpfstmpfs961M0961M0% /run/shm /dev/sda5 ext417G180M16G2% /opt /dev/mapper/hadoop-hadoop1 ext45.0G138M4.6G3% /hadoop 二、将 /dev/mapper/hadoop-hadoop1 逻辑卷夸大到40G并挂载 1、使用pvcreate命令将sde分区创建成物理卷 pvcreate /dev/sde Writingphysicalvolumedatatodisk "/dev/sde" Physicalvolume "/dev/sde" successfullycreated 2、使用vgextend命令将sde加入到卷组hadoop(vgextend-addphysicalvolumestoavolumegroup) vgextendhadoop /dev/sde Volumegroup "hadoop" successfullyextended Examples vgextendvg00 /dev/sda4 /dev/sdn1 triestoextendtheexistingvolumegroupvg00 bythenewphysicalvolumes(seepvcreate(8)) /dev/sdn1 and /dev/sda4 . 3、先查看下卷组有多少PE vgdisplay ---Volumegroup--- VGNamehadoop SystemID Formatlvm2 MetadataAreas4 MetadataSequenceNo8 VGAccess read /write VGStatusresizable MAXLV0 CurLV1 OpenLV1 MaxPV0 CurPV4 ActPV4 VGSize39.98GiB PESize4.00MiB TotalPE10236 AllocPE/Size8956/34.98GiB FreePE/Size1280/5.00GiB VGUUID9BpObQ-0qNt-7MRM-cJ4Y-aMyE-5ZEd-GoSi9N 一共有10236个PE 4、使用lvextend命令将现有逻辑卷为hadoop1增大到40G(lvextend-extendthesizeofalogicalvolume) lvextend-l10236 /dev/hadoop/hadoop1 Extendinglogicalvolumehadoop1to39.98GiB Logicalvolumehadoop1successfullyresized -l,--extents[+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] Extendor set thelogicalvolumesize in units oflogicalextents. 5、使用resize2fs命令扩大文件系统(resize2fs-ext2 /ext3/ext4 file systemresizer) resize2fs /dev/hadoop/hadoop1 resize2fs1.42.5(29-Jul-2012) Filesystemat /dev/hadoop/hadoop1 ismountedon /hadoop ;on-lineresizingrequired old_desc_blocks=1,new_desc_blocks=3 Performinganon-lineresizeof /dev/hadoop/hadoop1 to10481664(4k)blocks. Thefilesystemon /dev/hadoop/hadoop1 isnow10481664blockslong. 6、最后检查下是否扩大到40G了 df -Th FilesystemTypeSizeUsedAvailUse%Mountedon rootfsrootfs9.2G1.7G7.1G19%/ udevdevtmpfs10M010M0% /dev tmpfstmpfs99M260K99M1% /run /dev/disk/by-uuid/f730250f-21de-45dd-a3e7-6c5d74508f4b ext49.2G1.7G7.1G19%/ tmpfstmpfs5.0M05.0M0% /run/lock tmpfstmpfs961M0961M0% /run/shm /dev/sda5 ext417G180M16G2% /opt /dev/mapper/hadoop-hadoop1 ext440G143M38G1% /hadoop 三、参考文章 https: //wiki .archlinux.org /index .php /LVM_ %28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29 本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1661595,如需转载请自行联系原作者

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

FFMPEG相关开源项目

1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidFFmpeg2.ijkplayer - Android/iOS 基于FFMPEG库的播放器http://git.oschina.net/bbcallen/ijkplayergit下载地址: http://git.oschina.net/bbcallen/ijkplayer.git git@git.oschina.net:bbcallen/ijkplayer.git https://github.com/bbcallen/ijkplayer 3. KxMovie - IOS平台基于FFMPEG播放器https://github.com/kolyvan/kxmovie4.Vitamio - Android/IOS平台上的多媒体框架,带有硬件加速解码和渲染.https://github.com/yixia/VitamioBundle5.YUV2RGB - 顾名思义,YUV转RGB http://wss.co.uk/pinknoise/yuv2rgb/ 6.TSDemux - 将TS流解码为PES或ES 下载这个源码需要FQ。 http://code.google.com/p/tsdemuxer/ 7.MPlayer - 跨平台的视频播放器,可在Linux和其他类Unix系统、Windows及Mac OS X系统使用 http://www.mplayerhq.hu/design7/dload.html 8.VLC - 跨平台的视频播放器。现在也有安卓版本。也可以作为流媒体服务器。 http://www.videolan.org/vlc/index.html 9.FFDshow - 免费的编解码软件,基于windows平台。原因就是directshow就是微软开发的,只能用于windows平台。 http://sourceforge.NET/projects/ffdshow-tryout/ 这是笔者目前接触到的,等以后遇到了,再整理。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册