Hadoop單機環(huán)境搭建(JDK+Hadoop)

我在安裝的過程中的參考資料:博客和《Hbase不睡覺書》

1. 服務(wù)器選擇

阿里云服務(wù)器基本信息

注意本文中的系統(tǒng)是centos 7.3, 與centos7之前的版本可能有所不同。

2. 軟件安裝版本

2.1. 安裝包下載

軟件下載地址(各自官網(wǎng)):JDK
Hadoop目錄下的Hadoop-2.8.4選擇hadoop-2.8.4.tar.gz(編譯好不加密的包)

jdk與Hadoop版本

2.2 安裝包上傳到服務(wù)器

rz名命令上傳。如果現(xiàn)實不存在這個命令,則說明未安裝rz,執(zhí)行yum -y install lrzsz安裝后,上傳jdk和Hadoop安裝包到服務(wù)器 rz 選擇要上傳的安裝包即可。解壓tar -zxvf XXX.tar.gz
本課題中,解壓后的目錄分別為:/usr/local/jdk1.8.0_201/usr/local/hadoop-2.8.4

3. 安裝過程詳解

3.1. 關(guān)于安裝jdk的安裝

在第二節(jié)中解壓jdk安裝包后,我的解壓目錄為/usr/local/jdk1.8.0_201,進行環(huán)境變量的設(shè)置:vim /etc/profile在profile文件底部加入:

export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

檢測安裝效果:輸入java -version顯示如下即可:

