1. 程式人生 > >基於大數據的電影網站項目開發之階段性總結(三)

基於大數據的電影網站項目開發之階段性總結(三)

字符 crc -c ... chown root per edi 第一個字符

一、基礎講解

1. 主機ping不同虛擬機

  虛擬機要設置IP地址,ip段是vmware
編輯菜單-->虛擬網絡編輯器 網段,
網關:192.168.XXX.2
IP地址,不要是.1/.2
把vmware裝好以後,在"網絡適配器"裏,應該多出兩個虛擬網卡

2. linux
使用linux裏的一些命令
cd:切換目錄
tar -zxvf ....tar.gz,對tar文件進行解壓
su [用戶名] 不寫用戶名,默認是切換到root用戶
vi 文件名稱。剛進入的時候,是命令模式
輸入i,進入insert模式
編輯完成後,按esc退出inseret模式
:wq 保存退出
:q 只退出
:q! 強制退出
用戶機制:
root用戶,超級用戶,對整個linux系統有完全的權限
一般不使用這個用戶,這個用戶的權限太大了
普通用戶,有一定的權限
一般可以操作自己家目錄和/tmp目錄
用戶家目錄/home/用戶名

linux權限
ll命令查看文件的時候,
drwxr-xr-x. 2 hadoop hadoop 4096 Jun 26 23:11 Desktop
drwxr-xr-x:10個字符,
第一個字符表示文件的類型,-代表是文件,d是目錄,l"快捷方式"
後面9個字符,分為了3組,每組是3個字符
第一組(文件所有者的權限信息):rwx,r可讀,w可寫,x可執行
第二組(文件所有者的同一組其他用戶的權限信息)
第三組:其他用戶的權限信息

linux裏的文件系統
和windows不一樣,沒有盤符的概念
只有一個根目錄 /
/root root用戶的家目錄

3.ssh免密登錄:rsa加密方式,會生出一個公鑰和私鑰
配置的時候,需要把公鑰發送給受信任主機
A主機 B主機
A把自己的公鑰發送給B,A就可以免密登錄B

二、之前的配置操作可能出現的問題
格式化出錯
配置文件有問題
進程少一個
大部分是namennode,一般來說,是hosts文件沒有配置
ping 主機名
重啟後進程少了
/tmp裏和hadoop相關的文件被刪除了

格式化操作:
bin/hdfs namenode -format操作生成了一些格式化信息
默認在/tmp/hadoop-用戶名/dfs/name/current/VERSION
如果需要再次格式化,需要把上面的信息刪除

因為格式化信息默認是在/tmp,該目錄裏的文件可能被linux系統刪除

把HDFS的存儲信息,放到一個安全的地方

在hdfs-site.xml文件中設置
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/appData/hadoop/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/appData/hadoop/data</value>
</property>
重新格式化

三、關鍵節點解釋
NameNode在內存中存儲集群的元數據
元數據:
文件的類型,權限
文件塊的信息
數據節點的信息等

fsimage:集群的鏡像文件,存儲了集群的元數據
edits文件:保持對文件系統的修改(元數據)
fsimage和edits文件都是存儲元數據,有什麽區別。
隨著集群的使用,元數據會越來越多,1M--100M--1G--10G
當元數據是1M的時候,寫數據很快
當元數據到達10G的時候,想寫數據沒那麽容易
edits每次對集群修改的時候,先把元數據寫到edtis文件中,
等到達一定條件的時候(時間,文件大小),再把edits文件和fsimage進行合並

HDFS文件系統和linux文件系統比較類似
HDFS文件系統是建立在linux文件系統之上的

SecondaryNameNode是Namenode的一個備用,但是在NN失效後,SecondaryNameNode不能及時切換為NN
SecondaryNameNode主要作用是把fsimage和edits文件進行合並

NN要恢復,需要fsimage和edits文件,如果NN的磁盤壞了,NN會丟失數據
因為只能使用SecondaryNameNode裏存儲的fsimage文件。

退出安全模式
bin/hdfs dfsadmin -safemode leave

DN:執行NN的指令(讀文件,刪除文件,添加文件)
每隔3秒向NN發送一個心跳。告訴NN我還活著
每隔6小時向NN報告塊信息

四、hadoop命令
[[email protected] hadoop-2.6.0]$ bin/hadoop fs
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] <path> ...]
[-cp [-f] [-p | -p[topax]] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] <path> ...]
[-expunge]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
[-getmerge [-nl] <src> <localdst>]
[-help [cmd ...]]
[-ls [-d] [-h] [-R] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] [-l] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setfattr {-n name [-v value] | -x name} <path>]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-usage [cmd ...]]

在這裏的local指的是linux的文件系統
沒有加local則是HDFS

上傳文件
bin/hadoop fs -copyFromLocal/-put localsrc dst
查看文件
bin/hadoop fs -ls path
-rw-r--r-- 1 hadoop supergroup 101 2017-06-27 23:26 /NOTICE.txt
查看的命令和顯示的結果都和linux相似,這樣可以降低學習hadoop的成本
查看文件內容
bin/hadoop fs -cat path

chmod u+[rwx] 文件
chmod 777 文件
777 rwxrwxrwx
744 rwxr--r--
下載文件
bin/hadoop fs -copyToLocal/-get src localdst

創建目錄
bin/hadoop fs -mkdir /aa --創建一級目錄
bin/hadoop fs -mkdir -p /aa --一次創建多級目錄,增加參數-p

刪除目錄
bin/hadoop fs -rmdir /aa --只能刪除空目錄
刪除文件
bin/hadoop fs -rm /NOTICE.txt

bin/hadoop fs -rm -r /NOTICE.txt -r進行遞歸刪除

單獨啟動NN進程
nohup bin/hdfs namenode &

Hadoop web接口。http://192.168.85.99:50070/
關閉防火墻
root用於:service iptables stop

基於大數據的電影網站項目開發之階段性總結(三)