A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 就业高冷派 于 2018-11-23 11:12 编辑

公司名称:西安九索数据技术股份有限公司
公司经营:2010年11月15日成立,城市精细化管理的研发,中国科学院西安光学精密机械研究所的大数据应用工程中心,陕西省信息化和工业化融合典型示范企业,并且为军民融合试点单位。
注册规模:50-150人
公司地址:高新区锦业一路西安软件园起步区D座
公司图片:


人事小姐姐先进来聊了几句,大概内容无非就是了解一下性格呀,就普通聊天,也问到上家公司的一些情况,涉及到业务内容的都简单带过,有问到离职原因,这个自己可以结合自己的情况说一个。
人事简单聊完,等了一会来了一个技术组长,有问到一些问题,简单整理如下:
1.spark sql怎么取数据的差集
    好像不支持
2.spark2.0的了解
    更简单:ANSI SQL与更合理的API
    速度更快:用Spark作为编译器
    更智能:Structured Streaming
3.spark集群运算的模式
    Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然          Spark 还有自带的 Standalone 模式,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者 Mesos 环境,也是很方便部署的。
    standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现 HA
    on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
    on mesos(集群模式): 运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算
    on cloud(集群模式):比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon的 S3;Spark 支持多种分布式存储系统:HDFS 和 S3
4.Hadoop的核心配置是什么?
    Hadoop的核心配置通过两个xml文件来完成:
   ①.hadoop-default.xml;
   ②.hadoop-site.xml。
   这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在。
5.请列出你所知道的 hadoop 调度器,并简要说明其工作方法?
    ①.FIFO schedular:默认,先进先出的原则
    ②.Capacity schedular:计算能力调度器,选择占用最小,优先级高的先执行,以此类推。
    ③.Fair schedular:公平调度,所有的job具有相同的资源。
6.hadoop 的 namenode 宕机,怎么解决
      先分析宕机后的损失,宕机后直接导致client无法访问,内存中的元数据丢失,但是硬盘中的元数据应该还存在,如果只是节点挂了,重启即可,如果是机器挂了,重启机器后看节点是否能重启,不能重启就要找到原因修复了。但是最终的解决方案应该是在设计集群的初期就考虑到这个问题,做namenode的HA。
7.用mapreduce怎么处理数据倾斜问题?
      数据倾斜:map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。

用hadoop程序进行数据关联时,常碰到数据倾斜的情况,这里提供一种解决方法。
自己实现partition类,用key和value相加取hash值:
方式1:
源代码:
public int getPartition(K key, V value,
                          int numReduceTasks) {
    return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
  }
修改后
public int getPartition(K key, V value,
                          int numReduceTasks) {
    return (((key).hashCode()+value.hashCode()) & Integer.MAX_VALUE) % numReduceTasks;
  }

方式2:
public class HashPartitioner<K, V> extends Partitioner<K, V> {
private int aa= 0;
  /** Use {@link Object#hashCode()} to partition. */
  public int getPartition(K key, V value,
                          int numReduceTasks) {
    return (key.hashCode()+(aa++) & Integer.MAX_VALUE) % numReduceTasks;
  }





139 个回复

倒序浏览
666666666666666666666666666666
回复 使用道具 举报
6666666666666666666666
回复 使用道具 举报
致橡树 来自手机 中级黑马 2018-12-25 12:40:32
板凳
666666666666666666
回复 使用道具 举报
圣诞快乐!!!!!
回复 使用道具 举报
666666666666,很厉害。
回复 使用道具 举报
感谢楼主的分享   谢谢   辛苦了     
回复 使用道具 举报
duanshaobo 来自手机 中级黑马 2018-12-25 13:19:14
8#
好大的数据啊
回复 使用道具 举报
好大的数据啊
回复 使用道具 举报
66666666666666666
回复 使用道具 举报
ouweina 来自手机 中级黑马 2018-12-25 13:21:42
11#
感谢大佬分享
回复 使用道具 举报
666666666666666666666
回复 使用道具 举报
感谢分享
回复 使用道具 举报
回复 使用道具 举报
王航 中级黑马 2018-12-25 13:47:26
15#
小舟从此逝,江海寄余生
回复 使用道具 举报
兮兮哈哈 来自手机 中级黑马 2018-12-25 13:51:01
16#
6666666666666666
回复 使用道具 举报
圣诞快乐。2019冲鸭、
回复 使用道具 举报
6666666666666666666666666666666666666666
回复 使用道具 举报
学习到很多
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马