Hadoop-2.6.0配置

我自己配置Hadoop的過程挺艱難的,東拼西湊找遍教程,可算把這配好了。特此寫一個記錄,以防日後所需,同時也希望能幫到大家。

事先準備

軟件 下載地址
CentOS 7.4 https://www.centos.org/download/
VirtualBox 6.0 https://www.virtualbox.org/wiki/Downloads
JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Hadoop 2.6 https://hadoop.apache.org/releases.html
XShell 6 https://www.netsarang.com/zh/xshell/
XFtp 6 https://www.netsarang.com/zh/xftp/

VirtualBox

安裝CentOS

  1. 新建虛擬機
    類型:Linux;版本:Red Hat 32/64依自身情況在這裏插入圖片描述
  2. 掛載鏡像文件 ,將會帶來全新的寫作體驗;
  3. 啓動並安裝 ;安裝時選擇最小安裝即可
    在這裏插入圖片描述

配置網絡環境

  1. 網卡1
    在這裏插入圖片描述

  2. 網卡2(這裏使用的是WIFI,如果是有線網絡 見3)
    在這裏插入圖片描述

  3. 網卡2(有線網絡)在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  4. CentOS中的網絡設置:
    首先在windows中輸入ipconfig /all查看網絡配置。如圖,我的虛擬機軟件所分配到的ipv4爲192.168.56.1;那麼我們實際在虛擬機中的ipv4地址的範圍應該是192.168.56.2~192.168.56.255

    在這裏插入圖片描述接下來在CentOS中操作:
    輸入ip add查看網絡配置

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:e7:0e:5b brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.2/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::9f23:fc55:29a7:6e2c/64 scope link 
       valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:6d:1e:ed brd ff:ff:ff:ff:ff:ff
    inet6 2408:84ef:22:eab6:3cd8:95a0:8ce9:4ad9/64 scope global noprefixroute dynamic 
       valid_lft 3363sec preferred_lft 3363sec
    inet6 fe80::22ed:6b14:3db9:426f/64 scope link 
       valid_lft forever preferred_lft forever
    
    

    輸入vi /etc/sysconfig/network-scripts/ifcfg-enp0s3編輯enp0s3網卡
    修改其中的ONBOOT;IPADDR;NETMASK;GATEWAY

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s3
    UUID=8b84fb8e-0a8c-4ed8-9d81-b33f2043980c
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    PREFIX=24
    DNS1=114.114.114.114
    

    設置完成後輸入service network restart來重啓網絡
    方便起見,這裏可以先把防火牆關了,輸入systemctl stop firewalld.service
    輸入systemctl status firewalld.service確認防火牆已被關閉
    在這裏插入圖片描述
    如圖: 防火牆已被關閉

    Active: inactive (dead)
    

    測試與實體機的連接ping 192.168.43.1Ctrl/Command + Z停止ping
    在這裏插入圖片描述
    測試與外網的連接ping www.baidu.com
    回到實體機,打開cmd,輸入ping 192.168.56.2測試與虛擬機的連接

Linux常用命令

