大数据由于数据量庞大、数据类型复杂等特点,特别是非结构化或半结构化数据远远多于结构化数据,导致传统关系型数据库让企业面临巨大的成本压力。而 Hadoop 能够很好的提供解决大数据问题的技术手段。因此,Hadoop 技术在大数据中占据着举足轻重的作用,也很受企业的青睐。

像字节跳动等头部企业,往往很重视 Hadoop 源码的二次开发,对简历职级要求比较高,还需要应聘者具有源码阅读经验。

能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java


能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java_02


能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java_03


能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java_04


对正从事大数据相关工作,或转行大数据的Java、PHP等开发人员,如果你不想一直只做一个大数据的应用层级选手,希望能够做平台架构,打破技术壁垒,进一步提升技术实力,那么源码层级的修炼必定是你不可或缺的能力。

如果你会 Hadoop 源码,懂一些架构思想,你的技术级别会高很多。如果想进大厂,你的面试胜算也会高不少。如果是一些小公司,你也能够面试到一个 Leader 的岗位。

详解Hadoop2.7.2 编译64位源码

主要介绍了Hadoop2.7.2 编译64位源码的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

一、环境准备

1.CentOS配置

最好是用新克隆的虚拟机 ,虚拟机内存设置大一点(我设置的4G),配置网络,主机名,关闭防火墙,关闭selinux注意:采用root角色编译,减少文件夹权限出现问题

2.jar包准备(hadoop源码、JDK8、maven、ant 、protobuf)

(1)hadoop-2.7.2-src.tar.gz

(2)jdk-8u144-linux-x64.tar.gz

(3)apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)

(4)apache-maven-3.0.5-bin.tar.gz

(5)protobuf-2.5.0.tar.gz(序列化的框架)

3.jar包安装(注意:所有操作必须在root用户下完成)

JDK

1.解压

tar -zxf jdk-8u141-linux-x64.tar.gz -C /export/compile

2.配置环境变量

  1. vim /etc/profile

  2. export JAVA_HOME=/export/compile/jdk1.8.0_141

  3. export PATH=$PATH:$JAVA_HOME/bin

3.更新profile文件

source /etc/profile

4.验证安装是否成功

验证命令:jps 出现jps进程表示安装配置成功

2.Maven

1.解压&重命名

  1. tar -zxf apache-maven-3.0.5-bin.tar.gz -C /export/compile

  2. mv /export/compile/apache-maven-3.0.5-bin.tar.gz /export/compile/maven

2.修改配置文件

vim /export/compile/maven/conf/settings.xml

添加阿里云镜像地址:

  1. <mirrors>

  2. <mirror>

  3. <id>nexus-aliyun</id>

  4. <mirrorOf>central</mirrorOf>

  5. <name>Nexus aliyun</name>

  6. <url>http://maven.aliyun.com/nexus/content/groups/public</url>

  7. </mirror>

  8. </mirrors>

3.配置环境变量

  1. vim /etc/profile

  2. export MAVEN_HOME=/export/compile/maven

  3. export PATH=$PATH:$MAVEN_HOME/bin

4.更新profile文件

source /etc/profile

5.验证安装是否成功

验证命令:mvn -version 出现版本信息表示安装成功

3.ant

1.解压&重命名

  1. tar -zxf apache-ant-1.9.9-bin.tar.gz -C /export/compile

  2. mv apache-ant-1.9.9 ant

2.配置环境变量

  1. vim /etc/profile

  2. export ANT_HOME=/export/compile/ant

  3. export PATH=$PATH:$ANT_HOME/bin

3.更新profile文件

source /etc/profile

4.验证安装是否成功

验证命令:ant -version 出现版本信息表示安装成功

4.glibc-headers

  1. yum -y install glibc-headers

  2. yum -y install gcc-c++

5.make和cmake

  1. yum -y install make

  2. yum -y install cmake

6.protobuf

