对付骚扰电话的最佳方法:静音不挂断
好处1:通话期间此人无法骚扰其他人
假设每个骚扰电话15秒,10分钟就避免了40个其他人被骚扰。
好处2:消耗骚扰者的电话费
假设骚扰者的成本是每分钟0.1元,10分钟就消耗骚扰者1元。
在apache access log里看到很多一搜(现在好像叫“神马搜索”)的爬虫:
貌似完全不理会robots.txt啊:
User-agent: * Disallow: Crawl-delay: 60
果断在tomcat的server.xml里禁掉IP段:
<Context ...> <!-- 220.181.108.*, 123.125.71.*: baidu spider, 106.11.15*.*: yisou --> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="" deny="106.11.15\d.\d+, 220.181.108.\d+, 123.125.71.\d+"/> </Context>
看看效果:
参考资料:
本文介绍Spark的运作原理,并通过在一个实际的Spark运行环境中对数据集进行操作,从而验证这些原理。
x权限对于目录来说是非常重要的,当用户对某个目录没有x权限时,则不管用户对该目录下的子目录拥有什么样的权限,都将无法对子目录进行任何操作。
通常/root缺省是没有x权限的,因此mysql导出文件(SELECT ... INTO OUTFILE)到/root下的任何目录都会提示无法写入,不论这个目录的owner是谁,也不论这个目录是否777权限:
ERROR 1 (HY000) at line 1: Can't create/write to file '/root/my/out.csv' (Errcode: 13)
而/home缺省是有x权限的,因此在这个目录下mysql用户的文件夹,是可以用于mysql导出到文件的。
进入zookeeper命令行,zookeeper默认端口号是2181:
$ bin/zkCli.sh -server 127.0.0.1:2181
Zookeeper命令行下的操作和文件系统比较接近。例如可以对指定目录进行列表(注意目录名必须以/开头):
ls /
创建一个znode,同时为这个znode设置一个数据(my_data),一个znode只能有一个数据:
create /zk_test my_data
更改znode上的数据(会覆盖之前设置的数据):
set /zk_test my_data_2
读取znode上的数据:
get /zk_test
删除znode:
delete /zk_test
参考资料:
一个mapreduce执行完成后,控制台会输出一些执行过程中产生的数据,通过分析这些数据可以帮助我们验证执行过程是否正常。
Kafka是一个高性能的分布式消息队列系统,它的诀窍在于充分利用了“顺序读写磁盘性能大于随机读写内存”的事实。The Pathologies of Big Data
从1.0到现在的2.2,AndroidStudio使用起来经常卡顿,特别在build的时候,经常CPU 100%需要等待很长时间,体验很不好。用以下方法可以缓解:
修改studio64.exe.vmoptions这个文件(Help -> Edit Custom VM Options),内容:
-Xms2048m -Xmx2048m -XX:MaxPermSize=2048m -XX:ReservedCodeCacheSize=1024m
改完以后记得点一下File--Invalidate caches/restart这个,才能生效,不然关掉as再开就打不开了。(实测在2016.3社区版直接重启也能生效)
在setting里搜索gradle,开启“offline”模式。
在setting里搜索compiler,开启“Compile independent modules in parallel”选项。
参考链接
Android Studio 使用起来很卡,你们是如何解决的?
Building and running app via Gradle and Android Studio is slower than via Eclipse
1、数据批量导入(DataImport)
判断数据重复的依据是schema.xml里的uniqueKey,即使多次重复导入,也不会产生重复的document:
<uniqueKey>c_id</uniqueKey>
2、更新schema
首先需要更新schema.xml和solrConfig.xml文件,比如增加一个field。注意在管理界面admin->core0->Overview里查看一下solr配置文件的位置(如Instance:/usr/share/solr/core0),要更新这个位置下的配置文件。
注意:需要重启solr才会生效,已经索引的document需要重新索引。
3、删除已经导入的数据
参考solr的wiki,在管理界面admin->core0->Documents里,用xml格式分别执行删除和确认命令:
<delete><query>*:*</query></delete> <commit/>
4、导入大量数据
如果一次导入大量数据,有可能会导致内存不足而失败。解决的办法是分批导入,在管理界面里core0->Dataimport下指定Start,Rows即可。(特别是有sub-entity的情况)
注意1:不要勾选clean复选框,否则上次导入的数据将比清除。
注意2:Start,Rows不是Start,End
注意3:Start值很高的时候,即使rows不大,导入速度仍然会很慢。此时可以用debug模式修改query(例如加上where id> 1000000)。
5、在tomcat里指定solr.home
在server.xml里的<context>下指定<Enviroment>:
<Environment name="solr/home" type="java.lang.String" value="/usr/share/solr"/>
参考资料:
How to fix java RuntimeException: Can't find resource 'solrconfig.xml'?
1、从apache下载hadoop,并解压缩,例如hadoop-2.7.3.tar.gz
2、在hadoop-env.cmd里修改设置JAVA_HOME和HADOOP_HOME
set JAVA_HOME="C:\Program Files\Java\jdk1.7.0_79" set HADOOP_HOME="C:\install\hadoop-2.7.3"
注意如果JAVA_HOME有空格,要用双引号,否则提示JAVA_HOME incorrect set。
3、下载winutils
winutils包含winutils.exe和hadoop.dll,将这两个文件复制到hadoop/bin目录下,否则执行hadoop命令会提示如下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/St ring;JZ)V at org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(Native Method) at org.apache.hadoop.util.NativeCrc32.calculateChunkedSumsByteArray(NativeCrc32.java:86) at org.apache.hadoop.util.DataChecksum.calculateChunkedSums(DataChecksum.java:430) at org.apache.hadoop.fs.FSOutputSummer.writeChecksumChunks(FSOutputSummer.java:202)
下载地址:https://github.com/steveloughran/winutils
注意与所使用的hadoop版本要匹配。参考链接
4、查看远程hdfs文件列表(根目录)
hadoop fs -ls hdfs://192.168.130.100/
其他文件操作类似,可以执行hadoop fs命令查看。
5、在Eclipse里调试mapreduce程序
在eclipse里直接运行mapreduce程序时可能会提示:
ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
原因是没有配置HADOOP_HOME环境变量,在run configuration里加上,或者在windows系统环境变量里加上这个环境变量即可。参考