使用創建的grid用戶進行hadoop安裝文件的解壓,並修改其對應的配置文件
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
- hadoop-env.sh
- yarn-env.sh
修改完畢后將該hadoop目錄復制到其他三個從節點
- scp -r ./hadoop-3.1.0 從節點IP:/home/grid
接着以root用戶分別在四台機器上的/etc/profile文件中添加以下環境變量
export JAVA_HOME=/usr/java/jdk1.8.0_171 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_HOME=/home/grid/hadoop-3.1.0 export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
使環境變量生效
source /etc/profile
接着以grid用戶在主節點機器上執行以下命令
#格式化HDFS hdfs namenode -format #若輸出中出現name has beensuccessfully formatted.則初始化成功 #啟動HDFS start-dfs.sh #啟動YARN start-yarn.sh
輸入JPS查看進程,有以下所以進程即為成功
21680 NodeManager 21539 ResourceManager 20883 NameNode 25623 Jps 21225 SecondaryNameNode 21023 DataNode
實踐途中遇到兩個問題:
1.start-dfs.sh的時候會出現如下警告
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
使用調試模式重新執行,可以看到詳細報錯信息為
DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path
參考ligt0610的帖子進行處理:https://blog.csdn.net/ligt0610/article/details/47757013
即在hadoop-env.sh里面添加如下:
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
重新執行start-dfs.sh。報警信息不顯示。執行成功
2.通過web接口無法查看NameNode
經過查詢發現,hadoop3版本已經將該端口由50070變成9870
從該端口進入。成功!
20190616
今天嘗試的時候遇到新問題,現記錄下來
本次執行到
#格式化HDFS
hdfs namenode -format
時,提示
sh: 5: hdfs: not found
懷疑是useradd的時候沒有指定用戶的shell類型,因此默認為/bin/sh。導致命令識別不出。
進行以下步驟:
1:查看當前用戶的shell類型命令: echo $SHELL
2:改變當前用戶登錄默認的shell:chsh -s /bin/bash username 或者使用usermod -s /bin/bash username命令
默認的shell改成/bin/bash之后正常了。
---------------------
作者:隨風詩雨
來源:CSDN
原文:https://blog.csdn.net/suifengshiyu/article/details/40952771
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
未解決,排除該原因
接下去懷疑是環境變量問題,環境參數沒錯,在root用戶時已經執行過source,再在grid用戶下執行,執行后如下
/home/grid/hadoop-2.7.2/bin/hdfs: line 304: /home/grid/jdk1.8.0_25/bin/java: cannot execute binary file
/home/grid/hadoop-2.7.2/bin/hdfs: line 304: /home/grid/jdk1.8.0_25/bin/java: Success
懷疑是jdk版本不對,32位的linux安裝了64的jdk