春招面試經驗系列(二)網易遊戲
網易遊戲
一、MapReduce的split和HDFS的block的關係?
1、split是HDFS的邏輯分割槽,是用來控制Mapper的數量,split既可以比block大也可以比block小,split分了多少個則就有多少個Mapper,當沒有指定split的大小時,預設的是block的大小。
2、block是HDFS的物理分割槽,預設設定是128MB。HDFS會把資料分成不同的block,然後按照叢集的副本數,把block複製到不同的datanode。
3、HDFS是主要用來儲存大檔案的,如果存在大量的小檔案的話,應該調節block的大小,避免出現大量的小檔案。
4、因為小檔案的資訊儲存在namenode中,會導致namenode的記憶體非常大,小檔案會增加大量的磁碟IO。
5、解決小檔案的方法:使用HDFS的sync和append來把小檔案合成大檔案。
二、MySQL的連線方式?
表的追加:union:a union b會先把a和b的重複記錄刪除,然後再排序,union all就是簡單的把兩個表合併。
三、hive中order by和sort by的區別
1、order by對輸入做全域性排序,只有一個reducer,當輸入規模較大時,消耗較長的計算時間。
2、sort by不對全域性排序,只保證每個ruducer輸出有序。
四、敘述下java的反射機制。
類載入包括載入、驗證、準備、初始化、使用、解除安裝。通過class類的forName(),獲得class物件,進行類載入,然後初始化一個新的物件,進行呼叫相應的方法。
五、Hive的元資料放在那裡?
metastore是Hive元資料的集中存放地。metastore包括兩部分:服務和後臺資料的儲存。使用內嵌metastore是Hive入門最簡單的方法。
六、問了簡歷中專案相關的問題。(相關問題數量較多)
七、CDH namenode的備份節點相關問題。
CDH是Hadoop的髮型版本,目的就是為了提高Hadoop的可管理性,相容性,安全性。
CDH的安裝方式:cloudera manager 、yum、 rpm、tarball。
八、Python資料型別
1、numbers(數字):int (有符號整型)、long(長整型)、float(浮點型)、complex(複數)
2、string(字串)
3、list(列表)
4、tuple(元組)
5、dictionary(字典)