首页 文章 精选 留言 我的

精选列表

搜索[安全相关],共10011篇文章
优秀的个人博客,低调大师

AutoML相关论文

本文为Awesome-AutoML-Papers的译文。 1、AutoML简介 Machine Learning几年来取得的不少可观的成绩,越来越多的学科都依赖于它。然而,这些成果都很大程度上取决于人类机器学习专家来完成如下工作: 数据预处理 Preprocess the data 选择合适的特征 Select appropriate features 选择合适的模型族 Select an appropriate model family 优化模型参数 Optimize model hyperparameters 模型后处理 Postprocess machine learning models 分析结果 Critically analyze the results obtained 随着大多数任务的复杂度都远超非机器学习专家的能力范畴,机器学习应用的不断增长使得人们对现成的机器学习方法有了极大的需求。因为这些现成的机器学习方法使用简单,并且不需要专业知识。我们将由此产生的研究领域称为机器学习的逐步自动化。 AutoML借鉴了机器学习的很多知识,主要包括: 贝叶斯优化 Bayesian optimization 结构化数据的大数据的回归模型 Regression models for structured data and big data 元学习 Meta learning 迁移学习 Transfer learning 组合优化 Combinatorial optimization. 2、目录 Papers Automated Feature Engineering Expand Reduce Hierarchical Organization of Transformations Meta Learning Reinforcement Learning Architecture Search Evolutionary Algorithms Local Search Meta Learning Reinforcement Learning Transfer Learning Hyperparameter Optimization Bayesian Optimization Evolutionary Algorithms Lipschitz Functions Local Search Meta Learning Particle Swarm Optimization Random Search Transfer Learning Performance Prediction Performance Prediction Frameworks Miscellaneous Tutorials Bayesian Optimization Meta Learning Articles Bayesian Optimization Meta Learning Slides Bayesian Optimization Books Meta Learning Projects Prominent Researchers Papers Automated Feature Engineering Expand Reduce 2017 | AutoLearn — Automated Feature Generation and Selection | Ambika Kaul, et al. | ICDM | PDF 2017 | One button machine for automating feature engineering in relational databases | Hoang Thanh Lam, et al. | arXiv | PDF 2016 | Automating Feature Engineering | Udayan Khurana, et al. | NIPS | PDF 2016 | ExploreKit: Automatic Feature Generation and Selection | Gilad Katz, et al. | ICDM | PDF 2015 | Deep Feature Synthesis: Towards Automating Data Science Endeavors | James Max Kanter, Kalyan Veeramachaneni | DSAA | PDF Hierarchical Organization of Transformations 2016 | Cognito: Automated Feature Engineering for Supervised Learning | Udayan Khurana, et al. | ICDMW | PDF Meta Learning 2017 | Learning Feature Engineering for Classification | Fatemeh Nargesian, et al. | IJCAI | PDF Reinforcement Learning 2017 | Feature Engineering for Predictive Modeling using Reinforcement Learning | Udayan Khurana, et al. | arXiv | PDF 2010 | Feature Selection as a One-Player Game | Romaric Gaudel, Michele Sebag | ICML | PDF Architecture Search Evolutionary Algorithms 2017 | Large-Scale Evolution of Image Classifiers | Esteban Real, et al. | PMLR | PDF 2002 | Evolving Neural Networks through Augmenting Topologies | Kenneth O.Stanley, Risto Miikkulainen | Evolutionary Computation | PDF Local Search 2017 | Simple and Efficient Architecture Search for Convolutional Neural Networks | Thomoas Elsken, et al. | ICLR | PDF Meta Learning 2016 | Learning to Optimize | Ke Li, Jitendra Malik | arXiv | PDF Reinforcement Learning 2018 | Efficient Neural Architecture Search via Parameter Sharing | Hieu Pham, et al. | arXiv | PDF 2017 | Neural Architecture Search with Reinforcement Learning | Barret Zoph, Quoc V. Le | ICLR | PDF Transfer Learning 2017 | Learning Transferable Architectures for Scalable Image Recognition | Barret Zoph, et al. | arXiv | PDF Frameworks 2017 | Google Vizier: A Service for Black-Box Optimization | Daniel Golovin, et al. | KDD |PDF 2017 | ATM: A Distributed, Collaborative, Scalable System for Automated Machine Learning | T. Swearingen, et al. | IEEE | PDF 2015 | AutoCompete: A Framework for Machine Learning Competitions | Abhishek Thakur, et al. | ICML | PDF Hyperparameter Optimization Bayesian Optimization 2016 | Bayesian Optimization with Robust Bayesian Neural Networks | Jost Tobias Springenberg, et al. | NIPS | PDF 2016 | Scalable Hyperparameter Optimization with Products of Gaussian Process Experts | Nicolas Schilling, et al. | PKDD | PDF 2016 | Taking the Human Out of the Loop: A Review of Bayesian Optimization | Bobak Shahriari, et al. | IEEE | PDF 2016 | Towards Automatically-Tuned Neural Networks | Hector Mendoza, et al. | JMLR | PDF 2016 | Two-Stage Transfer Surrogate Model for Automatic Hyperparameter Optimization | Martin Wistuba, et al. | PKDD | PDF 2015 | Efficient and Robust Automated Machine Learning | PDF 2015 | Hyperparameter Optimization with Factorized Multilayer Perceptrons | Nicolas Schilling, et al. | PKDD | PDF 2015 | Hyperparameter Search Space Pruning - A New Component for Sequential Model-Based Hyperparameter Optimization | Martin Wistua, et al. | PDF 2015 | Joint Model Choice and Hyperparameter Optimization with Factorized Multilayer Perceptrons | Nicolas Schilling, et al. | ICTAI | PDF 2015 | Learning Hyperparameter Optimization Initializations | Martin Wistuba, et al. | DSAA | PDF 2015 | Scalable Bayesian optimization using deep neural networks | Jasper Snoek, et al. | ACM | PDF 2015 | Sequential Model-free Hyperparameter Tuning | Martin Wistuba, et al. | ICDM | PDF 2013 | Auto-WEKA: Combined Selection and Hyperparameter Optimization of Classification Algorithms | PDF 2013 | Making a Science of Model Search: Hyperparameter Optimization in Hundreds of Dimensions for Vision Architectures | J. Bergstra | JMLR | PDF 2012 | Practical Bayesian Optimization of Machine Learning Algorithms | PDF 2011 | Sequential Model-Based Optimization for General Algorithm Configuration(extended version) | PDF Evolutionary Algorithms 2018 | Autostacker: A Compositional Evolutionary Learning System | Boyuan Chen, et al. | arXiv | PDF 2017 | Large-Scale Evolution of Image Classifiers | Esteban Real, et al. | PMLR | PDF Lipschitz Functions 2017 | Global Optimization of Lipschitz functions | C´edric Malherbe, Nicolas Vayatis | arXiv | PDF Local Search 2009 | ParamILS: An Automatic Algorithm Configuration Framework | Frank Hutter, et al. | JAIR | PDF Meta Learning 2008 | Cross-Disciplinary Perspectives on Meta-Learning for Algorithm Selection | PDF Particle Swarm Optimization 2017 | Particle Swarm Optimization for Hyper-parameter Selection in Deep Neural Networks | Pablo Ribalta Lorenzo, et al. | GECCO | PDF 2008 | Particle Swarm Optimization for Parameter Determination and Feature Selection of Support Vector Machines | Shih-Wei Lin, et al. | Expert Systems with Applications | PDF Random Search 2016 | Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization | Lisha Li, et al. | arXiv | PDF 2012 | Random Search for Hyper-Parameter Optimization | James Bergstra, Yoshua Bengio | JMLR | PDF 2011 | Algorithms for Hyper-parameter Optimization | James Bergstra, et al. | NIPS | PDF Transfer Learning 2016 | Efficient Transfer Learning Method for Automatic Hyperparameter Tuning | Dani Yogatama, Gideon Mann | JMLR | PDF 2016 | Flexible Transfer Learning Framework for Bayesian Optimisation | Tinu Theckel Joy, et al. | PAKDD | PDF 2016 | Hyperparameter Optimization Machines | Martin Wistuba, et al. | DSAA | PDF 2013 | Collaborative Hyperparameter Tuning | R´emi Bardenet, et al. | ICML | PDF Miscellaneous 2018 | Accelerating Neural Architecture Search using Performance Prediction | Bowen Baker, et al. | ICLR | PDF 2017 | Automatic Frankensteining: Creating Complex Ensembles Autonomously | Martin Wistuba, et al. | SIAM | PDF Tutorials Bayesian Optimization 2010 | A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning | PDF Meta Learning 2008 | Metalearning - A Tutorial | PDF Articles Bayesian Optimization 2016 | Bayesian Optimization for Hyperparameter Tuning | Link Meta Learning 2017 | Why Meta-learning is Crucial for Further Advances of Artificial Intelligence? | Link 2017 | Learning to learn | Link Slides Automated Feature Engineering Automated Feature Engineering for Predictive Modeling | Udyan Khurana, etc al. | PDF Hyperparameter Optimization Bayesian Optimization Bayesian Optimisation | PDF A Tutorial on Bayesian Optimization for Machine Learning | PDF Books Meta Learning 2009 | Metalearning - Applications to Data Mining | Springer | PDF Projects Advisor | Python | Open Source | Code auto-sklearn | Python | Open Source | Code Auto-WEKA | Java | Open Source | Code Hyperopt | Python | Open Source | Code Hyperopt-sklearn | Python | Open Source | Code SigOpt | Python | Commercial | Link SMAC3 | Python | Open Source | Code RoBO | Python | Open Source | Code BayesianOptimization | Python | Open Source | Code Scikit-Optimize | Python | Open Source | Code HyperBand | Python | Open Source | Code BayesOpt | C++ | Open Source | Code Optunity | Python | Open Source | Code TPOT | Python | Open Source | Code ATM | Python | Open Source | Code Cloud AutoML | Python | Commercial| Link H2O | Python | Commercial | Link DataRobot | Python | Commercial | Link MLJAR | Python | Commercial | Link MateLabs | Python | Commercial | Link MARSGGBO原创 2018-7-14

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

