大數據運維方向面試題


   一、基礎題
1.請寫出http和https請求的區別,並寫出遇到過的響應狀態碼.
 
一、https協議需要到ca申請證書,一般免費證書很少,需要交費。
二、http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。 三、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
四、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
 
狀態碼常用:
301 永久重定向
403 服務器已經理解請求,但是拒絕執行
404 頁面丟失
500 服務器錯誤
 
 
2.請寫出在linux系統上面搭建系統或者產品等大數據平台需要對系統進行哪些檢查。
從穩定性說:需要檢查集群中的每一台服務器的命令安裝是否完善,環境變量是否配置完畢,每一台服務器的軟件配置是否有問題。
擴展性: 能夠快速擴展機器,橫向擴展條件是否具備
 
 
3.請寫出使用過的linux系統有哪些版本,如何查看系統信息?(發行版本,內核版本等信息)。
Centos 6.5 6.6 x64  1.查看發行版本命令:cat  /etc/issue
 2.查看內核版本:    cat  /proc/version
 
 
4.請使用命令在linux系統中創建用戶test,用戶組為test1,用戶目錄 /test , 並賦予sudo權限。
useradd  -d  /test  -m  test  -g  test1  -G  root
 
useradd 選項 用戶名 其中各選項含義如下:
-c comment 指定一段注釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號。
 
Sudo可以修改文件需要root用戶
sudo的工作過程如下:
 1,當用戶執行sudo時,系統會主動尋找/etc/sudoers文件,判斷該用戶是否有執行sudo的權限
 2,確認用戶具有可執行sudo的權限后,讓用戶輸入用戶自己的密碼確認
 3,若密碼輸入成功,則開始執行sudo后續的命令
4,root執行sudo時不需要輸入密碼(eudoers文件中有配置root ALL=(ALL) ALL這樣一條規則)
5,若欲切換的身份與執行者的身份相同,也不需要輸入密碼
 
 
 
5.寫出最少3個監控系統指標的命令(如內存,CPU ,IO,磁盤等)。
看內存 :free
看cpu:more /proc/cpuinfo
看IO:iostat -x 10
看磁盤:fdisk -l
 
 
6.請用多種方式在linux系統中設置環境變量,並指出各種方式的區別。
 
1、控制台中設置,不贊成這種方式,因為他只對當前的shell 起作用,換一個shell設置就無效了: $PATH="$PATH":/NEW_PATH (關閉shell Path會還原為原來的path)
 
2、修改 /etc/profile 文件,如果你的計算機僅僅作為開發使用時推存使用這種方法,因為所有用戶的shell都有權使用這個環境變量,可能會給系統帶來安全性問題。這里是針對所有的用戶的,所有的shell 在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"
 
3、修改bashrc文件,這種方法更為安全,它可以把使用這些環境變量的權限控制到用戶級別,這里是針對某一特定的用戶,如果你需要給某個用戶權限使用這些環境變量,你只需要修改其個人用戶主目錄下的 .bashrc文件就可以了。 在下面添加: Export PATH="$PATH:/NEW_PATH"
 
 
7.請在linux系統中添加指定的定時任務。(每月1,15日,1,10點運行 /run.sh).
 
*  1 ,10  1,15  *  *  sh  /run.sh
 
8.編寫個shell腳本將/data目錄下大於100k的文件轉移到 /tmp 目錄下。
#! /bin/sh
 
