`
pumbaa.he
  • 浏览: 71300 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
文章列表
前言 公司需要对数据进行运营分析,为了满足运营大数据分析的需求,决定采用hadoop进行数据分析查询 经过研究打算采用如下架构 游戏服通过http方式把日志消息写入到BI服务器,BI服务器通过log4j记录日志信息。然后把日志文件导入HDFS中,通过Spark进行数据的统计查询。 这里把日志文件导入HDFS中有两种方法: 1、flume 定时把日志文件拷贝到flume监控的目录下,然后flume就会自动把日志文件导入到HDFS中。 这种方式的优点就是可以配置HDFS文件的大小,不至于生成很多小文件。缺点就是导入速度比较慢,而且如果有大文件移动到flume的监控目录下,会报异常( ...
首先要先清楚你的程序是io密集型还是cpu密集型   一般的游戏服务端都是io密集型的,主要瓶颈在于io,那么当线程在等待io操作时,cpu就空闲下来了。这样浪费了cpu性能,而且并发上不去。   callback和协程解决的原理都一样,就是遇到io操作的时候,通过callback或者协程处理当前的io操作,把当前的线程让出来,让线程去处理其他的请求,等到io操作结束了,在回到原来的线程去执行。这样合理的利用了cpu性能,提高了并发数。
如果同时要insert多条记录的时候,可以通过insert into table values(...),(...),(...)的方式来插入,这样可以大大提高效率。如果数据太多,可以分段,例如每1万条插入一次。每次执行的包大小默认是1M,如果超过了,可以调整msyql参数
不管mayInterruptIfRunning的值是true还是false,如果任务还没有开始执行,那么就会停止掉。如果任务已经执行了。那么下次任务就不会执行了。 但是如果任务里面有用到while (!Thread.interrupted()),那么本次任务会一直执行,只有mayInterruptIfRunning=true马上中断线程才能停止任务。  

spark内存溢出

spark执行任务时出现java.lang.OutOfMemoryError: GC overhead limit exceeded和java.lang.OutOfMemoryError: java heap space 最直接的解决方式就是在spark-env.sh中将下面两个参数调节的尽量大     export SPARK_EXECUTOR_MEMORY=2g    export SPARK_DRIVER_MEMORY=3g 注意,此两个参数设置需要注意大小顺序:     SPARK_EXECUTOR_MEMORY < SPARK_DRIVER_MEMORY< yar ...

数据加密

客户端    游戏中的关键逻辑数据,如血量,攻击力等,容易被通用的数据修改器类外挂搜索定位并修改。因此,对于客户端逻辑中存在关键逻辑数据的游戏,需要对其进行加密。而针对修改器的模糊搜索,一般的异或加密也 ...
以下是在各个数据量级针对同个查询语句的消耗时间 select type,count(*) as count from test group by type order by count desc;   mysql 600W 3s sparksql 550W 5s   mysql 1000W 5.4s sparksql 1100W 6.3s   mysql 1900W 9.9s sparksql 2000W 8.7s 可以看得出,当数据量比较大的时候,spark的优势就体现出来了 备注:spark集群服务器配置为双核4G内存。集群配置为4CPU和4G内存 另附几组数据 ...
spark jar包spark-assembly-1.6.1-hadoop2.6.0.jar中已经包含了log4j的jar包,所以当项目中包含spark-assembly-1.6.1-hadoop2.6.0.jar就无需再引用log4j.jar。 但是如果需要用log4j.jar的功能,那么需要把log4j.jar放到项目的lib目录中 例如在jetty中,引用第三方的jar可以放到lib/ext目录下。但是如果ext目录下已经有spark-assembly-1.6.1-hadoop2.6.0.jar,那么在放入log4j.jar就会冲突了。这种情况下ext目录下不能有log4j.jar。 ...

jetty+log4j

    博客分类:
  • java
在jetty中,如果引用第三方jar包,可以把jar包放到jetty/lib/ext中。 但是如果有用到log4j,那么log4j.jar需要放到war包中,放到jetty/lib/ext中没有效果

Collections.sort

    博客分类:
  • java
 Collections.sort排序方法在JDK6中1表示交换,非1表示不交换,但是在JDK7中-1才表示不交互,所有有两种改法 1、return new Integer(a).compareTo(new Integer(b)); 2、return a > b ? 1 : -1;
一、工具 eclipse java Juno jetty-distribution-8.1.17.v20150415(可以从http://download.eclipse.org/jetty/下载) 我用的是eclipse java版本,所以不支持发布web程序,可以通过安装插件来解决 插件地址http://download.eclipse.org/releases/juno    二、代 ...
MySQL延迟更新索引(Delayed Key Write): 使用表创建选项DELAY_KEY_WRITE创建的myisam表,在查询结束后,不会将索引的改变数据写入磁盘,而是在内存的健缓冲区(In-memory key buffer)中缓存索引改变数据。它只会在清理缓存区,或关闭 ...
可以维护一个定量的ArrayList,当数据变化时,通过二分查找法更新或者插入  
HashMap不支持并发,但是支持排序,可以支持根据key和value来进行排序 ConcurrentHashMap支持并发,但是不支持排序    
中日韩等字符占2个字节,英文数字等占1个字节  public static int getStrByteLen(String name){  char[] chars = name.toCharArray();     int len = 0;  for (int i = 0; i < chars.length; i++) {      int k = 0x80;   if (chars[i] / k == 0){//判断一个字符是Ascill字符还是其它字符(如汉,日,韩文字符)      len += 1;   } else{    len += 2;   }  }  return ...
Global site tag (gtag.js) - Google Analytics