docker相关配置

一、概述: 1、centos7下,默认firewalld为防火墙,systemctl status firewalld.service 2、关闭firewalld, systemctl stop firewalld.service &&setenforce 0 3、安装iptables,yum install iptables-services #安装 systemctl restart iptables.service #最后重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动 Docker配置文件:/etc/sysconfig/docker 主要参数解释: -H 表示Docker Daemon绑定的地址, -H=unix:///var/run/docker.sock 或者-H=tcp://0.0.0.0:2375 --registry-mirror表示Docker Registry的镜像地址, --registry-mirror=http://xxxx --insecure-registry表示(本地)私用Docker Registry的地址, --insecure-registry ${privateRegistryHost}:5000 --selinux-enabled是否开始SELinux,默认开启 --selinux-enabled=true; 开启SELinux --bip表示网桥docker0使用指定的CIDR网络地址, --bip=172.17.42.1 -b 表示采用已经创建好的网桥, -b=xxx 下面是代理的设置: http_proxy=xxxx:8080 https_proxy=xxxx:8080 Docker配置文件(Centos 7) cat /usr/lib/systemd/system/docker.service [Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network.target [Service]Type=notify# the default is not to use systemd for cgroups because the delegate issues still# exists and systemd currently does not support the cgroup feature set required# for containers run by dockerExecStart=/usr/bin/dockerdExecReload=/bin/kill -s HUP $MAINPID# Having non-zero Limit*s causes performance problems due to accounting overhead# in the kernel. We recommend using cgroups to do container-local accounting.LimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityEnvironment="HTTP_PROXY=http://USRNAME:PASSWD@HOST:PORT/"Environment="HTTPS_PROXY=http://USRENAME:PASSWD@HOST:PORT/"# Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version.#TasksMax=infinityTimeoutStartSec=0# set delegate yes so that systemd does not reset the cgroups of docker containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=process [Install]WantedBy=multi-user.target

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

