當前各巨量資料軟體如Hadoop等,仍然停留在Java 8上,在本實驗選用的是Java 8。在自己的Linux系統中,jdk可以使用如下命令進行一鍵安裝(需具備sudo許可權)。
sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel
執行完命令後直接選擇y
待安裝完成後,需通過如下命令,檢查java(jdk)是否安裝成功
java -version
javac -version
以下為檢測情況:
進行如下修改,然後儲存、退出(:wq)。
vim /usr/local/bda/hadoop/etc/hadoop/core-site.xml
新增到core-site.xml檔案configuration中的內容如下:
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/bda/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
說明:此處進行了兩項設定,(1)設定了hadoop的臨時目錄;(2)設定了檔案系統預設的主機和埠。因為是偽分散式系統,所以此處的主機名是localhost
vim /usr/local/bda/hadoop/etc/hadoop/hdfs-site.xml
進行如下圖的設定,各項的說明見下圖中的紅字,儲存,退出
首先,將mapred-site.xml的設定模板檔案mapred-site.xml.template複製一份,並命名為mapred-site.xml
然後用vim開啟進行編輯
vim /usr/local/bda/hadoop/etc/hadoop/mapred-site.xml
設定內容如下圖所示,儲存、退出
vim /usr/local/bda/hadoop/etc/hadoop/yarn-site.xml
設定內容如下圖所示,儲存、退出
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
5.1.1. HDFS檔案系統格式化
如同其它的檔案系統一樣,HDFS在使用之前也要先進行格式化操作,使用如下的命令進行:
/usr/local/bda/hadoop/bin/hdfs namenode -format
執行HDFS檔案系統格式化命令後,會有較大的輸出資訊,可以檢查是否有ERROR資訊。
5.1.2. 啟動HDFS服務及驗證
(1) 輸入如下命令,啟動dfs服務
/usr/local/bda/hadoop/sbin/start-dfs.sh
需要注意的是首次啟動時,需要輸入yes。其後再次啟動則無需輸入。
(2)輸入 jps 命令,檢視相關程序是否正常
jps命令的作用是檢視當前系統中正在執行的java程序。如圖15所示,執行完start-dfs.sh指令碼後正常情況下有3個HDFS的程序,一個是NameNode程序,一個是DataNode程序,還有一個是SecondaryNameNode程序。除此之外還有jps程序自己。
(3)存取hdfs的http伺服器埠
HDFS提供了http伺服器埠,可以通過瀏覽器存取,但是需要注意的是,為了存取該埠,需要在防火牆上開啟該埠,或者直接關閉防火牆。
檢查防火牆狀態
sudo systemctl status firewalld
禁用防火牆
sudo systemctl status firewalld
關閉防火牆
sudo systemctl stop firewalld
關閉防火牆埠後,就可以在windows系統開啟瀏覽器,位址列中輸入虛擬機器器的「小網IP」及HDFS的http伺服器埠(2.x版本是50070)
5.1.3. 停止HDFS服務
注意:在關閉伺服器之前,一定要先使用stop-dfs.sh命令停止HDFS檔案系統,如果不執行該命令,直接進行伺服器的關機操作,則HDFS系統很容易受到損壞。
與HDFS類似,Hadoop提供了YARN服務的啟動(start-yarn.sh)和關閉(stop-yarn.sh)命令。需要注意的是,YARN服務一般在HDFS服務啟動後啟動,並在HDFS服務關閉之前關閉。其執行順序一般是:
start-dfs.sh →start-yarn.sh →stop-yarn.sh →stop-dfs.sh
與HDFS類似,也可以通過瀏覽器輸入伺服器的小網IP+8088埠,存取YARN的http服務,檢視在執行的計算任務及系統資源情況(需要開啟防火牆埠,或者關閉防火牆)
(注:請各位大佬手下留情,有不足的地方請指出!!)