w1100n
This site is best viewed in Google Chrome
wiloon, 7/27/2017 15:21

http://blog.csdn.net/wangshubo1989/article/details/73993485 什么是uuid? uuid是Universally Unique Identifier的缩写,即通用唯一识别码。 uuid的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 uuid。 A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems. 例如Java中生成uuid: package com.mytest; import java.util.UUID; public class UTest { public static void main(String[] args) { UUID uuid … Continue reading

wiloon, 7/27/2017 15:14

http://www.cnblogs.com/baiyuxiong/p/4545032.html Go随机数 Go math/rand包用于生成随机数。 代码: 复制代码 package main import “fmt” import “math/rand” func main() { fmt.Println(rand.Intn(100)) //产生0-100的随机整数 fmt.Println(rand.Float64()) //产生0.0-1.0的随机浮点点 s1 := rand.NewSource(42) //用指定值创建一个随机数种子 r1 := rand.New(s1) fmt.Print(r1.Intn(100), “,”) fmt.Print(r1.Intn(100)) fmt.Println() s2 := rand.NewSource(42) //同前面一样的种子 r2 := rand.New(s2) fmt.Print(r2.Intn(100), “,”) fmt.Print(r2.Intn(100)) … Continue reading

wiloon, 7/27/2017 14:30

http://xiaorui.cc/2016/03/23/golang%E9%9A%8F%E6%9C%BAtime-sleep%E7%9A%84duration%E9%97%AE%E9%A2%98/ golang随机time.sleep的Duration问题 2016-3-23 Golang rfyiamcool 5,894 views 碰到一个Golang time.Sleep()的问题,这golang的time.sleep的功能貌似要比python ruby都要精细些,python的等待只是time.sleep()而已,而golang可以time.Sleep(10 * time.Second) 毫秒、秒分时等不同日期来搞… 大事不干,净整些没用的… 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新http://xiaorui.cc/?p=3034 重现一下问题,用math/rannd得到10以内的随机数,然后time.sleep()等待… num := rand.Int31n(10) time.sleep(num * time.Second) 1 2 num := rand.Int31n(10) time.sleep(num * time.Second) 会遇到下面的问题: #xiaorui.cc command-line-arguments ./lock.go:88: invalid operation: int(DefaultTimeout) * … Continue reading

hue
wiloon, 7/26/2017 9:09

http://www.cnblogs.com/smartloli/p/4527168.html Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。   Hue在数据库方面,默认使用的是SQLite数据库来管理自身的数据,包括用户认证和授权,另外,可以自定义为MySQL数据库、Postgresql数据库、以及Oracle数据库。其自身的功能包含有: 对HDFS的访问,通过浏览器来查阅HDFS的数据。 Hive编辑器:可以编写HQL和运行HQL脚本,以及查看运行结果等相关Hive功能。 提供Solr搜索应用,并对应相应的可视化数据视图以及DashBoard。 提供Impala的应用进行数据交互查询。 最新的版本集成了Spark编辑器和DashBoard 支持Pig编辑器,并能够运行编写的脚本任务。 Oozie调度器,可以通过DashBoard来提交和监控Workflow、Coordinator以及Bundle。 支持HBase对数据的查询修改以及可视化。 支持对Metastore的浏览,可以访问Hive的元数据以及对应的HCatalog。 另外,还有对Job的支持,Sqoop,ZooKeeper以及DB(MySQL,SQLite,Oracle等)的支持。   下面就通过集成部署,来预览相关功能。

wiloon, 7/25/2017 17:26

http://www.lightxue.com/how-logrotate-works logrotate机制和原理 2015-07-23 日志实在是太有用了,它记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件。这就是通常说的日志滚动(log rotation)。 最近整理nginx日志,用了一个类Unix系统上的古老工具——logrotate,发现意外的好用。想了解这个工具的用法推荐看这里。我了解了一下这个工具的运行机制和原理,觉得挺有趣的。 运行机制 logrotate在很多Linux发行版上都是默认安装的。系统会定时运行logrotate,一般是每天一次。系统是这么实现按天执行的。crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate。在centos上脚本内容是这样的: /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]” fi exit 0 可以看到这个脚本主要做的事就是以/etc/logrotate.conf为配置文件执行了logrotate。就是这样实现了每天执行一次logrotate。 因为我的系统执行/etc/cron.daily目录下的脚本不是我想滚动日志的时间,所以我把/etc/cron.daily/logrotate拷了出来,改了一下logrotate配置文件的路径,然后在crontab里加上一条指定时间执行这个脚本的记录,自定义周期滚动日志就大功告成了。这种自定义的方式有两点要注意: 配置文件里一定要配置rotate 文件数目这个参数。如果不配置默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除。多么痛的领悟,说多了都是泪。 执行logrotate命令最好加-f参数,不然有时候配置文件修改的内容不生效。 很多程序的会用到logrotate滚动日志,比如nginx。它们安装后,会在/etc/logrotate.d这个目录下增加自己的logrotate的配置文件。logrotate什么时候执行/etc/logrotate.d下的配置呢?看到/etc/logrotate.conf里这行,一切就不言而喻了。 include /etc/logrotate.d 原理 … Continue reading

