面试常见问题一(摘自微信) 1. static和final的区别和用途static:修饰变量:静态变量随着类的加载时就自动完成初始化,内存中只有一个,且虚拟机只会为它分配一次内存,所有类共享静态变量。修饰方法:静态方法不依赖于于任何实例对象,被类的所有实例共享。静态方法可以直接通过类名调用,静态方法必须实现,不能用abstract修饰。修饰代码块:在类加载完之后会自动执行的代码块。代码执行顺序:父类静态代码块--->子...
Mapreduce实现MapSideJoin 当连接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去去查看小表的数据,哪条与之相符,继而进行连接。这里的join并不会涉及reduce操作。map端join的优势就是在于没有shuffle。 比如产品表很小,存储了几条产品信息,但是订单表却很
Spark RDD---api(map&reduce) RDD简介RDD是spark中的抽象数据结构,任何数据在Spark中都被表示为RDD。RDD可被看成一个数组,但RDD中的数据是可以分区存储的,能够分布在不同的机器上。Spark应用程序就是把需要处理的数据转化为RDD,然后进行一系列的transforms(转换)和action(操作/执行),从而得到结果 RDD的创建1、将数组转化为RDDval a = sc.parallelize(1
Hive ----DDL 1、创建数据库create database test_db comment 'test database';create database if not exists test_db comment 'test database;create database test_db location '/hive/db/';create database test_db with dbprope
Hive---Join 优化 1、连接顺序优化多表连接,会转换成多个MR Job,每一个MR Job在Hive中称为JOIN阶段(Stage)。在每一个Stage,按照JOIN顺序中的最后一个表应该尽量是大表,因为JOIN前一阶段生成的数据会存在于Reducer的buffer中,通过stream最后面的表,直接从Reducer的buffer中读取已经缓冲的中间结果数据(这个中间结果数据可能是JOIN顺序中,前面表连接的结果的Ke
Mapreduce shuffle Shuffle:从Map端到Reduce端的执行情况基本执行过程,描述如下: 一个InputSplit输入到map,会运行我们实现的Mapper的处理逻辑,对数据进行映射操作。map输出时,会首先将输出中间结果写入到map自带的buffer中(buffer默认大小为100M,可以通过io.sort.mb配置)。map自带的buffer使用容量达到一定门限(默认0.80或80%,可以通过io.so
HIVE存储格式 TextFileHive默认格式,数据不做压缩,磁盘开销大,数据解析开销大。 可结合Gzip、Bzip2、Snappy等使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。SequenceFileSequenceFile是Hadoop API 提供的一种二进制文件,它将数据以ParquetApache Parquet是Hadoop生态圈
Spark Streaming与Flume集成小测试:PUSH的方式 需求:监控目录/opt/datas/spark-flume下的wctotal.log文件,并将文件内容通过Spark Streaming 进行批处理,在屏幕上输出event的数量实验在伪分布式环境下,用local的模式启动spark(CDH5.5.0版本) 为了看每条代码比较清楚,采用bin/spark-shell –master local[2]方式启动 集成这两个功能需要将三个jar包导入到
spark小应用二:分组分数排序(SCALA) 需求: 1)按照第一个字段进行分组 2)对分组中的第二个字段进行排序(降序) 3)获取每个分组Top Key(比如获取前三个值) 数据:aa 78bb 98aa 80cc 98aa 69cc 87bb 97cc 86aa 97bb 78bb 34cc 85bb 92cc 72bb 33bb 231、按照第一个字段进行分组val rdd = sc.textFile
spark小应用一:wordcount,按词频降序(SCALA) val rdd = sc.textFile("hdfs://mycluster/user/bpf/sparkApp/wordcount/input")val wordcount = rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)这样得到的结果并没有按照某种规则排序按照value值进行降序。(出现次数多的在前) 思路:key value反
Hbase在HDFS上的目录树 一、0.94版本系统级别的一级目录如下,用户自定义的均在这个/hbase 下的一级子目录下/hbase/-ROOT-/hbase/.META./hbase/.archive/hbase/.corrupt/hbase/.hbck/hbase/.logs/hbase/.oldlogs/hbase/.snapshot/hba
MapReduce中map与reduce的个数 Map的个数在map阶段读取数据前,FileInputFormat会将输入文件分割成split。split的个数决定了map的个数。影响map个数,即split个数的因素主要有:HDFS块的大小,即HDFS中dfs.block.size的值。默认为128M文件的大小。文件的个数。FileInputFormat按照文件分割split,并且只会分割大文件,即那些大小超过HDFS块的大小
RDD五大特性 RDD(Resilient Distributed Datasets,弹性分布式数据集)五大特性1、A list of partitions一系列的分片:比如说128M一片,类似于Hadoop中的split2、A function for computing each split每个分片上都有一个函数去迭代/执行/计算它3、A list of dependencies on o
Spark架构原理 http://www.cnblogs.com/tgzhu/p/5818374.htmlApache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一个全面
Unable to fence NameNode at 问题 配置完hadoop ha,进行测试时,发现kill掉一个namenode,另一个还是standby,并不会自动变成active,在zkfc的log日志中发现这么一条warn:PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 8090 via ssh: bash: fuser: 搭建ha的系统是centos最小安装版,并没有fuser这个东西,使
什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么 点击打开链接一、什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKee
HBase Hive整合 本次整合使用的是cdh5.5.0的版本(伪分布式环境下)首先 需要在$HIVE_HOME/lib下添加以下jar包guava-14.0.1.jarhbase-common-1.0.0-cdh5.5.0.jar hbase-server-1.0.0-cdh5.5.0.jar hbase-client-1.0.0-cdh5.5.0.jar hbase-protocol-1.0.0-cd
sqoop将mysql中的表导入到HBase 需求:将MySQL中的emp表导入到HBase中emp表:(id int, name varchar(20))bin/sqoop import \--connect jdbc:mysql://BPF:3306/bpf \--table emp \--hbase-table emp \--column-family info \--hbase