SBT--入门并在IDEA中使用

SBT简介

  SBT(Simple Build Tool),对于SBT官网是这样介绍的”The interactive build tool,Use Scala to define your tasks. Then run them in parallel from the shell.“。即是一个现代构建工具,它是用Scala编写的,对编译Scala、Spark项目提供了不错的支持。和Maven一样它也是一个通用的构建工具。

SBT安装

Cloudera--CDH5.x.x集群IP更改

  我想,对于Cloudera CDH5集群中ip的更改,虽然发生的几率小,但是还是有的,之前公司就由于某种原因,需要更改集群IP地址(网段)。今天同样遇到了这样的需求,由于自己通过虚拟机搭建了CDH5.5.1集群,在之前使用的是NET模式只能本机访问,现在有一个需求就是让同网段下的其他电脑也能访问,于是就更改为桥接模式。下面就以此为例记录一下整个集群更改IP的过程,注意:我这里演示的是一个节点,对于集群中的多个节点同样适用。

第一步更改IP映射

  1. 首先,我们修改所有节点ip地址,我这里从192.168.33.77改为192.168.1.77
    修改ip和网关

  2. 修改集群hosts映射文件/etc/hosts(如果改了hostsname需要做免密码登录)
    /etc/hosts文件

Hive--执行流程和源码解析

  Hive,在工作中使用相对较多,并且比较简单便捷,今天在家闲着没事,就写一遍博客来对hive的执行流程做一些分析,还有阅读一下它的源码,看看这个hive是怎么编译这个HiveQL,怎么去解析,怎么和我们hdfs上的数据关联,在mapreduce阶段怎么进行计算的。由于这个源码比较多,不是很好截图,有时候我会一部分一部分的截取。最主要的还是你们自己按照这个流程去看几遍,可以看看具体的细节。

  • 下面我们来看一张经典的图,本博客也是围绕这张图展开的讲解:
  • Hive与Hadoop的调用关系图:

Hadoop--MapReduce源码分析

  本片博客Hadoop的MapReduce源码分析,主要对上篇博客Hadoop-MapReduce详解/做进一步的理解。MapReduce源码分析东西太多,截图都截累了,前面比较详细一点靠后面可能只把主要的贴了上来,空闲了我在做一些补充吧!

  • MapReduce过程概述
  1. Job提交任务,会做初始化配置文件、检查Output Path、请求RM获取JobId、复制资源文件到HDFS等操作然后提交job作业;
  2. RM接收到作业后会初始化Job对象,然后启动一个NM会从HDFS获取资源文件分配一个Container,在Container中启动一个AM,在过程中会把文件分割为多个输入分片;
  3. 每个输入分片会让一个map任务来处理输出多个键值对,输出的结果会暂且放在一个环形内存缓冲区中;
  4. 紧接着就是分区,目的是把k2分配到不同的reduce task;
  5. map输出时可能会有很多的溢出文件,要将这些文件合并。合并的过程中会不断地进行排序和combia操作,最后合并成了一个已分区且已排序的文件。
  6. reduce阶段,接收到不同map任务传来的数据,如果接收数据大超过阈值就会溢出写入磁盘,溢出文件增多合并成大的有序的文件(反复地执行排序,合并操作)
  7. MapReduce会让写入磁盘的数据尽可能地少,并且最后一次合并的结果并没有写入磁盘,而是直接输入到reduce函数。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器