wiloon, 7/25/2017 15:32

wget https://dl.influxdata.com/chronograf/releases/chronograf-1.3.4.0.x86_64.rpm sudo yum localinstall chronograf-1.3.4.0.x86_64.rpm

wiloon, 7/25/2017 9:52

http://0x3f.org/post/let-rxvt-unicode-support-tags-and-links/ 为rxvt-unicode开启标签和链接支持 写完urxvt-unicode快速上手,本以为已将urxvt的用法一网打尽,不料AndyWxy网友又找到了两个新的功能:使urxvt启用标签和在urxvt中打开网页链接。 标签功能很实用,一般为了达到复用终端窗口的目的会采用两种方式:一是配合screen使用,另一个就是启用标签。然而前者有一个缺点就是不直观,标签页恰好能弥补这个缺陷。urxvt不愧是个功能强大的终端工具,如果在编译时开启perl支持,则urxvt可启用多标签功能。用法如下: 一是在启动的时候加入命令行参数: urxvt -pe tabbed 二是在配置文件“.Xresources”中添加如下配置信息: URxvt.perl-ext-common: default,tabbed 则默认情况下执行urxvt就会打开多标签功能。urxvt的标签支持使用鼠标操作,同时可以使用Ctrl+Shift+左右箭头来切换标签页,使用Ctrl+Shift+向下箭头开启新标签。 另外一个功能就是可以通过在urxvt中的链接上点击鼠标左键来通过设定的浏览器打开之。首先在“.Xresources”文件中添加如下内容: URxvt.urlLauncher: firefox URxvt.matcher.button: 1 然后使用如下命令打开urxvt: urxvt -pe matcher 即可。也可以在配置文件中添加上述内容之后再添加一行: URxvt.perl-ext-common: matcher 此后即默认开启在终端窗口中打开链接的功能。注意修改“.Xresources”文件后需要执行如下命令才能使修改后的配置文件生效: xrdb ~/.Xresources

star, 7/23/2017 13:37 | Tag:

国债3年期 利率 3.8% 国债5年期 利率 4.17% 国有银行的3年期及5年期定存的利率普遍低于3%,中小银行普遍低于3.5% 余额宝浮动利率约4.08%,每万份收益1.0856,货币基金 朝朝盈七日年化收益率4.174%,每万份收益1.1287,投资上限五万 陆金所零活宝的7日收益率为4.75%,每万元收益为1.27元,项目性质:开放式现金管理类定向委托投资项目; 定向委托投资标的投资范围为委托贷款、信托计划(含信托受益权)、基金公司及子公司发行的特定/专项资产管理计划、证券公司发行的资产管理计划、商业银行理财产品、基金公司货币基金、票据收益权、银行存款等。其中银行存款的投资比例不低于30%,其它投资范围比例不高于70%。 指数基金(Index Fund)

wiloon, 7/21/2017 9:42

https://my.oschina.net/andyfeng/blog/601291 http://gzmaster.blog.51cto.com/299556/72278

wiloon, 7/20/2017 10:45

http://blog.csdn.net/aitangyong/article/details/53840719 https://github.com/rholder/guava-retrying 对于开发过网络应用程序的程序员来说,重试并不陌生,由于网络的拥堵和波动,此刻不能访问服务的请求,也许过一小段时间就可以正常访问了。比如下面这段给某个手机号发SMS的伪代码: view plain copy // 发送SMS public boolean sendSMS(String phone, String content) { int retryTimes = 3; for(int i=0; i<=3; i++) { try { boolean result = doSomething(phone, content); // 发送成功直接返回 if(result == true) { return true; } … Continue reading

wiloon, 7/20/2017 8:57

https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon

wiloon, 7/18/2017 16:27

对于mysql,schema和database可以理解为等价的. As defined in the MySQL Glossary:In MySQL, physically, a schema is synonymous with a database. You can substitute the keyword SCHEMA instead of DATABASE in MySQL SQL syntax, for example using CREATE SCHEMA instead of CREATE DATABASE.Some other database … Continue reading

