Hadoop 的配置有些麻煩,目前沒有一鍵配置的功能,雖然當時我在安裝過程中也參考了有關教程,但還是遇到了很多坑,一些老版本的安裝過程已不適用於 hadoop2.x,下面就介紹一下具體步驟。
安裝 Java
因爲之後使用 Hadoop 需要運行 jar 包,所以 Java 環境是必須的,這裏不作贅述,相信大多數學習 Hadoop 的小夥伴計算機上都早已經搭好 Java 環境。
下載 Hadoop 源碼
點擊 這裏 ,有所有的歷史版本。本教程以 hadoop-2.8.2 爲例,下載 hadoop-2.8.2.tar.gz即可。下載完成後,解壓到本地合適的目錄下。
添加 Hadoop 環境變量
在 .bash_profile 文件中配置 Hadoop 的環境變量,使用 vim 打開該文件,在終端運行如下命令打開文件:
vim ~/.bash_profile
進入編輯模式後添加以下兩行代碼(修改成自己機子上的路徑):
export HADOOP_HOME=/Users/Cyan/coding/hadoop/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin
退出編輯模式,使用 :wq 保存修改,然後運行 source 命令使文件中的修改立即生效:
#source ~/.bash_profile
在終端執行命令:
hadoop version
結果如下,說明 hadoop 路徑配置好了:
添加好了環境變量,下面就是修改一些相關配置文件。
修改 Hadoop 的配置文件
需要修改的 Hadoop 配置文件都在目錄 etc/hadoop 下,包括:
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
下面我們逐步進行配置:
1. 修改 hadoop-env.sh 文件
直接設置 JAVA_HOME 的路徑,不要用$JAVA_HOME 代替,因爲 Hadoop 對系統變量的支持不是很好。修改下面兩個路徑(用你機子上的 JAVA 路徑和 Hadoop 目錄的路徑代替):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
export HADOOP_CONF_DIR=/Users/Cyan/coding/hadoop/hadoop-2.8.2/etc/hadoop
2. 修改 core-site.xml 文件
設置 Hadoop 的臨時目錄和文件系統,localhost:9000 表示本地主機。如果使用遠程主機,要用相應的 IP 地址來代替,填寫遠程主機的域名,則需要到 /etc/hosts 文件中做 DNS 映射。在 core-site.xml 文件裏作如下配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--用來指定hadoop運行時產生文件的存放目錄 自己創建-->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/Cyan/coding/hadoop/hadoop-2.8.2/tmp</value>
</property>
</configuration>
3. 修改 hdfs-site.xml 文件
hdfs-site.xml 的配置修改如下,注意 name 和 data 的路徑都要替換成本地的路徑:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--不是root用戶也可以寫文件到hdfs-->
<property>
<name>dfs.permissions</name>
<value>false</value> <!--關閉防火牆-->
</property>
<!--把路徑換成本地的name坐在位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/cdh4/hadoop/dfs/name</value>
</property>
<!--在本地新建一個存放hadoop數據的文件夾,然後將路徑在這裏配置一下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/hadoop</value>
</property>
</configuration>
4. 修改 mapred-site.xml 文件
由於根目錄下 etc/hadoop 中沒有 mapred-site.xml 文件,所以需要創建該文件。但是目錄中提供了 mapred-site.xml.template 模版文件。我們將其重命名爲 mapred-site.xml,然後將 yarn 設置成數據處理框架:
<configuration>
<property>
<!--指定mapreduce運行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration
5. 修改 yarn-site.xml 文件
配置數據的處理框架 yarn:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</value>
</property>
</configuration>
至此需要修改和配置的文件都已經沒有問題了。
啓動 Hadoop
1. 啓動 NameNode
在終端運行命令:
hadoop namenode -format
結果如下就是成功了:
2. 啓動 HDFS
在終端首先進入 /sbin 目錄:
cd /Users/Cyan/coding/hadoop/hadoop-2.8.2/sbin
然後啓動 HDFS:
./start-dfs.sh
如果成功了,過程中需要輸三次密碼。
如果報錯 “connection refused”,則需要在計算機系統設置中打開遠程登錄許可。
點擊 Sharing(共享):
勾選 Remote Login(遠程登錄),然後添加當前用戶:
這樣就會解決 connection 的問題,如果還有其他錯誤,請檢查路徑添加的版本和本機的版本是否匹配。
3. 啓動 yarn
在終端首先進入 /sbin 目錄:
cd /Users/Cyan/coding/hadoop/hadoop-2.8.2/sbin
然後啓動 yarn:
./ start-yarn.sh
在終端執行:
jps
結果如下,證明 Hadoop 可以成功啓動:
我們也可以在瀏覽器中打開 http://localhost:50070/ 來查看 Hadoop 的啓動情況:
Hadoop 的安裝啓動就完成啦!接下來就可以通過一些 shell 命令來操作 Hadoop 下的文件了,例如:
hadoop fs -ls / 查看根目錄下的文件及文件夾
hadoop fs -mkdir /test 在根目錄下創建一個文件夾 testdata
hadoop fs -rm /.../... 移除某個文件
hadoop fs -rmr /... 移除某個空的文件夾
歡迎關注我的知乎專欄【數據池塘】,專注於分享機器學習、數據挖掘乾貨:https://zhuanlan.zhihu.com/datapool
⬇️ 掃描下方二維碼關注公衆號【數據池塘】 ⬇️
回覆【算法】,獲取最全面的機器學習算法網絡圖: