1. 程式人生 > >2019最新大資料面試題 助力大家度過筆試關

2019最新大資料面試題 助力大家度過筆試關

  大資料面試題總結一波,助力準備在金三銀四尋找好工作的小夥伴們,只有度過筆試這一關才能在下面的關卡中大展巨集圖!

 

1f2dfba37e40444993704686c8321539.png

  一、如何檢查namenode是否正常執行?重啟namenode的命令是什麼?

  通過節點資訊和瀏覽器檢視,通過指令碼監控

  hadoop-daemon.sh start namenode

  hdfs-daemon.sh start namenode

  二、hdfs儲存機制是怎樣的?

  1) client端傳送寫檔案請求,namenode檢查檔案是否存在,如果已存在,直接返回錯誤資訊,否則,傳送給client一些可用namenode節點

  2) client將檔案分塊,並行儲存到不同節點上datanode上,傳送完成後,client同時傳送資訊給namenode和datanode

  3) namenode收到的client資訊後,傳送確信資訊給datanode

  4) datanode同時收到namenode和datanode的確認資訊後,提交寫操作。

  三、hadoop中combiner的作用是什麼?

  當map生成的資料過大時,頻寬就成了瓶頸,怎樣精簡壓縮傳給Reduce的資料,又不影響最終的結果呢。有一種方法就是使用Combiner,Combiner號稱本地的Reduce,Reduce最終的輸入,是Combiner的輸出。

  四、 你們資料庫怎麼匯入hive 的,有沒有出現問題

  在匯入hive的時候,如果資料庫中有blob或者text欄位,會報錯,解決方案在sqoop筆記中。在將資料由Oracle資料庫匯入到Hive時,發現帶有clob欄位的表的資料會錯亂,出現一些欄位全為NULL的空行。

  由於在專案中CLOB欄位沒有實際的分析用途,因此考慮將CLOB欄位去掉。

  同時,為了防止CLOB欄位產生一些問題,因此將HIVE中CLOB欄位禁用,禁用的方式如下:

  [[email protected] sqoop-1.4.5]$ cd $SQOOP_HOME/conf

  [

[email protected] conf]$ vi oraoop-site.xml

  將以下屬性的註釋去掉,並且將value改為true

  oraoop.import.omit.lobs.and.long

  true

  If true, OraOop will omit BLOB, CLOB, NCLOB and LONG columns during an Import.

  有些表中雖然有clob欄位,但是不能排除掉,因為其他欄位使我們所需要,因此在匯入的時候採用指定--columns的方式來進行匯入

  sqoop import --hive-import --hive-database test --create-hive-table --connect jdbc --username user--password user

  --bindir //scratch --outdir /Java --table aaa --columns "ID,NAME" -m 1 --null-string '\\N' --null-non-string '\\N'

  五、hdfs-site.xml的3個主要屬性?

  dfs.name.dir決定的是元資料儲存的路徑以及DFS的儲存方式(磁碟或是遠端)

  dfs.data.dir決定的是資料儲存的路徑

  fs.checkpoint.dir用於第二Namenode

  六、是否可以在Windows上執行Hadoop?

  建議不要這麼做,RedHatLinux或者是Ubuntu才是Hadoop的非常適合作業系統。在Hadoop安裝中,Windows通常不會被使用,因為會出現各種各樣的問題。因此,Windows絕對不是Hadoop的推薦系統。