環境信息
- 操作系統:macOS Mojave 10.14.6
- JDK:1.8.0_211 (安裝位置:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home)
- hadoop:3.2.1
開通ssh
在"系統偏好設置"->"共享",設置如下:
免密碼登錄
- 執行以下命令創建秘鑰:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
一路next,最終會在~/.ssh目錄生成id_rsa和id_rsa.pub文件
2. 執行以下命令,將自己的秘鑰放在ssh授權目錄,這樣ssh登錄自身就不需要輸入密碼了:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- ssh登錄試試,這次不需要密碼了:
Last login: Sun Oct 13 21:44:17 on ttys000
(base) zhaoqindeMBP:~ zhaoqin$ ssh localhost
Last login: Sun Oct 13 21:48:57 2019
(base) zhaoqindeMBP:~ zhaoqin$
下載hadoop
- 下載hadoop,地址是:http://hadoop.apache.org/releases.html
- 將下載文件hadoop-3.2.1.tar.gz解壓,我這里解壓后的地址是:~/software/hadoop-3.2.1/
如果只需要hadoop單機模式,現在就可以了,但是單機模式沒有hdfs,因此接下來要做偽分布模式的設置;
偽分布模式設置
進入目錄hadoop-3.2.1/etc/hadoop,做以下設置:
- 打開hadoop-env.sh文件,增加JAVA的路徑設置:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
- 打開core-site.xml文件,將configuration節點改為如下內容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- 打開hdfs-site.xml文件,將configuration節點改為如下內容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- 打開mapred-site.xml文件,將configuration節點改為如下內容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 打開yarn-site.xml文件,將configuration節點改為如下內容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</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>
- 在目錄hadoop-3.2.1/bin執行以下命令,初始化hdfs:
./hdfs namenode -format
初始化成功后,可見如下信息:
2019-10-13 22:13:32,468 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2019-10-13 22:13:32,473 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2019-10-13 22:13:32,474 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at zhaoqindeMBP/192.168.50.12
************************************************************/
啟動
- 進入目錄hadoop-3.2.1/sbin,執行./start-dfs.sh啟動hdfs:
(base) zhaoqindeMBP:sbin zhaoqin$ ./start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [zhaoqindeMBP]
zhaoqindeMBP: Warning: Permanently added 'zhaoqindembp,192.168.50.12' (ECDSA) to the list of known hosts.
2019-10-13 22:28:30,597 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
上面的警告不會影響使用;
2. 瀏覽器訪問地址:localhost:9870 ,可見hadoop的web頁面如下圖:
3. 進入目錄hadoop-3.2.1/sbin,執行./start-yarn.sh啟動yarn:
base) zhaoqindeMBP:sbin zhaoqin$ ./start-yarn.sh
Starting resourcemanager
Starting nodemanagers
- 瀏覽器訪問地址:localhost:8088 ,可見yarn的web頁面如下圖:
- 執行jps命令查看所有java進程,正常情況下可以見到以下進程:
(base) zhaoqindeMBP:sbin zhaoqin$ jps
2161 NodeManager
1825 SecondaryNameNode
2065 ResourceManager
1591 NameNode
2234 Jps
1691 DataNode
至此,hadoop3偽分布式環境的部署、設置、啟動都已經完成。
停止hadoop服務
進入目錄hadoop-3.2.1/sbin,執行./stop-all.sh即可關閉hadoop的所有服務:
(base) zhaoqindeMBP:sbin zhaoqin$ ./stop-all.sh
WARNING: Stopping all Apache Hadoop daemons as zhaoqin in 10 seconds.
WARNING: Use CTRL-C to abort.
Stopping namenodes on [localhost]
Stopping datanodes
Stopping secondary namenodes [zhaoqindeMBP]
2019-10-13 22:49:00,941 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping nodemanagers
Stopping resourcemanager
以上就是Mac環境部署hadoop3的全部過程,希望能給您一些參考。