零基礎小白在 mac 上配置 Hadoop 單點偽分布集群填坑過程 —— Jinkey 原創

本文作者 Jinkey(微信公眾號 jinkey-love,官網 jinkey.ai)原文鏈接 jinkey.ai/post/tech/lin文章允許非篡改署名轉載,刪除或修改本段版權信息轉載的,視為侵犯知識產權,我們保留追求您法律責任的權利,特此聲明!

什麼是單點偽分布集群

在本地或遠程一台電腦上虛擬出幾個電腦模擬生產環境下3台以上的伺服器集群運行 hadoop,主要用於本地調試數據挖掘的腳本或學習 hadoop 之用。

安裝 Java 環境

打開鏈接:oracle.com/technetwork/

下載好之後雙擊 dmg 打開然後雙擊安裝...

安裝 HomeBrew

下面所有的命令都是在 mac 的 終端 程序運行(在 spotlight 搜索一下就有)如果之前安裝過就不用了

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"n

安裝 Hadoop

執行命令

sudo chmod 777 /usr/local/sbinn

不執行許可權修改的話會報錯

Error: The brew link step did not complete successfullyThe formula built, but is not symlinked into /usr/localCould not symlink sbin/distribute-exclude.sh/usr/local/sbin is not writable.

接著執行命令:

brew install hadoopn

配置 Hadoop

進入 hadoop 目錄,2.7.2是你安裝的版本號(不知道的可以用sudo hadoop version命令查看)

/usr/local/Cellar/hadoop/2.7.2/libexec/etc/hadoop/n

網上有說配置免密鑰登錄的,可能就不用加sudo 運行本文的指令,你們可以試試;但是對於小白來說很容易踩坑;為了安全性我就不配置免密鑰登錄了

修改hadoop-env.sh

vim hadoop-env.shn

找到

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

按下鍵盤上的 i 進入編輯模式(下面的編輯同理,看到左下角有 INSERT 文字代表進入成功)將上面找到的那一行export 的東西刪掉,把下面這一句粘貼上

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。

修改core-site.xml

vim core-site.xmln

找到

<configuration> n</configuration>n

還是點擊 i 進入編輯模式,在中間加入配置,最終效果如下:

<configuration> n<property>n <name>hadoop.tmp.dir</name>n <value>/usr/local/Cellar/hadoop/hdfs/tmp</value>n <description>A base for other temporary directories.</description>n </property>n <property>n <name>fs.default.name</name> n <value>hdfs://localhost:9000</value> n </property>n</configuration>n

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。

修改mapred-site.xml

目錄裡面沒mapred-site.xml文件,只有一個mapred-site.xml.template ; 所以要先重命名文件。執行命令:

mv mapred-site.xml.template mapred-site.xmlnvim mapred-site.xmln

找到

<configuration> n</configuration>n

還是點擊 i 進入編輯模式,在中間加入配置,最終效果如下:

<configuration>n <property>n <name>mapreduce.framework.name</name>n <value>yarn</value>n </property>n</configuration>n

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。

修改hdfs-site.xml

vim hdfs-site.xmln

找到

<configuration> n</configuration>n

還是點擊 i 進入編輯模式,在中間加入配置,最終效果如下:

<configuration>n<property>n<name>dfs.replication</name>n<value>1</value>n</property>n</configuration>n

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。

修改yarn-site.xml

vim yarn-site.xmln

找到

<configuration> n</configuration>n

還是點擊 i 進入編輯模式,在中間加入配置,最終效果如下:

<configuration>n <property>n <name>yarn.nodemanager.aux-services</name>n <value>mapreduce_shuffle</value>n </property>n</configuration>n

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。

建立 hadoop 啟動停止指令的別名方便操作

vim ~/.profilen

點擊 i 進入編輯模式,加入以下兩行第一行:

alias hstart="/usr/local/Cellar/hadoop/2.6.0/sbin/start-dfs.sh;/usr/local/Cellar/hadoop/2.6.0/sbin/start-yarn.sh"

第二行:

alias hstop="/usr/local/Cellar/hadoop/2.6.0/sbin/stop-yarn.sh;/usr/local/Cellar/hadoop/2.6.0/sbin/stop-dfs.sh"

修改完成後點鍵盤左上角的 esc 鍵,然後輸入 :wq ,按下鍵盤 rerurn 即可(這個操作的意思是保存操作並退出)。使該配置生效還需要運行命令:

vim ~/.profilen

格式化分散式文件存儲系統 HDFS

sudo hdfs namenode -formatn

因為許可權不足,所以不加 sudo 會出現:

Error: Could not find or load main classorg.apache.hadoop.hdfs.server.namenode.NameNode

對應中文系統的提示是:

錯誤: 找不到或無法載入主類 org.apache.hadoop.hdfs.server.namenode.NameNode

SSH 登錄本地伺服器

在 Mac 系統默認是禁止遠程登錄的,所以要在系統的 System Preferences > Sharing > Remote Login選項打上勾,對應的中文路徑是系統左上角的 系統偏好設置 > 共享 > 遠程登錄選項打上勾。ssh 登錄本地計算機

ssh localhostn

如果不做之前的系統配置會提示錯誤

ssh: connect to host localhost port 22: Connection refused

啟動 hadoop 偽分散式集群

hstartn

然後就是根據提示輸入好多次密碼,啟動成功。


推薦閱讀:

既然所有語言都是圖靈完備的,為什麼適用的領域不一樣?
前後端分離端nodejs mongodb express後台spring restfui webservice,mybatis mysql這樣適合中大型應用嗎?
極樂技術周報(第三十二期)
主攻 PHP 方向,HTML、CSS 僅知道一些概念,PHP、MySQL 語句這些還需要查資料才能寫出,技術不足,沒應聘的勇氣,需要怎樣的標準才能入職,有哪些學習建議?

TAG:Hadoop | 集群 | 后端技术 |