wiloon, 7/13/2017 16:21

influxdb current version 1.3.1 #reporting-disabled = false [meta] dir = “/var/lib/influxdb/meta” #retention-autocreate = true [data] dir = “/var/lib/influxdb/data” wal-dir = “/var/lib/influxdb/wal” wal-fsync-delay = “0s” index-version = “inmem” index-version = “tsi1” trace-logging-enabled = false query-log-enabled = true cache-max-memory-size = 1073741824 cache-snapshot-memory-size … Continue reading

wiloon, 7/11/2017 16:06

https://blog.alphatr.com/yahei-consolas.html Yahei Consolas Hybrid 是一种合成字体,是由微软雅黑的中文字体和 Consolas 的英文字体合成的,Consolas 字体是微软专为程序员开发的一种字体,但没有中文支持,所以 Yahei Consolas Hybrid 这种字体特别适合中英文的编程开发,代码编写 Yahei Consolas 下载安装: 下载地址:点击下载 下载下来,打开压缩包直接双击字体文件,在系统自带的字体预览程序左上角点击安装,字体就被安装进去了,也可以直接粘贴到系统的字体文件夹(%SystemRoot%\Fonts) 字体安装 使用方式: 这里以记事本为例,其他软件基本设置都差不多,打开 格式>字体…,弹出字体对话框,选择 Yahei Consolas Hybrid 字体,建议选择五号字体,点击确定 设置字体 下面是系统默认宋体和 Yahei Consolas Hybrid 的对比图 字体对比 PS:建议安装字体渲染工具 GDI++(32位)、ezGDI(64位),这样字体会更美观

wiloon, 7/11/2017 16:05

IntelliJ IDEA是一个非常强大的IDE,但是只有英文版,且默认的中文显示有一定问题。本文介绍了IntelliJ IDEA 12.0中文显示问题解决方案。 IDE本身的中文乱码 这个问题体现在IDE本身,比如打开文件浏览目录的时候,中文名的文件或目录会显示成方块。 解决方法: 进入设置页。File->Settings。 进入IDE Settings里的File Encodings项,把IDE Encoding项设置成UTF-8。确定。 进入IDE Settings里的Appearance项,选中Override default fonts by,把Name设置为你喜欢的字体(我使用的是Yahei Consolas Hybrid),Size根据自己喜好设置(我一般设为 14)。确定。 以上应该可以保证中文显示没有问题了。 编辑器的中文问题 这个问题体现在代码编辑区中写中文时,可能会乱码或者中文汉子全部重叠在一起。 首先要确定你正在编辑的文件是UTF-8编码的,有很多文件可能默认是ANSI编码。 至于中文重叠那是因为你所选用的默认' ;%ވZh8HE' ;%ވZh以来我写代码都是用的consolas,但是这个字体不支持中文,Intellij IDEA 12中如果使用默认的中文字体(不知道是哪个字体)就会重叠在一起,在网上找了好久,终于找到一个神一般的字体Yahei Consolas Hybrid,即微软雅黑和consolas的混合! 于是乎,File->Settings IDE Settings->Editor->Color & Fonts->Font,设置字体为Yahei Consolas Hybrid即可。 神一般的字体Yahei Consolas Hybrid下载 如果发现安装了这个字体但是在设置中找不到的话,尝试使用以下这个方法: … Continue reading

wiloon, 7/11/2017 0:38

https://www.linuxdashen.com/debian-8-server%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85lemp-nginx-mysqlmariadb-php https://www.linuxdashen.com/debian-8-vps%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85wordpress

wiloon, 7/7/2017 17:54

