存档

2013年9月 的存档

hive日常积累优化技巧

2013年9月17日 tianhl 没有评论

一、join优化 Join查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边。原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生内存溢出错误的几率。 Join查找操作中如果存在多个join,且所有参与join的表中其参与join的key都相同,则会将所有的join合并到一个mapred程序中。 案例: SELECT a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1) 在一个mapre程序中执行join SELECT a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key2) 在两个mapred程序中执行join Map join的关键在于join

分类: Hadoop 标签: ,

Servlet的多线程安全问题

2013年9月14日 tianhl 2 条评论

public class MyServlet extends HttpServlet { final static int i = 0; public void doGet(HttpServletRequest req, HttpServletResponse res) { private HttpSession session = req.getSession(); private ServletContext ctx = getServletContext(); synchronized (ctx) { Object obj = ctx.getAttribute(); // code to alter obj } } } 上面代码中的哪些变量是线程安全的? 选择: * A. i * B. session * C. ctx * D. req * E. obj * F. res IBM 给出的答案是: 正确答案: * A、C、D 和 F 说明: 静态变量 i 是线程安全的,因为它是 final(不能被修改),否则它将不是安全的。请求和响应对象的作用域只在

分类: Java 标签: , ,

jedis多线程异常

2013年9月13日 tianhl 没有评论

多线程下使用jedis会报一些奇怪的错误 [2013.09.13 11:17:19.280]redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: 2 [2013.09.13 11:17:19.280] at redis.clients.jedis.Protocol.process(Protocol.java:71) [2013.09.13 11:17:19.280] at redis.clients.jedis.Protocol.read(Protocol.java:122) [2013.09.13 11:17:19.280] at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:172) [2013.09.13 11:17:19.280] at redis.clients.jedis.Connection.getBulkReply(Connection.java:161) [2013.09.13 11:17:19.280] at redis.clients.jedis.Jedis.get(Jedis.java:65) [2013.09.13 11:17:19.280] a

分类: Java 标签: ,

数据库索引

2013年9月10日 tianhl 没有评论

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),在索引中查找,但索引是经过某种算法优化过的,查找次数要少的多的多。可见,索引是用来定位的。 索引分为聚簇索

分类: 云计算 标签:

谷歌票房预测模型 准确度高达94%

2013年9月5日 tianhl 没有评论

谷歌公布了一项重要研究成果–电影票房预测模型。该模型能够提前一个月预测电影上映首周的票房收入,准确度高达94%。这在业内引起了强烈讨论,不少内人士认为该模型非常适合好莱坞电影公司通过预测票房来及时调整电影营销战略,但同时也有吐槽者暗示谷歌的票房预测模型别有用心,旨在鼓动电影公司购买其搜索引擎广告。那么,孰是孰非,谷歌票房预测模型以及大数据在电影行业的应用是嘘头,还是大有来头,让我们来一探究竟。 谷歌票房预测模型的基础:电影相关的搜索量与票房收入的关联 谷歌的票房预测模型是大数据分析技术在电影行业的一个重要应用。随着互联网的发展,人们越来越习惯于在网上搜索电影信息。据谷歌统计,从2011到2012年,电影

分类: 云计算 标签:

Hadoop的分块与分片

2013年9月4日 tianhl 没有评论

HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统保证一个块存储在一个datanode上。 当我们执行hadoop fs -put aa.txt /bb.txt,则aa.txt会被复制为集群的/bb.txt。查看系统的log日志hadoop-$username-namenode-*.log,可以看到类似于 2011-09-07 08:39:12,506 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.addStoredBlock: blockMap updated: 127.     0.0.1:50010 is added to blk_5715489406767973176_1

分类: Hadoop 标签: , ,

linux swap命令

2013年9月3日 tianhl 没有评论

一般来说可以按照如下规则设置swap大小: 4G以内的物理内存,SWAP 设置为内存的2倍。 4-8G的物理内存,SWAP 等于内存大小。 8-64G 的物理内存,SWAP 设置为8G。 64-256G物理内存,SWAP 设置为16G。 系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。 查看swap使用的情况: swapon -s free -m cat /proc/sys/vm/swappiness 该值默认值是60. swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间, swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

分类: 云计算 标签: ,

eclipse插件FileSync自动同步文件到tomcat

2013年9月2日 tianhl 没有评论

eclipse插件FileSync自动同步文件到tomcat tomcat server.xml 配置 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context path="" docBase="E:web3.4targetweb-0.0.1-SNAPSHOT" reloadable="true"> <!-- <Resource name="jdbc/biee-web" --> <!-- factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" auth="Container" --> <!-- type="javax.

分类: Java 标签: ,