1.解压&重命名&进入protobuf根目录

  1. tar -zxf protobuf-2.5.0.tar.gz -C /export/compile

  2. mv protobuf-2.5.0/ protobuf

  3. cd /export/compile/protobuf

2.依次执行如下命令

1 ./configure 2 make 3 make check 4 make install 5 ldconfig

3.配置环境变量

  1. vim /etc/profile

  2. export LD_LIBRARY_PATH=/export/compile/protobuf

  3. export PATH=$PATH:$LD_LIBRARY_PATH

4.更新profile文件

source /etc/profile

5.验证安装是否成功

验证命令:protoc --version 出现版本信息表示安装成功

7.安装openssl库

yum -y install openssl-devel

8.安装 ncurses-devel库

yum -y install ncurses-devel

二、编译源码

1.解压

tar -zxf hadoop-2.7.2-src.tar.gz -C /export/compile

2.进入hadoop源码主目录

/export/compile/hadoop-2.7.2-src

3.通过maven执行编译命令

mvn package -Pdist,native -DskipTests -Dtar

4.然后就是漫长的等待...(大约等待时间30分钟左右,最终成功是全部SUCCESS,如下图所示)

5.成功的64位hadoop包在/export/compile/hadoop-2.7.2-src/hadoop-dist/target目录下

三、编译源码过程中常见的问题及解决方案

(1)MAVEN install时候JVM内存溢出

原因以及处理方式:在环境配置文件和maven的执行文件均可调整MAVEN_OPT的heap大小。(详情查阅MAVEN 编译 JVM调优问题,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method)

(2)编译期间maven报错

原因以及处理方式:可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令(一次通过比较难):mvn package -Pdist,nativeN -DskipTests -Dtar

(3)报ant、protobuf等错误

原因以及处理方式:插件下载未完整或者插件版本问题,最开始链接有较多特殊情况。

总结

到此这篇关于Hadoop2.7.2 编译64位源码的文章就介绍到这了。

现在,这里有份《25道BAT大数据面试题》技术文档。

1、kafka的message包括哪些信息?

2、怎么查看kafka的offset?

3、hadoop的shuffle过程

4、spark集群运算的模式

5、HDFS读写数据的过程

6、RDD中reduceBykey与groupByKey哪个性能好,为什么

7、spark2.0的了解

8、 rdd 怎么分区宽依赖和窄依赖

9、spark streaming 读取kafka数据的两种方式

10、kafka的数据存在内存还是磁盘

11、怎么解决kafka的数据丢失

12、fsimage和edit的区别?

13、列举几个配置文件优化?

14、datanode 首次加入 cluster 的时候,如果 log 报告不兼容文件版本,那需要namenode 执行格式化操作,这样处理的原因是?

15、MapReduce 中排序发生在哪几个阶段?这些排序是否可以避免?为什么?

16、hadoop的优化?

17、设计题

18、有 10 个文件,每个文件 1G,每个文件的每一行存放的都是用户的 query,每个文件的query 都可能重复。要求你按照 query 的频度排序。还是典型的 TOP K 算法,

19、在 2.5 亿个整数中找出不重复的整数,注,内存不足以容纳这 2.5 亿个整数。

20、腾讯面试题:给 40 亿个不重复的 unsigned int 的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那 40 亿个数当中?

21、怎么在海量数据中找出重复次数最多的一个?

22、上千万或上亿数据(有重复),统计其中出现次数最多的钱 N 个数据。

23、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前 10 个词,给出思想,给出时间复杂度分析。

24、100w 个数中找出最大的 100 个数。

25、有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用 5 分钟时间,找出重复出现最多的前 10 条。

能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java_05


为了让更多对大数据感兴趣的小伙伴学习受益,现将这个资料免费开放给大家,大家转发关注一下小编,私信小编“学习”即可!

能支持亿级高并发的Hadoop源码有多厉害?附25道BAT大数据面试题_java_06