Linux環境下配置和安裝hadoop及hadoop集羣搭建(VMware)

一、安裝準備

在linux環境下安裝hadoop需要準備的資料如下:
在這裏插入圖片描述
這裏主要需要準備的就是jdk和hadoop安裝包,將這兩個拖到opt目錄下解壓,jdk的環境變量還是像之前那樣配置。
這裏可以事先配置好另外兩個host,方便後面的集羣搭建,參照前面ELK集羣搭建的配置方法,能夠實現免密登錄即可。

二、hadoop的配置

首先切換到如下目錄:

[root@localhost opt]# mv hadoop-2.6.0-cdh5.14.2/ hadoop  --先將解壓好的hadoop目錄改個名
[root@localhost hadoop]# cd etc/hadoop  --再切換到其下面etc/hadoop下

此時進行ll查看,可以看到有很多xml、sh等類型的文件。

1.首先配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}   
export JAVA_HOME=/opt/java8

這裏將jdk的路徑改成自己配置的路徑,這裏我也將jdk重命名成java8,改完後保存退出

2.配置core-site.xml
<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://192.168.234.101:9000</value>   --默認節點端口,端口號默認是9000
</property>
<property>
   <name>hadoop.tmp.dir</name>  
   <value>/opt/hadoop/tmp</value>   --hdfs存放的臨時目錄
</property>
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>    --其他機器的所有root用戶可以訪問
 </property>
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>   --其他root用戶的組內用戶可以訪問
 </property>
</configuration>

在configuration裏面加上屬性配置。

3.配置hdfs-site.xml
<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>  ---副本數
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>hadoop01:50090</value>   ---從元數據節點名
</property>
</configuration>
4.配置mapred-site.xml
<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>   --MapReduce默認的工作模式:yarn
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>  --MapReduce的工作地址
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>  --MapReduce的歷史日誌查詢地址
</property>
</configuration>

PS:mapred-site.xml文件原本解壓後是mapred-site.xml.template,這裏將其改名爲了保持一致。

5.配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer獲取數據方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value>
</property>
<!-- 日誌聚集功能使用 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 日誌保留時間設置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
</configuration>
6.配置slaves
hadoop01  --本機用戶改成hadoop01
7.配置hadoop環境變量

直接:vi /etc/profile,在最後一行插入下面的配置

export HADOOP_HOME=/opt/hadoop
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

三、格式化HDFS

輸入命令:

hadoop namenode -format

PS:這裏如果出現:

-bash: hadoop: command not found

兩種解決方案:(1) 看一下自己的hadoop路徑是否配置正確,主要是HADOOP_HOME的配置路徑
(2) 因爲配置完環境變量,需要使之立即生效,纔可以使用hadoop命令,所以要:source /etc/profile

四、啓動hadoop

輸入命令啓動hadoop:

start-all.sh

同時也可以將hadoop的歷史查詢服務也啓動:

[root@localhost hadoop]# mr-jobhistory-daemon.sh start historyserver

然後輸入jps查詢當前所有進程,顯示如下幾個,說明啓動成功:

[root@localhost hadoop]# jps
10466 NodeManager
9988 NameNode
10100 DataNode
10244 SecondaryNameNode
10789 JobHistoryServer
10379 ResourceManager
10878 Jps

輸入網址:192.168.234.101:50070,端口號位50070,顯示如下結果再次驗證了hadoop啓動成功。
在這裏插入圖片描述

五、集羣搭建

1.克隆虛擬機

克隆一個虛擬機命名爲hadoop2(PS:複製後的虛擬機,網絡適配器的MAC地址需要重新生成,不然只能開一個),需要如下操作

vi /etc/sysconfig/network-scripts/ifcfg-ens33  --修改主機地址爲:192.168.234.102
vi /etc/hostname  --修改主機名爲:hadoop02
vi /etc/hosts  --增加主機列表:hadoop01和hadoop02
2.配置免密登錄

因爲一開始配置第一臺hadoop01時已經將私鑰配置完成並生成了公鑰,所以這裏只需要將hadoop02的重新生成一下即可

[root@hadoop02 ~]# ssh-keygen -t rsa -P ""  --生成私鑰

[root@hadoop02 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys  --複製成公鑰

配置成功後,將兩臺機器實現遠程登錄“

[root@hadoop01 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 [email protected]    --hadoop01連接hadoop02
[root@hadoop02 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 [email protected]    --hadoop02連接hadoop01

這樣就可以實現免密登錄,可以測試在hadoop01下輸入命令:ssh root@hadoop02 直接可以登錄。

3.修改主機器的配置文件

1).修改hdfs-site.xml文件

<configuration>
<property>
  <name>dfs.replication</name>
  <value>2</value>   ----兩個分塊
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>hadoop02:50090</value>   ----namenode的輔助節點
</property>
</configuration>

2).修改slaves文件

hadoop01
hadoop02

將兩個節點名全部加進去

4.複製配置文件到備用機器
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/hdfs-site.xml root@hadoop02:/opt/hadoop/etc/hadoop/hdfs-site.xml
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/slaves root@hadoop02:/opt/hadoop/etc/hadoop/slaves

這裏直接使用scp命令,將主機器修改好的配置文件直接覆蓋掉備用機器的配置文件

5.啓動hadoop

1).在主機器格式化: hdfs:hadoop namenode -format
2).啓動所有服務:start-all.sh和 mr-jobhistory-daemon.sh start historyserver
3).輸入命令:jps 顯示所有進程服務:

[root@hadoop01 hadoop]# jps
4020 NodeManager
3894 ResourceManager
2760 JobHistoryServer
3549 NameNode
4350 Jps
3663 DataNode
[root@hadoop01 hadoop]#

4).備用機器也啓動所有服務,輸入jps顯示所有進程:

[root@hadoop02 hadoop]# jps
3121 NodeManager
3489 Jps
2902 SecondaryNameNode
2812 DataNode
[root@hadoop02 hadoop]#

5).登錄網址進行確認驗證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章