Shuffle相关分析

Shuffle描述是一个过程,表现出的是多对多的依赖关系。Shuffle是连接map阶段和Reduce阶段的纽带,每个Reduce Task都会从Map Task产生的数据里读取其中的一片数据。Shuffle通常分为两个部分:Map阶段的数据准备和Reduce阶段的数据副本。 Map阶段根据Reduce阶段的Task数量来决定每个Map Task输出的数据分片的个数,这些数据分片可能保存在内存中或者磁盘上,这些分片的存在形式可能是每个分片一个文件,也可能是多个分片放在一个数据文件中,外加一个索引来记录每个分片在数据文件中的偏移量。(RDD中的窄依赖除外,恰好是一对一的) 1、 Shuffle写 Spark中Shuffle输出的ShuffleMapTask会为每个ResultTask创建对应的Bucket,ShuffleMapTask产生的结果会根据设置的partitionner得到对应的BucketId.然后填充到对应的Bucket中去,所以每个ShuffleMapTask创建Bucket的数据是和ResultTask的数目相等的。 ShuffleMapTask创建的Bucket对应磁盘上的一个文件,用于存储结果,此文件也被成为BlockFile.通过spark.shuffle.file.buffer.kb属性配置的缓冲区就是用来创建FastBufferedOutputStream输出流的。如果在配置文件中设置了spark.shuffle.consolidateFiles属性为true,则ShuffleMapTask所产生的Bucket就不一定单独对应一个文件了,而是对应文件的一部分,这样做会大大减少产生的BlockFile文件数量。 2、 Shuffle读 Spark可以通过两种方式读数据,一种是普通的socket方式,另一种是使用Netty框架。Netty方式可以通过配置spark.shuffle.use.netty属性为true启动。Netty框架时,BlockManager会创建ShuffleSender专门用于发送数据,如果ResultTask所需要的数据恰好在本节点,则直接去磁盘上读即可,不再通过网络获取。MapReduce取数据时,即使数据在本地还是要走一遍网络传输。

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

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操作

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