HBase Compaction的前生今世-身世之旅 2016年7月13日 范欣欣 HBase 了解HBase的童鞋都知道,HBase是一种Log-Structured Merge Tree架构模式,用户数据写入先写WAL,再写缓存,满足一定条件后缓存数据会执行flush操作真正落盘,形成一个数据文件HFile。随着数据写入不断增多,flush次数也会不断增多,进而HFile数据文件就会越来越多。然而,太多数据文件会导致数据查询IO次数增多,因此HBase尝试着不断对这些文件进行合并,这个合并过程称为Compaction。 Compaction会从一个region的一个store中选择一些hfile文件进行合并。合并说来原理很简单,先从这些待合并的数据文件中读出KeyValues,再按照由小到大排列后写入一个新的文件中。之后,这个新生成的文件就会取代之前待合并的所有文件对外提供服务。HBase根据合并规模将Compaction分为了两类:MinorCompaction和MajorCompaction Minor Compaction是指选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile,在这个过程中不会处理已经Deleted或Expired的Cell。一次Minor Compaction的结果是更少并且更大的StoreFile。 Major Compaction是指将所有的StoreFile合并成一个StoreFile,这个过程还会清理三类无意义数据:被删除的数据、TTL过期数据、版本号超过设定版本号的数据。另外,一般情况下,Major Compaction时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响。因此线上业务都会将关闭自动触发Major Compaction功能,改为手动在业务低峰期触发。 Compaction作用 | 副作用 上文提到,随着hfile文件数不断增多,一次查询就可能会需要越来越多的IO操作,延迟必然会越来越大,如下图一所示,随着数据写入不断增加,文件数不断增多,读取延时也在不断变大。而执行compaction会使得文件数基本稳定,进而IO Seek次数会比较稳定,延迟就会稳定在一定范围。然而,compaction操作重写文件会带来很大的带宽压力以及短时间IO压力。因此可以认为,Compaction就是使用短时间的IO消耗以及带宽消耗换取后续查询的低延迟。从图上来看,就是延迟有很大的毛刺,但总体趋势基本稳定不变,见下图二。 11 22 为了换取后续查询的低延迟,除了短时间的读放大之外,Compaction对写入也会有很大的影响。我们首先假设一个现象:当写请求非常多,导致不断生成HFile,但compact的速度远远跟不上HFile生成的速度,这样就会使HFile的数量会越来越多,导致读性能急剧下降。为了避免这种情况,在HFile的数量过多的时候会限制写请求的速度:在每次执行MemStore flush的操作前,如果HStore的HFile数超过hbase.hstore.blockingStoreFiles (默认7),则会阻塞flush操作hbase.hstore.blockingWaitTime时间,在这段时间内,如果compact操作使得HStore文件数下降到回这个值,则停止阻塞。另外阻塞超过时间后,也会恢复执行flush操作。这样做就可以有效地控制大量写请求的速度,但同时这也是影响写请求速度的主要原因之一。 可见,Compaction会使得数据读取延迟一直比较平稳,但付出的代价是大量的读延迟毛刺和一定的写阻塞。 Compaction流程 了解了一定的背景知识后,接下来需要从全局角度对Compaction进行了解。整个Compaction始于特定的触发条件,比如flush操作、周期性地Compaction检查操作等。一旦触发,HBase会将该Compaction交由一个独立的线程处理,该线程首先会从对应store中选择合适的hfile文件进行合并,这一步是整个Compaction的核心,选取文件需要遵循很多条件,比如文件数不能太多、不能太少、文件大小不能太大等等,最理想的情况是,选取那些承载IO负载重、文件小的文件集,实际实现中,HBase提供了多个文件选取算法:RatioBasedCompactionPolicy、ExploringCompactionPolicy和StripeCompactionPolicy等,用户也可以通过特定接口实现自己的Compaction算法;选出待合并的文件后,HBase会根据这些hfile文件总大小挑选对应的线程池处理,最后对这些文件执行具体的合并操作。可以通过下图简单地梳理上述流程: 33 触发时机 HBase中可以触发compaction的因素有很多,最常见的因素有这么三种:Memstore Flush、后台线程周期性检查、手动触发。 Memstore Flush: 应该说compaction操作的源头就来自flush操作,memstore flush会产生HFile文件,文件越来越多就需要compact。因此在每次执行完Flush操作之后,都会对当前Store中的文件数进行判断,一旦文件数# > ,就会触发compaction。需要说明的是,compaction都是以Store为单位进行的,而在Flush触发条件下,整个Region的所有Store都会执行compact,所以会在短时间内执行多次compaction。 后台线程周期性检查:后台线程CompactionChecker定期触发检查是否需要执行compaction,检查周期为:hbase.server.thread.wakefrequencyhbase.server.compactchecker.interval.multiplier。和flush不同的是,该线程优先检查文件数#是否大于,一旦大于就会触发compaction。如果不满足,它会接着检查是否满足major … Continue reading

wiloon, 7/5/2017 12:26

https://stackoverflow.com/questions/384284/how-do-i-rename-an-open-file-in-emacs ;; source: http://steve.yegge.googlepages.com/my-dot-emacs-file (defun rename-file-and-buffer (new-name) “Renames both current buffer and file it’s visiting to NEW-NAME.” (interactive “sNew name: “) (let ((name (buffer-name)) (filename (buffer-file-name))) (if (not filename) (message “Buffer ‘%s’ is not visiting a file!” name) (if (get-buffer … Continue reading

next page
辽ICP备14012896