directory=/data/*
filesize=0
for file in $directory
 do
 filesize=$(wc -c < $(basename $file))
if [ $filesize  -gt  100*1024 ]
 then
mv   $(basename $file)   /tmp
 
fi
done
 
9.請使用命令寫出在linux系統中對於文件01.txt ,查找行內容包含“java”關鍵字,但不包含“bug”關鍵字的內容,不區分大小寫。
:set ignorecase 忽略大小寫  然后執行命令   /java[^bug] 
 
10.請幫我查詢出8443端口正在被哪個進程使用?
netstat -tunlp|grep  8443
 
 
11.請在linxu系統中使用命令快速找出mysql文件的位置。
 
rpm -qal |grep mysql
 
12.搭建NFS文件共享服務,如共享目錄為 /nfs , 如何配置NFS服務,客戶端怎么掛載共享目錄。
1.   yum install  nfs-utils rpcbind 安裝NFS服務端
2.   vi /etc/sysconfig/nfs 搜索和設置如下所示的端口配置:
 RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
 LOCKD_UDPPORT=30002
 MOUNTD_PORT=30003
STATD_PORT=30004
3.關閉防火牆
4.vi /etc/selinux/config 將上述文件中的 SELINUX=enforcing 替換為 SELINUX=permissive 保存上述文件之后,運行以下命令: setenforce 0
5、創建共享目錄  mkdir  /home/nfs-share
6、vi /etc/exports 在上述文件的末尾新增一行,如下所示:
 /data/nfs_share 192.168.4.212(rw,sync,no_root_squash)
/data/nfs_share *(ro) 這一行表示只有192.168.4.212客戶端能夠以讀寫權限掛載共享目錄,其他客戶端只能以只讀權限掛載。
7.啟動chkconfig nfs on
       chkconfig rpcbind on
service nfs start
service rpcbind start
8. yum install -y nfs-utils
9.手動掛載NFS共享目錄
Step-1:確定掛載點,運行以下命令: showmount -e 192.168.4.211
-e選項顯示NFS服務端的導出列表。
Step-2:創建掛載目錄,運行以下命令: mkdir -p /root/remote_dir 其中,/root/remote_dir為共享目錄的掛載點目錄。
 Step-3:掛載共享目錄,運行以下命令: mount -t nfs 192.168.4.211:/data/nfs_share /root/remote_dir 其中,-t選項用於指定文件系統的類型為nfs。
 Step-4:共享目錄使用結束之后,卸載共享目錄,運行以下命令: umount /root/remote_dir
 
 
 
13.解釋以下vi命令的意思,根據意思寫出vi命令。
1) :s/p1/p2/g      將所有的p1替換成p2
2)  顯示行號       :set nu
3) p              粘貼    對應 nyy復制使用
4)   刪除光標下6行  6dd
5) 將光標移動到最后一行行首   G
6) /apple             查找apple字符串
 
 
14.是否搭建過大數據組件相關的集群,如果集群之間無法通信了,怎么排查?
 
搭建過,應該檢查 1. jps查看進程是否停止
                 2. 檢查ip是否ping通
 
 
15.是否安裝過mysql源碼版本,寫出安裝流程。
 
Mysql5.6安裝
一 編譯環境安裝
1、安裝make編譯器
2、安裝 bison
3、安裝gcc-c ++
4、安裝cmake
5、安裝ncurses
6、 yum install gcc gcc-c++
yum install -y ncurses-devel
yum install -y cmake
yum install -y libaio
yum install -y bison
二 mysql安裝
  1、解壓mysql源碼壓縮文件
  2、編譯完成配置mysql服務
  3、啟動mysql
  4、修改root密碼(默認為空)
 
 
 
16.有下列兩表:
TAB1
C1           C2                           
------        - -----
A             11
B             12
C             13
TAB2
CX           CY
------          ------
A             21
C             22
D             23
要得到一下結果:
 
C1     C2      CX        CY
-----    -----     ------     ------
 
A      11       A          21
 
C      13       C          22
 
-----    ------     D          23
 
請寫出具體的sql語句
 
SELECT *  from  tab1 RIGHT JOIN tab2 on tab1.C1 =tab2.CX
 
Union是連接兩個查詢語句 (select  * from  tab1 union all  select * from tab2)
Union ALL 連接所有值包括重復   Union不包括重復值
 
二、基礎題
1、請寫出mysql數據庫的幾種備份/恢復方法。並指出其優缺點
備份
1、linux命令 mysqldump 直接生成.sql文件備份
mysqldump -u username -p  dbname  table1 > /home/BackupName.sql    輸出mysql密碼后備份
2.利用工具備份(Navicat)
3.復制整個數據庫目錄備份 (xcopy 命令)
4.使用mysqlhotcopy工具快速備份(熱備份)
原理:先將需要備份的數據庫加上一個讀鎖,然后用FLUSH TABLES將內存中的數據寫回到硬盤上的數據庫,最后,把需要備份的數據庫文件復制到目標目錄。
恢復:
mysql  -u  root  -p  dbname  <  C:\backup.sql
 
優缺點:
1.Mysqldump:利用linux或者shell進行備份比較靈活,運行較慢
2.利用工具:不好控制,不能自定義
3.復制整個data目錄 :這種方法不適用於InnoDB存儲引擎的表,而對於MyISAM存儲引擎的表很方便。同時,還原時MySQL的版本最好相同。
4.mysqlhotcopy:mysqlhotcopy支持不停止MySQL服務器備份。而且,mysqlhotcopy的備份方式比mysqldump快。mysqlhotcopy是一個perl腳本,主要在Linux系統下使用。其使用LOCK TABLES、FLUSH TABLES和cp來進行快速備份。需要安裝Perl和DBI支持。
2、請解釋max_allowed_packet 的用途
指代mysql服務器端和客戶端在一次傳送數據包的過程當中數據包的大小這個是定義mysql服務器端和客戶端在一次傳送數據包的過程當中數據包的大小定義過大,比如max_allowed_packet=8092,有可能服務器端太忙,來不及接收,或者網絡太差,會容易造成丟包定義過小,會因為客戶端可能無法快速接收服務器端發過來的包,一般推薦是4096
 
3、寫出調優過的mysql配置參數(連接數/接收的數據包大小)
 
MySQL配置文件my.cnf
global max_connections 設置連接數
max_allowed_packet    客戶端與服務端之間一次傳輸數據包大小
。。。。
4、查看linux系統中啟動了多少java進程,並獲取其中某個java進程的內存使用情況。
Jps 查看進程pid
jmap -heap pid
 
5、指出Nginx支持哪幾種負載均衡模式,並指出各模式的應用場景。
1.roundrobin 輪詢方式,依次將請求分配到各個后台服務器中,默認的負載均衡方式。 適用於后台機器性能一致的情況。 掛掉的機器可以自動從服務列表中剔除。
 2.weight 根據權重來分發請求到不同的機器中,適用於后台機器性能不一樣的情況。
 3.ip_hash 根據請求者ip的hash值將請求發送到后台服務器中,可以保證來自同一ip的請求被打到固定的機器上,可以解決session問題。
 4.url_hash 根據請求的url的hash值將請求分到不同的機器中,當后台服務器為緩存的時候效率高。
 5.fair 根據后台響應時間來分發請求,響應時間短的分發的請求多。
 
三、專項題
1.寫出hadoop集群常用進程以及進程含義
1、Namenode
它是Hadoop 中的主服務器,管理文件系統名稱空間和對集群中存儲的文件的訪問。
2、Datanode
它負責管理連接到節點的存儲(一個集群中可以有多個節點)。每個存儲數據的節點運行一個 datanode 守護進程。
3、secondaryNameNode
它不是 namenode 的冗余守護進程,而是提供周期檢查點和清理任務。 出於對可擴展性和容錯性等考慮,我們一般將SecondaryNameNode運行在一台非NameNode的機器上。
4、ResourceManager
負責調度 DataNode上的工作。每個 DataNode有一個NodeManager,它們執行實際工作。
5、NodeManager
負責執行ResourceManager分發的任務
HA 模式忽略
2.Hadoop安裝部署需要修改的配置文件,以及常用端口,舉例說明
hadoop-env.sh    hadoop jdk配置
core-site.xml     hadoop核心文件-配置hadoop的命名服務和tmp目錄和zookeeper集群
hdfs-site.xml      配置通信端口 http端口等。
mapred-site.xml   配置mapreduce的資源調度框架 yarn
yarn-site.xml      yarn相關配置
Slaves 文件       指定hadoop集群的子節點位置
端口:
50070   namenode的web訪問端口
9000    RPC通信端口
2181    zookeeper端口 
...
3.使用過的hadoop shell 命令
Hadoop fs -ls /
Hadoop fs  -mkdir  /test
Hadoop fs  -cat /
.......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM