hadoop數據倉庫搭建--hadoop初始化及其運行


使用創建的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM