Mac OS X 上搭建 Hadoop 開發環境指南

 

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

 

⬇️ 掃描下方二維碼關注公衆號【數據池塘】 ⬇️

回覆【算法】,獲取最全面的機器學習算法網絡圖:

 

 

發佈了38 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章