常见java相关问题

HashMap的put怎么实现,如何解决hash冲突。 调用putval,计算相应hash码,然后初始化(默认64的capacity)或调用resize函数调整大小,判断bucket是否有值,若没有在数组初始化改值。若有则以拉链法(链表的形式)解决hash冲突,这里和ThreadLocalMap不一样,ThreadLocalMap使用的是线性探测法,接着将相应节点加入链表头部。如果超过8个元素会进化为RBtree,防止hash攻击。 RBtree是怎样的数据结构,有什么性质? 二叉树,有序的,四种性质。从而推得路径最长2n,最短n。复杂度为log2N.(此处省略n多话,感兴趣的同学请自行Google) RBtree什么时候会变色? 旋转时,共有四种旋转方式。一般是为了保持平衡,如左边太长,右边太短这样。(打哈哈过去,具体记不清了) hashmap什么时候会调整大小? 根据负载因子来搞事,默认为0.75。 什么是负载因子? 根据capacity来,举个例子,当capacity为100时,如果HashMap的ele的数量到了75就会resize,resize后的大小为原来的2倍,这样可以直接使用位运算得到原来的元素新的hash值。 扩容存在什么问题? (楞了一会,发现应该是说多线程的情况)然后说了多线程会有死循环问题。如果要解决可以使用concurrentHashMap。 为什么有死循环? 扯了半天,发现不画图,只通过电话根本扯不清。然后说就是因为1.7扩容后链表会逆序,1.8不会,所以1.8没这个问题,1.7就是两个线程同时扩容,一个扩到一半,到另一个了开始并完成扩容,之前那个再继续,就会出现。(然后说小姐姐,有机会我当面画给你看,开个玩笑) 8.你刚才提到concurrentHashMap,你知道怎么实现吗? 1.7使用分段锁,分为16个,每个segment可以视为一个hashtable,然后一次一个线程只锁一个segment,减小了锁的粒度,提高了并发。1.7使用的是Lock的实现类,可重入锁来同步的。1.8使用的是CAS和synchronized。如果已有元素,需要解决hash冲突,会使用synchronized锁住相应的bucket,然后再添加,同样元素在八个以上会转化为RBtree。 9.你提到Lock,知道哪些相应的锁? 读写锁,可重入锁 10.知道AQS吗,他的实现是怎样的?AQS可重入吗? 知道,读写锁,可重入锁都是通过AQS实现的,AQS维护一个链表,并主要提供tryacquire和tryrelease方法。默认为非公平锁,此时当一个线程需要请求锁时... 11.AQS如何实现可重入 维护一个int类型的status作为计数器,同一个线程acquire就加1,release就减1.到0就释放锁。读写说则是将status分为两部分使用。内部维护一个shift变量做位运算的变化。。。(AQS可以看占小狼的blog或者并发编程的艺术) 12.volatile、aba问题 13.volatile什么作用 指令重排序,内存可见性 14、指令重排序指什么?指令重排序的好处是什么?如何防止指令重排序。编译器重排序,cpu重排序,内存重排序。好处是流水线技术,提高并发性能等。通过禁止编译器优化,以及汇编使用Lock信号,java中的cpp加入volatile等防止。 15.内存可见性具体指什么?volatile通过什么机制防止 讲了下JMM,以及计组原理中的三级cache,buffer,缓存行等。 顺便扯了下c语言的volatile只保证防止编译器优化以及内存可见性的语义,而不能保证顺序性。然后是C11的acquire,release语义 接着回归java,扯了下内存屏障的实现与作用。(并发编程的艺术)然后扯了下#LOCK信号,包括总线锁,mesi的缓存一致性等。最后是先行发生的语义(语无伦次,不过基本点都讲到了) 16.synchronized内部分为几种锁,他们的使用场景是什么 偏向锁,轻量级锁,重量级锁(又有自旋锁等),然后详细讲了实现和使用场景(周志明的书和并发编程的艺术都有讲,此处省略)。 17.nio、bio 没有,讲了下自己准备学习netty,然后谈了下c语言的nio,包括Nginx和redis的多路复用,然后讲了下select和epoll的区别。以及epoll的优点和实现。然后设想java里的nio应该也是映射到epoll里面。 18.netty是怎么实现? 18. 操作系统调度进程有哪些算法? 优先级,时间片,FIFO,最近deadline什么的。 19.Redis有几种持久化方式? 四种,2种被废弃,比如磁盘交换。目前主要使用rdb,aof。rdb属于物理备份,aof属于逻辑日志(逐行追加)。然后又讲了aof重写。rdb和aof的配置。以及aof的rewrite机制。 18.Redis分布式的实现方式 (此处省略,Redis的设计与实现有详解) 19。 数据库特性 ACID,顺便分别提了下实现原理 20.具体讲下隔离性。 四种隔离级别和实现方式 https://www.cnblogs.com/fjdingsd/p/5273008.html 21.如何理解一致性? 说了下单个事务的一致性,以及分布式一致性。 22 一致性的三种级别 强,弱,最终一致性 23,持久性的实现方式 redo,同时使用insert buffer等方式。 24数据库mysql innodb myISAM区别

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

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,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册