零基礎小白在 mac 上配置 Hadoop 單點偽分布集群填坑過程 —— Jinkey 原創
本文作者 Jinkey(微信公眾號 jinkey-love,官網 https://jinkey.ai)原文鏈接 https://jinkey.ai/post/tech/ling-ji-chu-xiao-bai-zai-mac-shang-pei-zhi-hadoop-dan-dian-wei-fen-bu-ji-qun-tian-keng-guo-cheng文章允許非篡改署名轉載,刪除或修改本段版權信息轉載的,視為侵犯知識產權,我們保留追求您法律責任的權利,特此聲明!
什麼是單點偽分布集群
在本地或遠程一台電腦上虛擬出幾個電腦模擬生產環境下3台以上的伺服器集群運行 hadoop,主要用於本地調試數據挖掘的腳本或學習 hadoop 之用。
安裝 Java 環境
打開鏈接:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
下載好之後雙擊 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 語句這些還需要查資料才能寫出,技術不足,沒應聘的勇氣,需要怎樣的標準才能入職,有哪些學習建議?