能支持億級高併發的Hadoop源碼有多厲害?附25道BAT大數據面試題

大數據由於數據量龐大、數據類型複雜等特點,特別是非結構化或半結構化數據遠遠多於結構化數據,導致傳統關係型數據庫讓企業面臨巨大的成本壓力。而 Hadoop 能夠很好的提供解決大數據問題的技術手段。因此,Hadoop 技術在大數據中佔據著舉足輕重的作用,也很受企業的青睞。

像字節跳動等頭部企業,往往很重視 Hadoop 源碼的二次開發,對簡歷職級要求比較高,還需要應聘者具有源碼閱讀經驗。

能支持億級高併發的Hadoop源碼有多厲害?附25道BAT大數據面試題

能支持億級高併發的Hadoop源碼有多厲害?附25道BAT大數據面試題

能支持億級高併發的Hadoop源碼有多厲害?附25道BAT大數據面試題

能支持億級高併發的Hadoop源碼有多厲害?附25道BAT大數據面試題

對正從事大數據相關工作,或轉行大數據的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. nexus-aliyun
  4. <mirrorof>central/<mirrorof>
  5. <name>Nexus aliyun/<name>
  6. http://maven.aliyun.com/nexus/content/groups/public

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大數據面試題

為了讓更多對大數據感興趣的小夥伴學習受益,現將這個資料免費開放給大家,大家轉發關注一下小編,私信小編“學習”即可!


分享到:


相關文章: