目錄
3.3 發現http://localhost:50070啓動之後打不開,其實hadoop3.0之後變成了http://localhost:9870
前言:
Hadoop運行環境基於Java,必須要有jdk環境
修改配置文件,用圖形化的就好,不用非得vim。右鍵要打開的文件,選擇打開方式-文本編輯。
注意建立文件夾,給與最高權限哈。否則可能會出問題。
1. 下載最新的hadoop 安裝包
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
也可以用brew安裝
brew install hadoop
brew下載的話,會在/usr/local/Cellar/ 這個目錄下面。
那麼去找:
/usr/local/Cellar/hadoop/
直接下下來:
我選擇直接下下來,放在我常用的環境目錄。(因爲brew好慢)
下下來直接用圖形化的拷貝到想放的目錄,然後雙擊解壓即可。
我放在了用戶根目錄建了一個environment的文件夾,常用的環境變量都放在那了
/Users/dk/environment/hadoop/hadoop-3.2.2
2. 安裝hadoop
這個是解壓縮hadoop所在的文件夾目錄
HADOOP_HOME=/Users/dk/environment/hadoop/hadoop-3.2.2
先編輯
vim ~/.bash_profile
添加下述內容,注意 HADOOP_HOME要更改爲你自己的安裝環境目錄
vim 按i 進行插入編輯,按esc然後:wq!保存
# hadoop
export HADOOP_HOME=/Users/dk/environment/hadoop/hadoop-3.2.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
-
退出編輯模式,使用 :wq! 保存修改
-
使環境變量生效 source ~/.bash_profile
終端輸入檢查是否配置成功:
hadoop version
Hadoop 3.2.2
Source code repository Unknown -r 7a3bc90b05f257c8ace2f76d74264906f0f7a932
Compiled by hexiaoqiao on 2021-01-03T09:26Z
Compiled with protoc 2.5.0
From source with checksum 5a8f564f46624254b27f6a33126ff4
This command was run using /Users/dk/environment/hadoop/hadoop-3.2.2/share/hadoop/common/hadoop-common-3.2.2.jar
2.1 查看java環境位置
終端輸入:
/usr/libexec/java_home
結果:
/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
接下來修改etc/hadoop/下面的sh文件和xml配置文件(我直接在圖形化界面找的)
2.2 修改hadoop-env.sh文件
command+f 搜索
# export JAVA_HOME=
然後填充上面的java環境位置
2.3 修改core-site.xml
放在<configuration>裏面</configuration>
默認情況下,Hadoop 將數據保存在/tmp 下,當重啓系統時,/tmp 中的內容將被自動清空, 所以我們需要指定自己的一個 Hadoop 的目錄,用來存放數據。
另外需要配置 Hadoop 所使用的默認文件系統,以及 Namenode 進程所在的主機。
注意更改 file的位置,換成自己建立的一個緩存目錄
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--用來指定hadoop運行時產生文件的存放目錄 自己創建-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/Users/dk/Documents/hadoop_tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
2.4 配置文件系統 hdfs-site.xml
該文件指定與 HDFS 相關的配置信息。需要修改 HDFS 默認的塊的副本屬性,因爲 HDFS 默認 情況下每個數據塊保存 3 個副本,而在僞分佈式模式下運行時,由於只有一個數據節點,所 以需要將副本個數改爲 1;否則 Hadoop 程序會報錯。
注意更換目錄,自己建立dfs/name文件夾
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--不是root用戶也可以寫文件到hdfs-->
<property>
<name>dfs.permissions</name>
<value>false</value> <!--關閉防火牆-->
</property>
<!-- name node 存放 name table 的目錄 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/Users/dk/Documents/hadoop_tmp/dfs/name</value>
</property>
<!-- data node 存放數據 block 的目錄 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/Users/dk/Documents/hadoop_tmp/dfs/data</value>
</property>
2.5 配置計算框架 mapred-site.xml
可能歷史版本,沒有mapred-site.xml,提供了模板 mapred-site.xml.template 將其重命名爲 mapred-site.xml 即可。
該版本存在,直接編輯。
<property>
<!--指定mapreduce運行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.6 配置文件系統 yarn-site.xml
<!-- Site specific YARN configuration properties -->
<property>
<!-- mapreduce 執行 shuffle 時獲取數據的方式 -->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>localhost:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:18088</value>
</property>
2.7 Hadoop namenode 格式化
hdfs namenode -format
成功則會看到”successfully formatted”和”Exitting with status 0”的提示,若爲 “Exitting with status 1” 則是出錯。
報錯
2021-01-26 15:26:37,331 ERROR conf.Configuration: error parsing conf core-site.xml
因爲,少了個 <
可以用https://www.runoob.com/xml/xml-validator.html來進行xml校驗。已改正。
見到了successfully成功:
2021-01-26 15:30:30,464 INFO common.Storage: Storage directory /Users/dk/Documents/hadoop_tmp/dfs/name has been successfully formatted.
3. 啓動hadoop集羣
正常啓動:
Web UI 查看集羣是否成功啓動,瀏覽器中打開http://localhost:50070/,以及http://localhost:18088/;檢查 namenode 和 datanode 是否正常,檢查 Yarn 是否正常。
檢查:
終端輸入jps
遇到了:Connection refused
Starting resourcemanager
Starting nodemanagers
localhost: ssh: connect to host localhost port 22: Connection refused
3.1 如果Connection refused配置ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 驗證ssh
ssh localhost
如果已經配置過git
直接用
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 驗證ssh
ssh localhost
驗證結果:
Last login: Tue Jan 26 15:37:56 2021 from 127.0.0.1
3.2 util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
查詢得到,暫時無視
對後續操作比如
hadoop fs
和hive等不影響,不是強迫症的可以暫時無視它,哈哈),無法爲平臺加載本地hadoop庫…可使用合適的內置java類。
3.3 發現http://localhost:50070啓動之後打不開,其實hadoop3.0之後變成了http://localhost:9870
解決:
自Hadoop 3.0.0 - Alpha 1以來,端口配置發生了變化:
已移至
3.4 18088 yarn正常
完整走了一遍安裝配置~下面開始wordcount
參考:https://blog.csdn.net/b_aihe/article/details/96650866