大資料(四) --偽分散式搭建
說明
搭建之前, 先根據HDFS三種模式一文將叢集的初始環境配置好.
偽分散式搭建
-
將上傳的Hadoop壓縮包解壓 這裡我將檔案解壓到/opt/software/hadoop資料夾下.
tar -zxf hadoop-2.6.5.tar.gz -C /opt/software/hadoop
進入配置檔案修改目錄
cd /opt/software/hadoop/hadoop-2.6.5/etc/hadoop/
-
修改hdfs-site.xml配置
vim hdfs-site.xml
編輯檔案, 在configuration標籤對中插入:
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>node01:50090</value> </property>
其中dfs.replication配置的是block塊的副本數, 這裡偽分散式設值為1, 即沒有副本, 只有本身;
dfs.namenode.secondary.http-address配置的是SecondaryNameNode節點的地址和埠, 偽分散式都放在同一臺伺服器上.
- 修改core-site.xml配置
vim core-site.xml
編輯檔案, 在configuration標籤對中插入
<property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/abc/hadoop/cluster</value> </property>
其中fs.defaultFS配置的是hdfs檔案目錄的字首, 這裡配置好後, 在輸入操作hdfs目錄的命令時, 就可以直接從’ / ’ 處開始輸入路徑.
hadoop.tmp.dir配置的是hdfs生成檔案的存放目錄, 包括元資料資訊以及blockId.
- 修改slaves配置檔案
vim slaves
編輯slaves, 在檔案中寫入:
node01
slaves中配置的是從節點(DataNode)資訊, 對於偽分散式來說, 只需加入自身即可.
- 修改hadoop-evn.sh檔案
此步可先跳過, 該檔案可以不修改. 當啟動hdfs出現" JAVA_HOME cannot find or set" 類似的說明java_home沒有配置的提示時, 可再手動配置(前提是執行java -version成功在顯示器列印java版本).
vim hadoop-evn.sh
編輯檔案, 找到export JAVA_HOME=${JAVA_HOME}那一行
將 = 後的內容改為JAVA_HOME的確切路徑, 可使用 echo $JAVA_HOME檢視
export JAVA_HOME=/usr/local/jdk1.8.0_181
- 將hadoop配置到使用者環境變數中
此處配置好後, 可以在任意位置使用hdfs的指令.
vim ~/.bashrc
在檔案最後插入
export PATH=$PATH:/opt/software/hadoop/hadoop-2.6.5/bin:/opt/software/hadoop/hadoop-2.6.5/sbin
- 格式化NameNode
hdfs namenode -format
建立core-site中配置的目錄及檔案
- 啟動HDFS
start-dfs.sh
- 檢視啟動程序
jps
- 操作HDFS檔案系統
建立目錄 hdfs dfs -mkdir -p /abc/cba
上傳檔案 hdfs dfs -D dfs.blocksize=1048576 -put text.txt
...
- 關閉HDFS
stop-dfs.sh
或
killall java
HDFS的程序都是基於JVM的, 因此殺死所有java程序也會把hdfs的程序給關閉.