Mac Homebrew 安裝 Hadoop

一、安裝 Java 和 Hadoop

brew install Java
brew install Hadoop

java -version 和 hadoop version 來查看安裝版本及測試正常(PS:Java 和 Hadoop 的環(huán)境變量無需變動)

二、配置SSH(免密登錄)

因?yàn)榘惭bhadoop需要遠(yuǎn)程登入的功能,所以需要安裝ssh工具,但Mac下自帶ssh,所以不需要安裝ssh。
首先在系統(tǒng)里打開遠(yuǎn)程登錄,位置在 System Preferences -> Sharing 中,左邊勾選 Remote Login ,右邊選擇 Only there users,并添加當(dāng)前用戶。
方法一:打開Terminal輸入 ssh localhost,輸入 yes 然后輸入密碼確認(rèn)后,看到 Last login: 字樣為ssh成功。
方法二:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成公鑰和私鑰
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 將公鑰追加到文件
chmod 0600 ~/.ssh/authorized_keys # 修改相關(guān)權(quán)限

ssh localhost用來測試

三、修改配置文件

/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 主要都在這個目錄下

  1. hadoop-env.sh
    PS:親測無需修改 JAVA_HOME 和 HADOOP_HOME等變量(有如有問題可以修改測試,直接設(shè)置 JAVA_HOME 的路徑,不要用$JAVA_HOME 代替,因?yàn)?Hadoop 對系統(tǒng)變量的支持不是很好)。
    查看Java安裝路徑:

/usr/libexec/java_home

vim hadoop-env.sh

找到 # export JAVA_HOME= ,改參數(shù)如下:

export JAVA_HOME={your java home directory}

把 {your java home directory} 改成你上面查到的 Java 路徑,記得去掉注釋 # 。比如 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 。

同理修改下面兩個參數(shù):

export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec

根目錄應(yīng)該不是 /usr/local/Cellar/hadoop/3.1.1 ,可通過 hadoop version 來測試

export HADOOP_CONF_DIR=/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop

  1. core-site.xml
    設(shè)置 Hadoop 的臨時目錄和文件系統(tǒng),localhost:9000 表示本地主機(jī)。如果使用遠(yuǎn)程主機(jī),要用相應(yīng)的 IP 地址來代替,填寫遠(yuǎn)程主機(jī)的域名,則需要到 /etc/hosts 文件去做 DNS 映射。

<configuration>

<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value> #可自行修改
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

fs.default.name 保存了NameNode的位置,HDFS和MapReduce組件都需要用到它,這就是它出現(xiàn)在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因,在該處配置HDFS的地址和端口號。

  1. hdfs-site.xml
    注意 name 和 data 的路徑都要替換成本地的路徑:

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

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/name</value> #可自行修改
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/data</value> #可自行修改
</property>
</configuration>

變量dfs.replication指定了每個HDFS默認(rèn)備份方式通常為3, 由于我們只有一臺主機(jī)和一個偽分布式模式的DataNode,將此值修改為1。

  1. mapred-site.xml
    將 yarn 設(shè)置成數(shù)據(jù)處理框架:

<configuration>

<property>

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

  1. yarn-site.xml
    配置數(shù)據(jù)的處理框架 yarn:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</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_MAPRED_HOME</value>
</property>
</configuration>

四、運(yùn)行

接下來用到的命令,如 hadoop、hdfs、start-all.sh、stop-all.sh 等,都已經(jīng)配置到環(huán)境變量里了,所以直接使用即可。(查看位置:切換到 /usr/local/Cellar/hadoop/3.1.1//usr/local/Cellar/hadoop/3.1.1/libexec/,執(zhí)行根目錄下 bin 或 sbin 下的文件時,實(shí)際上執(zhí)行的是 libexec/bin或 libexec/sbin 下的文件,查看腳本內(nèi)容即可發(fā)現(xiàn))。
1.格式化文檔系統(tǒng):hadoop namenode -formathdfs namenode -format
2.啟動 NameNode 和 DataNode:

start-dfs.sh

現(xiàn)在可以看到 Overview 界面了,NameNode 和 DataNode - http://localhost:9870
PS:Hadoop3.0中namenode的默認(rèn)端口配置發(fā)生變化:從50070改為9870
3.啟動 ResourceManager 和 NodeManager:

start-yarn.sh

現(xiàn)在可以看到 All Applications 界面:
ResourceManager – http://localhost:8088
NodeManager – http://localhost:8042

在 Terminal執(zhí)行jps測試。

直接執(zhí)行 start-all.sh 等同于同時執(zhí)行 start-dfs.sh 和 start-yarn.sh。退出時執(zhí)行 stop-all.sh,或者:stop-yarn.sh 和 stop-dfs.sh。

五、WARN(可忽略)

在log中會顯示警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable的提醒,是關(guān)于 Hadoop 本地庫的, Hadoop本地庫是為了提高效率或者某些不能用Java實(shí)現(xiàn)的功能組件庫。

六、基本操作

Hadoop 的安裝啟動就完成啦!接下來就可以通過一些 shell 命令來操作 Hadoop 下的文件了,例如:

hadoop fs -ls /        #查看根目錄下的文件及文件夾
hadoop fs -mkdir -p /data #在根目錄下創(chuàng)建一個文件夾data(這個路徑是虛擬的,隨便填寫,并不會在本機(jī)看到,可通過頁面你控制臺中 Utilities -> browse the file system 查看) PS: 2.x之后的版本命令需要加參數(shù) -p
hdfs dfs -put /root/data /data #上傳本地目錄文件到hadoop目錄
hdfs dfs -copyFromLocal /root/data/person.txt /data #copy本地文件到hadoop目錄
hadoop fs -rm /.../... #移除某個文件
hadoop fs -rm -r /... #及聯(lián)刪除文件夾

七、常見錯誤

1.datanode沒啟動
建議直接把文件name 和 data下的文件刪了,然后重啟hadoop。查看鏈接:https://blog.csdn.net/ludonqin/article/details/51396187

參考鏈接:
Mac 安裝 Hadoop 3.x
【干貨】簡單三步在Mac上安裝Hadoop
Mac OS X 上搭建 Hadoop 開發(fā)環(huán)境指南
Mac下使用homebrew安裝Hadoop-3.1.1記錄
【Hadoop踩雷】Mac下安裝Hadoop3以及Java版本問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、系統(tǒng)參數(shù)配置優(yōu)化 1、系統(tǒng)內(nèi)核參數(shù)優(yōu)化配置 修改文件/etc/sysctl.conf,添加如下配置,然后執(zhí)行s...
    張偉科閱讀 3,923評論 0 14
  • (搭建集群部分借鑒了kiwenlau/hadoop-cluster-docker中的內(nèi)容,不過那里的基礎(chǔ)環(huán)境是Ub...
    ProteanBear閱讀 4,009評論 0 12
  • 1 目的將hadoop 2.7.1 安裝到 166、167、168 三臺機(jī)器上2 提供環(huán)境練習(xí)環(huán)境192.168....
    灼灼2015閱讀 3,628評論 4 40
  • 之前的有點(diǎn)忘記了,這里在云筆記拿出來再玩玩.看不懂的可以留言 大家可以嘗試下Ambari來配置Hadoop的相關(guān)環(huán)...
    HT_Jonson閱讀 3,195評論 0 50
  • https://i.y.qq.com/v8/playsong.html?hostuin=349343825&son...
    sunny蘭心慧語閱讀 865評論 1 4

友情鏈接更多精彩內(nèi)容