日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利剑无意之面试题(二)

發布時間:2024/2/28 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利剑无意之面试题(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示?切換目錄用什么命令?
    ?

絕對路徑: 如/etc/init.d

當前目錄和上層目錄: ./ ../

主目錄: ~/

切換目錄: cd

  • 查看文件內容有哪些命令可以使用?
    ?

vi 文件名 #編輯方式查看,可修改

cat 文件名 #顯示全部文件內容

more 文件名 #分頁顯示文件內容

less 文件名 #與 more 相似,更好的是可以往前翻頁

tail 文件名 #僅查看尾部,還可以指定行數

head 文件名 #僅查看頭部,還可以指定行數

  • HDFS為什么不太適合小文件的存儲?
    ?

不能高效的對大量的小數據進行存儲(大量的小文件會很快沾滿nameNode的內存空間)大量的小文件,也會影響NameNode的尋址時間。

1. 小文件過多,會過多占用namenode的內存,并浪費block。

文件的元數據(包括文件被分成了哪些blocks,每個block存儲在哪些服務器的哪個block塊上),都是存儲在namenode上的。

HDFS的每個文件、目錄、數據塊占用150B,因此300M內存情況下,只能存儲不超過300M/150=2M個文件/目錄/數據塊的元數據。

2. 文件過小,尋道時間大于數據讀寫時間,這不符合HDFS的設計。

HDFS天生就是為存儲大文件而生的,一個塊的元數據大小大概在150byte左右,存儲一個小文件就要占用150byte的內存,如果存儲大量的小文件

很快就將內存耗盡,而整個集群存儲的數據量很小,失去了HDFS的意義。

解決方案:

可以將數據合并上傳,或者將文件append形式追加在HDFS文件末尾。

  • crontab文件的用處,有多少個參數,各是什么含義。
    ?

使用crontab你可以在指定的時間執行一個shell腳本或者一系列Linux命令。

六個。

第一個“*” 一小時當中的第幾分鐘 0-59

第二個“*” 一天當中的第幾小時 0-23

第三個“*” 一個月當中的第幾天 1-31

第四個“*” 一年當中的第幾月 1-12

第五個“*” 一周當中的星期幾 0-7(0和7都代表星期日)

【補充】

crontab -e 設置定時任務

-r 刪除任務

-l 列出該用戶的定時任務

-u 指定定時器的用戶名稱

  • Linux系統是一種典型的多用戶系統 ,不同的用戶處于不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的用戶訪問同一-文件(包括目錄文件)的權限做了不同的規定。那么文件屬性一共有多少個字符,各是什么含義?
    ?

10個。

(1)0首位表示類型

在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等

- 代表文件

?d 代表目錄

?c 字符流,裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)

?s socket

?p 管道

?l 鏈接文檔(link file);

?b 設備文件,裝置文件里面的可供儲存的接口設備(可隨機存取裝置)

(2)第1-3位確定屬主(該文件的所有者)擁有該文件的權限。---User

(3)第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,---Group

(4)第7-9位確定其他用戶擁有該文件的權限 ---Other

  • 軟鏈接和硬鏈接的區別
    ?

軟鏈接文件的大小和創建時間和源文件不同。軟鏈接文件只是維持了從軟鏈接到源文件的指向關系,不是源文件的內容。

硬鏈接文件和源文件的大小和創建時間一樣。硬鏈接文件的內容和源文件的內容一模一樣,相當于copy了一份。

  • HDFS的存儲機制(讀寫流程)。
    ?

HDFS存儲機制,包括HDFS的寫入過程和讀取過程兩個部分

?

1)客戶端向namenode請求上傳文件,namenode檢查目標文件是否已存在,父目錄是否存在。

2)namenode返回是否可以上傳。

3)客戶端請求第一個 block上傳到哪幾個datanode服務器上。

4)namenode返回3個datanode節點,分別為dn1、dn2、dn3。

5)客戶端請求dn1上傳數據,dn1收到請求會繼續調用dn2,然后dn2調用dn3,將這個通信管道建立完成。

6)dn1、dn2、dn3逐級應答客戶端

7)客戶端開始往dn1上傳第一個block(先從磁盤讀取數據放到一個本地內存緩存),以packet為單位,dn1收到一個packet就會傳給dn2,dn2傳給dn3;dn1每傳一個packet會放入一個應答隊列等待應答

8)當一個block傳輸完成之后,客戶端再次請求namenode上傳第二個block的服務器。(重復執行3-7步)

?

1)客戶端向namenode請求下載文件,namenode通過查詢元數據,找到文件塊所在的datanode地址。

2)挑選一臺datanode(就近原則,然后隨機)服務器,請求讀取數據。

3)datanode開始傳輸數據給客戶端(從磁盤里面讀取數據放入流,以packet為單位來做校驗)。

4)客戶端以packet為單位接收,先在本地緩存,然后寫入目標文件

  • SecondaryNameNode工作機制。
    ?

1)第一階段:namenode啟動

(1)第一次啟動namenode格式化后,創建fsimage和edits文件。如果不是第一次啟動,直接加載編輯日志和鏡像文件到內存。

(2)客戶端對元數據進行增刪改的請求

(3)namenode記錄操作日志,更新滾動日志。

(4)namenode在內存中對數據進行增刪改查

2)第二階段:Secondary NameNode工作

(1)Secondary NameNode詢問namenode是否需要checkpoint。直接帶回namenode是否檢查結果。

(2)Secondary NameNode請求執行checkpoint。

(3)namenode滾動正在寫的edits日志

(4)將滾動前的編輯日志和鏡像文件拷貝到Secondary NameNode

(5)Secondary NameNode加載編輯日志和鏡像文件到內存,并合并。

(6)生成新的鏡像文件fsimage.chkpoint

(7)拷貝fsimage.chkpoint到namenode

(8)namenode將fsimage.chkpoint重新命名成fsimage

總結

以上是生活随笔為你收集整理的利剑无意之面试题(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。