1 Linux命令
1.1 文件
cd path 路徑名
cd .. 返回上一層
cd ~ 進入到當前Linux系統登錄用戶的主目錄(或主文件夾)。在 Linux 系統中,~代表的是用戶的主文件夾,即“/home/用戶名”這個目錄,如果當前登錄用戶名為 hadoop,則~就代表“/home/hadoop/”這個目錄
ls #查看當前目錄中的文件
ls -l #查看文件和目錄的權限信息
mkdir input #在當前目錄下創建input子目錄
mkdir -p src/main/scala # 在當前目錄下,創建多級子目錄src/main/scala
cat /home/hadoop/word.txt `#把/home/hadoop/word.txt這個文件全部內容顯示到屏幕上
cat file1 file2 > file3 #把當前目錄下的file1和file2兩個文件進行合並生成文件file3
head -5 word.txt #把當前目錄下的word.txt文件中的前5行內容顯示到屏幕上,可以顯示前n行,自定義
cp /home/hadoop/word.txt /usr/local/ #把/home/hadoop/word.txt文件復制到“/usr/local”目錄下,前面是文件后面三文件夾,后面三文件則進行重命名
rm ./word.txt #刪除當前目錄下的word.txt文件
rm –r ./test #刪除當前目錄下的test目錄及其下面的所有文件
rm –r test* #刪除當面目錄下所有以test開頭的目錄和文件
tar -zxf ~/下載/spark-2.1.0.tgz -C /usr/local/ #把spark-2.1.0.tgz這個壓縮文件解壓到/usr/local目錄下。* x : 從 tar 包中把文件提取出來;* z : 表示 tar 包是被 gzip 壓縮過的,所以解壓時需要用gunzip解壓;* f : 表示后面跟着的是文件;* C:表示文件解壓后轉到指定的目錄下。
mv spark-2.1.0 spark #把spark-2.1.0目錄重新命名為spark
chown -R hadoop:hadoop ./spark # hadoop是當前登錄Linux系統的用戶名,把當前目錄下的spark子目錄的所有權限,賦予給用戶hadoop
ifconfig #查看本機IP地址信息
exit #退出並關閉Linux終端
1.2 vim命令
vim afile 編輯afile文件,如果沒有則是新文件
按字母i或者insert鍵開始插入內容
插入完畢后按Esc鍵退出編輯
輸入:wq保存並退出,輸入:q退出不保存,后面加嘆號!表示強制執行
這里需要指出的是,在Linux系統中使用vim編輯器創建一個文件時,並不是以擴展名來區分文件的,不管是否有擴展名,都是生成文本文件,.txt擴展名只是我們自己人為添加,方便自己查看用的。也就是說,創建word.txt和word這兩個文件,對於Linux系統而言都是默認創建了文本類型的文件,和是否有.txt擴展名沒有關系。
1.3賬戶
安裝gnome界面 yum groupinstall "GNOME Desktop"
設置默認啟動 systemctl set-default multi-user.target //設置成命令模式 systemctl set-default graphical.target //設置成圖形模式
useradd -m hadoop -s /bin/bash # 創建新用戶hadoop並使用 /bin/bash 作為shell。
passwd hadoop #修改密碼
visudo#打開文件添加管理員權限 hadoop ALL=(ALL) ALL
切換用戶 login hadoop
切換root :sudo su
ssh無密碼登陸
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按回車就可以 cat id_rsa.pub >> authorized_keys # 加入授權 chmod 600 ./authorized_keys # 修改文件權限
添加環境變量
vim ~/.bashrc #添加內容 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjd
source ~/.bashrc # 使變量設置生效
添加path變量vim ~/.bashrc
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
設置主機名
sudo vim /etc/hostname
然后執行如下命令修改自己所用節點的IP映射:先ip再tab再輸入主機名,重啟電腦生效
sudo vim /etc/hosts
ping命令,檢測是否在同一個局域網內
ping Master -c 3 # 只ping 3次,否則要按 Ctrl+c 中斷 ping Slave1 -c 3
1.4 SSH無密碼登陸
例如Master要無密碼ssh登陸Slave1,先在Master上
cd ~/.ssh # 如果沒有該目錄,先執行一次ssh localhost rm ./id_rsa* # 刪除之前生成的公匙(如果有) ssh-keygen -t rsa # 一直按回車就可以
cat ./id_rsa.pub >> ./authorized_keys
完成后可執行 ssh Master
驗證一下(可能需要輸入 yes,成功后執行 exit
返回原來的終端)。接着在 Master 節點將上公匙傳輸到 Slave1 節點,注意目標機器+冒號+目標路徑
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
scp ./hadoop.master.tar.gz Slave1:/home/hadoop
scp ~/file1/file4.txt 192.168.0.4:~
scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,類似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 Slave1 上 hadoop 用戶的密碼(hadoop),輸入完成后會提示傳輸完畢。賬戶名@主機名加冒號: 加路徑
在slave1節點上
mkdir ~/.ssh # 如果不存在該文件夾需先創建,若已存在則忽略 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/id_rsa.pub # 用完就可以刪掉了
2 Hadoop命令
格式化
hdfs namenode -format
啟動:
在Master節點上
start-dfs.sh start-yarn.sh mr-jobhistory-daemon.sh start historyserver
或
不推薦的用法
start-all.sh
查看進程
通過命令 jps
可以查看各個節點所啟動的進程。正確的話,在 Master 節點上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進程
缺少任一進程都表示出錯。
查看DataNode
hdfs dfsadmin -report
另外還需要在 Master 節點上通過命令 hdfs dfsadmin -report
查看 DataNode 是否正常啟動,如果 Live datanodes 不為 0 ,則說明集群啟動成功。
通過 Web 頁面看到查看 DataNode 和 NameNode 的狀態:http://master:50070/。如果不成功,可以通過啟動日志排查原因。
實際上有三種shell命令方式。
1. hadoop fs :適用於任何不同的文件系統,比如本地文件系統和HDFS文件系統
2. hadoop dfs:只能適用於HDFS文件系統
3. hdfs dfs:也只能適用於HDFS文件系統
命令以上述三個開頭如 hadoop fs - 跟命令。最常見的命令。
hadoop fs -ls 列出文件信息
hadoop fs -cat path指定的文件內容輸出
hdfs dfs -mkdir hado 創建文件
hadoop fs -ls input2
hadoop fs -put ~/file1/file*.txt input2
hadoop fs -du -h#顯示文件系統的文件和大小
執行jar包
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.1.jar wordcount input2 output3