管理員權限:sudo(下文配置時的指令操作如果出現錯誤,就在指令前加sudo
防火牆狀態:systemctl status firewalld.service
關閉防火牆:systemctl stop firewalld.service
編輯enp0s3網卡:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
重啓network:service network restart
更改DNS
查看當前啓動的連接:nmcli connection show
更改DNS:nmcli con mod enp0s3 ipv4.dns 114.114.114.114
配置生效:nmcli con up enp0s3
配置hadoop文件:cd /usr/local/hadoop-2.6.0/etc/hadoop

取消當前指令:Ctrl/Command + Z
保存文件並退出:先按Esc;然後 Shift + ; (即輸入“:”)最後輸入wq

XFtp 連接 CentOS

左上角新建連接
在這裏插入圖片描述

連接成功後,左邊爲本機文件,右邊爲虛擬機文件;可以通過右鍵本機文件將其上傳至虛擬機
在這裏插入圖片描述

XShell 連接 CentOS

左上角新建連接
在這裏插入圖片描述

點擊用戶身份驗證,輸入用戶名和密碼
在這裏插入圖片描述

安裝JDK

下載JDK 1.8: 鏈接在這裏插入圖片描述
利用XFtp將文件發送到CentOS中。
輸入tar -zxvf jdk-8u202-linux-x64.tar.gz解壓文件
輸入mv jdk1.8.0_202 /usr/local/將解壓好的文件夾移動到usr/local文件夾下(個人習慣問題,可不移)
在這裏插入圖片描述

輸入vim /etc/profile配置JDK環境;在文件最下面輸入:

export JAVA_HOME=/usr/local/jdk1.8.0_202/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

如圖在這裏插入圖片描述
輸入source /etc/profile使方纔的修改生效
輸入java -version測試是否生效,如圖:
在這裏插入圖片描述

Hadoop配置前期準備(Hadoop安裝&SSH免密登錄)

master
node1
node2
  1. 下載Hadoop 2.6 鏈接
    在這裏插入圖片描述
    利用XFtp將文件發送到CentOS中。
    輸入tar -zxvf hadoop-2.6.0.tar.gz解壓文件
    輸入mv hadoop-2.6.0 /usr/local/將解壓好的文件夾移動到usr/local文件夾下(個人習慣問題,可不移)
    在這裏插入圖片描述
    輸入vim /etc/profile配置Hadoop環境;在文件最下面輸入:

    export HADOOP_HOME=/usr/local/hadoop-2.6.0/
    export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
    

    如圖:
    在這裏插入圖片描述

    輸入source /etc/profile使方纔的修改生效
    輸入hadoop version測試是否生效,如圖:
    在這裏插入圖片描述

  2. 首先爲了方便我們訪問,先分別爲三臺虛擬機設置主機名
    hostnamectl set-hostname master
    hostnamectl set-hostname node1
    hostnamectl set-hostname node2
    設置好後輸入vim /etc/hosts配置hosts文件;在文件最下面輸入

    192.168.56.2    master
    192.168.56.3    node1
    192.168.56.4    node2
    

    如圖:
    在這裏插入圖片描述
    可使用ping node1測試是否連通

  3. SSH配置
    輸入rpm –qa | grep ssh查看是否已經安裝了SSH
    如果未安裝,輸入yum install ssh -y安裝SSH
    輸入ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa生成密鑰(過程中無需輸入參數,直接回車即可)
    如圖:這邊已經生成過一次了,所以輸入y覆蓋
    在這裏插入圖片描述
    注意圖中的:

    Your public key has been saved in /home/robinjohn/.ssh/id_rsa.pub.
    

    得知,我們的密鑰被保存在了/home/robinjohn/.ssh/路徑下
    輸入cd /home/robinjohn/.ssh/切換到該路徑下
    輸入ls顯示該目錄下的文件,如圖:
    在這裏插入圖片描述
    可以看到我們已經生成了id_rsa和id_rsa.pub文件
    在該目錄下,輸入cat id_rsa.pub >> authorized_keys生成公鑰
    輸入ls顯示該目錄下的文件,如圖:
    在這裏插入圖片描述
    可以看到我們已經生成了authorized_keys文件
    由於authorized_keys文件權限必須是600,所以我們輸入chmod 600 authorized_keys修改其權限
    修改完成後輸入systemctl restart sshd.service重啓服務使其生效
    輸入ssh localhostssh master使用SSH登錄當前master主機,如圖:
    在這裏插入圖片描述
    可以看到我們已經不需要密碼了,測試完後別忘了使用exit登出。
    輸入scp ~/.ssh/authorized_keys node1:~/.ssh將我們的密鑰發給node1結點;同理,輸入scp ~/.ssh/authorized_keys node2:~/.ssh將密鑰發給node2結點;如圖:
    在這裏插入圖片描述
    輸入ssh node1ssh node2分別測試兩個結點的免密登錄,如圖:
    在這裏插入圖片描述
    可以看到我們已經不需要密碼了,測試完後別忘了使用exit登出。
    此時,我們已經實現了master->node的免密登錄,即:

    master
    node1
    node2

    接下來,我們在node1和node2上分別執行
    cat id_rsa.pub >> ~/.ssh/authorized_keys保存公鑰
    cd ~/.ssh/切換到保存公鑰的路徑
    並輸入chmod 600 authorized_keys修改其權限
    修改完後別忘了輸入systemctl restart sshd.service重啓下服務
    輸入scp ~/.ssh/authorized_keys master:~/.ssh將公鑰發送給master
    好啦,我們來測試下能不能免密連上master,輸入ssh master
    在這裏插入圖片描述
    在這裏插入圖片描述
    成功!~ 測試完別忘了exit退出登錄。

    現在,我們實現了node->master的免密登錄(雙向),即:

    master
    node1
    node2

Hadoop配置

1. 修改配置文件

由於我先前用mv hadoop-2.6.0 /usr/local/將解壓好的文件夾移動到了usr/local文件夾下,那麼我的配置文件目錄則爲/usr/local/hadoop-2.6.0/etc/hadoop/
如圖:
在這裏插入圖片描述

輸入cd /usr/local/hadoop-2.6.0/etc/hadoop切換到該目錄下,並輸入ls查看文件
在這裏插入圖片描述
我們一共需要修改7個文件:

hadoop-env.sh
yarn-env.sh
slaves
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

首先我們輸入vim hadoop-env.sh打開hadoop-env.sh文件
由於hadoop在配置文件中需要JDK的絕對路徑,所以。
export JAVA_HOME=${JAVA_HOME}前加#對其註釋
另起一行,寫入export JAVA_HOME=/usr/local/jdk1.8.0_202,即:

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk1.8.0_202

如圖:
在這裏插入圖片描述
輸入vim yarn-env.sh打開yarn-env.sh文件
在文件末尾加上export JAVA_HOME=/usr/local/jdk1.8.0_202,如圖:
在這裏插入圖片描述
輸入vim slaves修改slaves文件;slaves直譯過來有奴隸的意思,我們把這個文件原來的內容全部刪除,並往這個文件中添加

node1
node2

如圖:
在這裏插入圖片描述
輸入vim core-site.xml打開core-site.xml文件,做如下修改:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>fs.default.name</name>
		<value>hdfs://master:9000</value>    
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop-2.6.0/tmp</value>
	</property>
</configuration>

輸入vim hdfs-site.xml打開hdfs-site.xml文件,做如下修改:

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>    
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/usr/local/hadoop-2.6.0/hdfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/usr/local/hadoop-2.6.0/hdfs/data</value>
	</property>
</configuration>

輸入vim mapred-site.xml打開mapred-site.xml文件,做如下修改:

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>master:19888</value>
	</property>
	<property>
		<name>mapred.job.tracker</name>
		<value>master:9001</value>
	</property>
</configuration>

輸入vim yarn-site.xml打開yarn-site.xml文件,做如下修改:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.hostname</name>
                 <value>master</value>
        </property>
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:8088</value>
        </property>
</configuration>

到這,master的hadoop已配置完成;剩下node1和node2結點按照上面的步驟一樣配置。
很麻煩?不用怕;
輸入scp -r /usr/local/hadoop-2.6.0 node1:/usr/local/hadoop-2.6.0將我們所有配置好的hadoop文件發送到node1結點上;
同理輸入scp -r /usr/local/hadoop-2.6.0 node2:/usr/local/hadoop-2.6.0發送給node2。
在這裏插入圖片描述

2. 初始化並開啓Hadoop

接下來的操作只需要在master中執行即可
首先輸入cd /usr/local/hadoop-2.6.0/bin來到hadoop下的bin文件夾中
輸入./hadoop namenode -format爲第一次的開啓執行初始化
在這裏插入圖片描述
注意圖中的

19/06/03 15:39:19 INFO util.ExitUtil: Exiting with status 0

如果最後的數字不是0,意味着在執行的時候出了某些錯誤;有可能是權限不足,在命令前加sudo再執行一次試試;
輸入cd /usr/local/hadoop-2.6.0/sbin來到sbin文件夾中
輸入./start-all.sh啓動Hadoop
打開Hadoop的管理頁面 http://192.168.56.2:50070 ;如圖:
在這裏插入圖片描述
至此,Hadoop就成功配置完成了!
使用完後別忘了關閉,輸入./stop-all.sh

3. 一些常用的管理頁面地址

master結點ip + :端口號
http://192.168.56.2:50070

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