環(huán)境說明
- macOS Sierra 10.12.6
- JDK 1.8.0_101
- hadoop 3.1.1
- homebrew
homebrew安裝
- HomeBrew 是OSX中的方便的套件管理工具柜与。采用Homebrew安裝Hadoop非常簡潔方便(中文官網(wǎng):http://brew.sh/index_zh-cn.html)
復(fù)制如下代碼安裝:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
配置 ssh localhost(免密登錄)
- 脫坑參考文章:(https://www.imooc.com/article/37545)
- 因為安裝hadoop需要遠程登入的功能,所以需要安裝ssh工具户盯,但Mac下自帶ssh碍论,所以不需要安裝ssh。可以通過如下命令驗證:
$ which ssh
/usr/bin/ssh
$ which sshd
/usr/sbin/sshd
$ which ssh-keygen
/usr/bin/ssh-keygen
- Mac OS X只需在 系統(tǒng)偏好設(shè)置-->共享-->遠程登錄 勾選就可以使用ssh了蛆封。
注意:如果沒有執(zhí)行遠程登陸勾選操作期揪,在運行ssh localhost的時候會出現(xiàn):mac ssh: connect to host localhost port 22: Connection refused悟衩。
- ssh免密設(shè)置:終端輸入
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 確認能否不輸入口令就用ssh登錄localhost:
$ ssh localhost
JDK安裝
- 查看java版本
$ java -version
- 終端輸出如下
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
brew 安裝 hadoop
- 安裝命令
$ brew install hadoop
- 安裝結(jié)果
==> Downloading https://www.apache.org/dyn/closer.cgi?path=hadoop/common/hadoop-
==> Downloading from http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ha
######################################################################## 100.0%
?? /usr/local/Cellar/hadoop/3.1.1: 21,637 files, 770.9MB, built in 5 minutes 26 seconds
- 查看安裝目錄
$ brew list hadoop
配置Hadoop相關(guān)文件(此處偽分布式箱歧,還有單機模式和完全分布式模式)
- 修改
/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop/hadoop-env.sh
矾飞,添加內(nèi)容如下:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
- 修改
/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop/core-site.xml
,添加如下內(nèi)容:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
注: fs.default.name 保存了NameNode的位置呀邢,HDFS和MapReduce組件都需要用到它洒沦,這就是它出現(xiàn)在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因。在該處配置HDFS的地址和端口號价淌。
- 修改
/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop/mapred-site.xml
申眼,添加內(nèi)容如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9010</value>
</property>
</configuration>
變量mapred.job.tracker 保存了JobTracker的位置,因為只有MapReduce組件需要知道這個位置蝉衣,所以它出現(xiàn)在mapred-site.xml文件中括尸。
- 修改
/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop/hdfs-site.xml
,添加內(nèi)容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
變量dfs.replication指定了每個HDFS默認備份方式通常為3, 由于我們只有一臺主機和一個偽分布式模式的DataNode病毡,將此值修改為1濒翻。
配置完畢,運行hadoop
- 跳轉(zhuǎn)目錄
cd /usr/local/Cellar/hadoop/3.1.1/bin/
- 啟動hadoop之前需要格式化hadoop系統(tǒng)的HDFS文件系統(tǒng)
$ hadoop namenode -format
- 接著進入
cd /usr/local/Cellar/hadoop/3.1.1/sbin/
啦膜,執(zhí)行
$ ./start-all.sh
或者分開啟動:
$ ./start-dfs.sh
$ ./start-yarn.sh
警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 這對Hadoop的運行沒有影響
- jps命令查看java進程
通過訪問以下網(wǎng)址查看hadoop是否啟動成功
Resource Manager: http://localhost:50070
- 坑:Hadoop3.0中namenode的默認端口配置發(fā)生變化:從50070改為9870有送,Resource Manager: http://localhost:9870
JobTracker: http://localhost:8088
Specific Node Information: http://localhost:8042
退出hadoop
- 進入目錄
cd /usr/local/Cellar/hadoop/3.1.1/sbin/
- 執(zhí)行命令
$ ./stop-all.sh