[root@test01 ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

3.2 安裝Hadoop

3.2.1. 修改主機名與IP映射

  • 修改主機名
    后續(xù)的Hadoop配置中需要用到主機名,阿里云自帶的主機名太過繁瑣,因此首先修改主機名為test01,執(zhí)行命令hostnamectl set-hostname 主機名。
[admin@iZwz9ffhe5jorfx9vdlmhmZ ~]$ hostname
iZwz9ffhe5jorfx9vdlmhmZ
[admin@iZwz9ffhe5jorfx9vdlmhmZ ~]$ hostnamectl set-hostname test01

在阿里云服務(wù)器管理界面點擊重啟或者執(zhí)行reboot命令,再次連接服務(wù)器,可以得到

Welcome to Alibaba Cloud Elastic Compute Service !

[admin@test01 ~]$ 

至此代表主機名更改成功

  • 編輯Network文件
    編輯network文件(此為Centos 7之前的修改方式,本實驗為防止后續(xù)出錯,也進行了設(shè)置)vim /etc/sysconfig/network 之后將該文件中加入HOSTNAME=test01,修改之后如下所示:
NETWORKING=yes
HOSTNAME=test01
NETWORKING_IPV6=no
PEERNTP=no
  • 設(shè)置IP映射
    輸入vim /etc/hosts添加本機的IP映射,修改之后文件如下:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.17.15.27  test01  //注意此處設(shè)置的是內(nèi)網(wǎng)ip
47.106.221.38 test1

最后一行為添加的本機IP地址(此處為阿里云顯示的公網(wǎng)IP)和修改后的HOSTNAME值

3.2.2 關(guān)閉防火墻

關(guān)閉防火墻:systemctl stop firewalld.service

3.2.3 設(shè)置免密登陸

設(shè)置免密登陸,是為了防止以后啟動hadoop時,每次啟動一個節(jié)點都需要輸入密碼。分別執(zhí)行如下命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

3.2.4 Hadoop環(huán)境配置

配置profile文件

配置Hadoop系統(tǒng)變量執(zhí)行vim /etc/profile,在profile下面加入:如下環(huán)境變量

export HADOOP_HOME=/usr/local/hadoop-2.8.4
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

執(zhí)行source /etc/profile使文件修改生效

修改 hadoop-env.sh

Hadoop運行在JDK之上,原本hadoop-env.sh文件中使用的是相對路徑,但是在一些環(huán)境中會報錯,因此此處修改為絕對路徑。執(zhí)行vim hadoop-env.sh
export JAVA_HOME=${JAVA_HOME}更改為export JAVA_HOME=/usr/local/jdk1.8.0_201
同時,可以在此處對hadoop的內(nèi)存環(huán)境進行配置,在<configuration></configuration>之間添加以下內(nèi)容::

export HADOOP_NAMENODE_OPTS=" -Xms1024m -Xmx2014m -XX:+UseParallelGC"
export HADOOP_DATANODE_OPTS=" -Xms1024m -Xmx2014m"
export HADOOP_LOG_DIR=/data/logs/hadoop   //記得在命令行建立這個文件夾
修改 core-site.xml

執(zhí)行vim core-site.xml,修改core-site.xml文件,在<configuration></configuration>之間添加以下內(nèi)容:

<property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://test01:8020</value>
</property>
修改hdfs-site.xml文件

執(zhí)行vim hdfs-site.xml,修改hdfs配置,在<configuration></configuration>之間添加以下內(nèi)容:

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///root/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.dataenode.data.dir</name>
<value>file:///root/hadoop/dfs/data</value>
</property>

注意此處需要在命令行中新建相應(yīng)的文件夾,分別執(zhí)行mkdir /root/hadoop/dfs/namemkdir /root/hadoop/dfs/data

修改mapred-site.xml文件

如果沒有 mapred-site.xml 該文件,就復(fù)制mapred-site.xml.template文件并重命名為mapred-site.xml,所用命令:cp mapred-site.xml.template mapred-site.xml,膚質(zhì)成功后,編輯mapred-site.xml文件,加入以下內(nèi)容

<property>
    <name>mapred.job.tracker</name>
    <value>test01:8021</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

注意此處需要在命令行中新建相應(yīng)的文件夾,執(zhí)行mkdir /root/hadoop/var

4.安裝成功標(biāo)志

4.1 初始化

第一次啟動hadoop需要進行初始化,執(zhí)行hadoop namenode -format得到以下結(jié)果

初始化結(jié)果

初始化成功

初始化成功后,可以在/root/hadoop/dfs/name 目錄下(該路徑在hdfs-site.xml文件中進行了相應(yīng)配置,并新建了該文件夾)新增了一個current 目錄以及一些文件。 如下圖所示:


初始化結(jié)果

4.2 hadoop 啟動

Hadoop 主要是啟動HDFS和YARN

4.2.1 啟動HDFS

進入hadoop安裝目錄下的sbin目錄 啟動HDFS ,執(zhí)行:start-dfs.sh。得到以下結(jié)果,則HDFS啟動成功。

成功啟動hdfs的結(jié)果

4.2.1 啟動YARN

進入hadoop安裝目錄下的sbin目錄啟動YARN,執(zhí)行start-yarn.sh
得到以下結(jié)果,則YARN啟動成功。

成功啟動YARN的結(jié)果

此時查看當(dāng)前所執(zhí)行的進程,執(zhí)行jps,得到以下結(jié)果,說明安裝成功

jps結(jié)果

常見錯誤

  • jdk版本造成的錯誤
    Centos 7及以上的版本中可以選擇yum直接安裝openjdk,我第一次使用的是openjdk版本,openjdk在后續(xù)的hadoop安裝過程中會遇到各種問題,包括:
  1. openjdk與jdk的目錄結(jié)構(gòu)差異造成的問題
    /root/hadoop/bin/hdfs: line 204: /opt/jdk/bin/java: No such file or directory /root/hadoop/bin/hdfs:
    注意JAVA_HOME的值必須具體到二進制java命令所在bin目錄的上一級例如/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64/jre而不是僅僅包括jdk版本的/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64
  2. openjdk是精簡版的jdk,可能導(dǎo)致某些命令不存在
    JPS命令不存在
    java-1.7.0-openjdk contains only the JRE. jps is part of the openjdk development package. Refer here.
    解決方案:安裝缺少的包yum install java-1.7.0-openjdk-devel
  • Hadoop配置造成的問題
    FATAL namenode.NameNode: Failed to start namenode. java.lang. IllegalArgumentException: URI has an authority component
    問題在于 /hadoop/etc/hadoop/hdfs-site.xml文件中關(guān)于dfs.namenode.name.dir 和dfs.datanode.data.dir值的設(shè)置有誤,檢查目錄是否存在等
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • (搭建集群部分借鑒了kiwenlau/hadoop-cluster-docker中的內(nèi)容,不過那里的基礎(chǔ)環(huán)境是Ub...
    ProteanBear閱讀 4,039評論 0 12
  • 前言 Hadoop在大數(shù)據(jù)技術(shù)體系中的地位至關(guān)重要,Hadoop是大數(shù)據(jù)技術(shù)的基礎(chǔ),對Hadoop基礎(chǔ)知識的掌握的...
    piziyang12138閱讀 2,001評論 0 3
  • 終極算法 關(guān)注微信號每天收聽我們的消息終極算法為您推送精品閱讀 前言 Hadoop 在大數(shù)據(jù)技術(shù)體系中的地位至關(guān)...
    Yespon閱讀 131,163評論 12 168
  • 一、系統(tǒng)參數(shù)配置優(yōu)化 1、系統(tǒng)內(nèi)核參數(shù)優(yōu)化配置 修改文件/etc/sysctl.conf,添加如下配置,然后執(zhí)行s...
    張偉科閱讀 3,935評論 0 14
  • 我叫麻小黑,不得不說老子到現(xiàn)在為止還是個悲劇,但是我在努力變成一部勵志劇。 說悲劇呢是因為板上釘釘?shù)那迦A大學(xué)因為讓...
    忙碌而生墨閱讀 326評論 0 0

友情鏈接更多精彩內(nèi)容