2017-11-01
elasticsearch 查询hive 数据
最简单的原因:工资低,出差频繁
工作本身同质化太多,业务场景到了一定瓶颈
看了一些大数据相关的书,阿里的DT时代,大数据时代 [英] 维克托,再结合已经发生的大数据应用场景,以及接下来的物联网时代,智慧城市等,未来数据是最基本的元素。有数据不一定能赢,但没数据一定会输。
开发呢,JAVA太多了,大数据本身竞争压力要小一些
看公司的具体情况,看下公司的技术氛围怎么样,有没有定期不定期的培训,平常的工作强度,公司的年终奖等等目前定位是16k-25k之间
可以反问 这公司侧重与java还是scala
hr答:公司总部在成都,还是侧重于java,上海团队java和scala都涉及
可以问下公司团队的规模,做项目时一般几个人一组,项目周期,公司的项目主要涉及到哪些行业
scala用了半年多,以前java写mr时太繁琐
使用scala后基本上就没怎么用了,以前写毕设的时候用过ssm框架,进公司后就负责几个特定的模块,就用的少了
spark 相关的业务情景啊
数据处理:过滤,去重,排序,重组,打标签,存数据库
报表:用scala写一些报表,数据解析等等
实时处理:实时的topN情景 ,实时消费数据到hbase等 统计过去一段时间的某项指标(窗口函数)
blog,官网,github(把焦点引向自己擅长的地方),视频网站(imooc,open163)
比较同一套系统 表结构之间的差异
为什么需要这种模式?模式背景
怎么实现这种设计模式?
模式在编程中的地位?scala是否需要这么多设计模式?
#
jvm 内存划分 栈区 堆区 方法区
java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
核心问题:
GC 操作的是JVM里面的哪一部分内存区?
JVM内存结构图
如何判断垃圾对象?
引用计数法 (在java中是通过引用来和对象进行关联的)(无法解决循环引用)
Java中采取了 可达性分析法(图论里面的可达性分析)
典型的垃圾收集算法?
永久代(Permanet Generation) 永久代的回收主要回收两部分内容:废弃常量和无用的类
老年代的特点是每次回收都只回收少量对象,一般使用的是Mark-Compact算法。
目前大部分垃圾收集器对于新生代都采取Copying算法,复制次数少但并不是按照1:1的比例来划分空间的
典型的垃圾收集器?
方法区和堆由所有线程共享,其他区域都是线程私有的
虚拟机中用于存放对象与数组实例的地方,垃圾回收的主要区域就是这里(还可能有方法区)。Java堆只要求逻辑上是连续的,在物理空间上可以不连续。
直接内存 –堆外内存
JDK1.5中引用了NIO,并引用了Channel与Buffer,可以使用Native函数库直接分配堆外内存,并通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。
堆外内存 由操作系统管理,而不是JVM管理
如何判断垃圾对象?
引用计数法