Apache Hadoop是一個分佈式系統基礎架構,能夠處理大數據集。分佈式計算是 Hadoop 的核心,它支持在大型計算機集群上快速並行運算。 Hadoop 項目包含一系列能夠處理大型數據的工具和庫。Hadoop-env.sh 是 Hadoop 全局環境變量配置文件,可以對 Hadoop 的運行環境做出補充配置,本文就從多個方面對 hadoop-env.sh 做詳細的闡述。
一、配置JAVA_HOME
在運行 Hadoop 前需要配置好 Java 運行環境,Hadoop-env.sh 中默認情況下會去 $JAVA_HOME 下查找 Java 運行環境。可以通過設置一個固定的絕對路徑來規範 Java 環境的查找路徑,示例如下:
# 確定jdk安裝位置 export JAVA_HOME=/usr/local/jdk1.8.0_191 export CLASSPATH=$JAVA_HOME/lib/:$CLASSPATH export PATH=$JAVA_HOME/bin/:$PATH
二、配置HADOOP_HOME
Hadoop 程序在啟動時需要指定Hadoop安裝目錄,為了方便在hadoop-env.sh中,可以定義好 Hadoop 安裝目錄。示例如下:
#指定hadoop安裝目錄 export HADOOP_HOME=/usr/local/hadoop-2.7.2
三、配置HADOOP_LOG_DIR
在運行 Hadoop 時需要日誌記錄,可以通過HADOOP_LOG_DIR指定日誌輸出目錄。示例如下:
#指定hadoop日誌文件目錄 export HADOOP_LOG_DIR=/var/hadoop/logs
四、配置HDFS相關參數
在 Hadoop 的 hdfs-site.xml 文件中配置各種參數,對應的環境變量配置須在 hadoop-env.sh 中設置,下面介紹幾個HDFS相關的參數:
1、hadoop.tmp.dir
默認情況下,HDFS數據塊存儲在/tmp目錄中,可以通過hadoop.tmp.dir配置項自定義 Hadoop 中暫存數據的目錄,示例如下:
#指定hadoop的臨時目錄 export HADOOP_OPTS='$HADOOP_OPTS -Djava.io.tmpdir=/usr/local/hadoop/tmp'
2、dfs.namenode.name.dir 和 dfs.datanode.data.dir
HDFS中兩個最重要的目錄是 NameNode namespace 目錄 和 DataNode 數據塊目錄。以下是將目錄指定為「/name」和「/data」的示例:
#指定名位元組點數據元文件存放目錄 export HADOOP_NAMENODE_OPTS="-Dhadoop.tmp.dir=/export/hadoop/tmp/dfs/namenode -Ddfs.namenode.name.dir=file:/var/hadoop/hdfs/namenode" #指定數據節點block存放目錄 export HADOOP_DATANODE_OPTS="-Dhadoop.tmp.dir=/export/hadoop/tmp/dfs/datanode -Ddfs.datanode.data.dir=file:/var/hadoop/hdfs/datanode"
五、HADOOP_USER_CLASSPATH_FIRST
在啟動 Hadoop 的時候,可以從環境中預定義的位置中加載類;如果設置了環境變量 HADOOP_USER_CLASS_PATH ,則需要將用戶類路徑放到Hadoop默認類路徑前面。示例如下:
#優先使用用戶指定的classPath export HADOOP_USER_CLASSPATH_FIRST=true
六、總結
Hadoop-env.sh 文件除了有這些我們講到的常用環境變量外,還有一些我們並沒有涉及到的其他環境變量。在使用 Hadoop 前,通過 hadoop-env.sh 預設好相應的系統環境,有利於 Hadoop 的運行。配置文件的好壞直接決定了Hadoop的穩定性,因此有必要在使用Hadoop時認真對待Hadoop-env.sh文件的配置項,以保證Hadoop系統的正常運行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/239780.html