首先確保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顯示的聲明一下。