VirtualBox centos 7 安裝hadoop

首先確保ssh已安裝,若是沒有安裝執行yum install sshjava

而後執行ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa生成祕鑰node

這裏用的hadoop2.8.5,下載.tar.gz文件上傳到虛擬機上,如何將主機文件上傳到VritualBox已經有了充分的說明,自行查看,上傳到指定目錄以後執行tar -xvf xxxx.tar.gz進行解壓。web

解壓完hadoop要配置環境變量,vi /etc/profileapache

添加centos

HADOOP_HOME=/root/hadoopbash

PATH=$JAVA_HOME/bin:$PATH:$HOME/bin網絡

export HADOOP_HOMEapp

export PATHssh

這裏PATH裏面有$JAVA_HOME/bin若是上面配置java的環境變量的時候寫了能夠把以前寫的PATH註釋掉。webapp

而後執行 source /etc/profile使環境變量生效。

接下來配置hadoop的一些文件:

第一個解壓後的hadoop目錄下的/etc/hadoop/core-site.xml

看一下是否有這個<configuration></configuration>,若是沒有本身寫上去,而後在這個<configuration></configuration>中加入

<property>

        <name>fs.defaultFS</name>

        <value>hdfs://s204:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>file:/root/hadoop/tmp</value>

    </property>

    <property>

        <name>io.file.buffer.size</name>

        <value>131702</value>

    </property>

 <property>

        <name>hadoop.proxyuser.hadoop.hosts</name>

        <value>*</value>

    </property>

 

    <property>

        <name>hadoop.proxyuser.hadoop.groups</name>

        <value>*</value>

    </property>

第二個文件是解壓後的hadoop目錄下/etc/hadoop/hdfs-site.xml

一樣在<configuration></configuration>中加入

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/root/hadoop/hdfs/name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/root/hadoop/hdfs/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>s204:9001</value>
</property>
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>

第三個文件是解壓後的hadoop目錄下的/etc/hadoop/mapred-site.xml

接下來的幾個xml裏都要寫在<configuration></configuration>中

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>s204:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>s204:19888</value>
</property>

第四個文件是在解壓後的hadoop目錄下的/etc/hadoop/yarn-site.xml 

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>s204:8032</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>s204:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>s204:8031</value>
</property>
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>s204:8033</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>s204:8088</value>
</property>
<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>6078</value>
</property>

接下來修改文件也是在解壓後的hadoop目錄下的/etc/hadoop/yarn-env.sh

找到被註釋掉的生命 export JAVA_HOME=/usr/local/java/jdk1.8.0_191(確保這個地址是jdk的安裝路徑)去掉註釋

而後找到JAVA_HEAP_MAX=-Xmx1000m改爲JAVA_HEAP_MAX=-Xmx1024m(這個的做用暫時未查明,不過使用沒問題)。

最後一個文件是在解壓後的hadoop目錄下的/etc/hadoop/slaves

這個文件裏面只寫s204就能夠。

接下來配置網絡,vi /etc/sysconfig/network-scripts/ifcfg-enp0s3(這個名字多是不一樣的),你能夠經過命令ip add查看

這樣就肯定是哪一個了,而後編輯修改這個文件對照內容以下:

TYPE="Ethernet"
#BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="b9fe1e5c-be20-47f1-a2d3-e12f5ddb6aa1"
DEVICE="ens33"
ONBOOT="yes"
IPADDR0=192.168.9.10
PREFIX0=24
GATEWAY0=192.168.9.5
DNS1=114.114.114.114

重啓網絡systemctl  restart  network或者/etc/rc.d/init.d/network restart

如今能夠啓動hadoop了,首先進入解壓後的hadoop目錄下執行./bin/hdfs namenode -format

在輸出中看到Exiting with status 0表示成功

而後執行./sbin/start-all.sh

看輸出沒有error等報錯信息就是成功了,或者經過執行命令./bin/hdfs dfsadmin -report查看。

 

打通主機與虛擬機網絡去訪問http://s204:8088

首先在virtualBox中選中虛擬機而後右鍵--》設置出現以下圖

選擇「橋接網卡」界面名稱中選中你的網絡,我這裏是使用無線網絡,而後點「OK」,以後要進入虛擬機centos下設置網絡獲取方式爲自動獲取

nmcli connection modify enp0s3 \connection.autoconnect yes \ipv4.method auto --設置自動獲取ip

nmcli connection up enp0s3 ----啓用設置

這裏enp0s3每一個虛擬機可能不同,可使用ip add

或者nmcli connection show

最後systemctl stop firewalld.service --關閉防火牆

或者systemctl disable firewalld.service --禁止開機啓動防火牆

===========================================================================================

下面是一些在啓動hadoop時出現的問題及解決辦法。

在執行./sbin/start-all.sh的時候出現異常could not resolve hostname  s204:name or service not known

使用./bin/hdfs dfsadmin -report查看是否有節點的時候報錯java.net.UnknownHostException:s204(這個在上面出現過,也能夠換成別的)

這時候要查看/etc下面的hosts文件,添加上對應的ip與主機名即:192.168.10.11 s204

從新執行./sbin/start-all.sh。

在執行./sbin/start-all.sh的時候出現異常error:JAVA_HOME is not set and could not be found

這時候須要修改Hadoop目錄下/etc/hadoop下的hadoop-env.sh,將這個文件中的聲明export JAVA_HOME=/usr/local/java/jdk1.8.0_191顯示的聲明一下。

相關文章
相關標籤/搜索