本文主要講述在mac環(huán)境下安裝hadoop,目標(biāo)讀者為大數(shù)據(jù)初學(xué)者或者有意進入大數(shù)據(jù)行業(yè)的研發(fā)人員。
1、安裝homebrew
/usr/bin/ruby?-e?"$(curl?-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
2、配置sshd
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
賦權(quán)
chmod 600ssh_host_dsa_key
chmod 600ssh_host_rsa_key
chmod 600ssh_host_ecdsa_key
chmod 600ssh_host_ed25519_key
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3、啟動sshd
/usr/sbin/sshd
4、brew install hadoop
hadoop 就安裝成功了, 我安裝時最新為2.8.0。
hadoop將按預(yù)定的路徑安裝(/usr/local/Cellar/hadoop/2.8.0)
查看其安裝目錄可以用brew list hadoop。
5、修改配置文件
hadoop-env.sh文件(不需要修改):
/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop/hadoop-env.sh
Core-site.xml文件:
/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop/core-site.xml
hadoop.tmp.dir
/usr/local/Cellar/hadoop/hdfs/tmp
A?base?for?other?temporary?directories.
fs.default.name
hdfs://localhost:9000
注: fs.default.name 保存了NameNode的位置,HDFS和MapReduce組件都需要用到它,這就是它出現(xiàn)在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因。在該處配置HDFS的地址和端口號。
mapred-site.xml ? 可能文件名為 mapred-site.xml.templete (與上面的文件子啊同一文件夾下)。
mapred.job.tracker
localhost:9010
變量mapred.job.tracker 保存了JobTracker的位置,因為只有MapReduce組件需要知道這個位置,所以它出現(xiàn)在mapred-site.xml文件中。
編輯hdfs-site.xml(同上文件夾)
dfs.replication
1
變量dfs.replication指定了每個HDFS默認(rèn)備份方式通常為3, 由于我們只有一臺主機和一個偽分布式模式的DataNode,將此值修改為1。
6、運行hadoop
啟動hadoop之前需要格式化hadoop系統(tǒng)的HDFS文件系統(tǒng)
跳轉(zhuǎn)到目錄/usr/local/Cellar/hadoop/2.7.1/bin下
$ hadoop namenode -format
接著進入/usr/local/Cellar/hadoop/2.7.1/sbin
執(zhí)行:
$ ./start-all.sh
通過訪問以下網(wǎng)址查看hadoop是否啟動成功
Resource?Manager:http://localhost:50070
JobTracker:http://localhost:8088
Specific?Node?Information:http://localhost:8042
尹小凱,資深互聯(lián)網(wǎng)架構(gòu)師,精通java分布式開發(fā)、熟練掌握nginx、redis、mongo、zk、dubbo等分布式框架和中間件。精通android開發(fā)。豐富的前端開發(fā)經(jīng)驗,熟練掌握angular1.x、nodejs、bootstrap、react等前端框架