在window上使用VirtualBox搭建Ubuntu15.04全分佈Hadoop2.7.1集羣

先給你們看看配置好的集羣截圖:java

注意(default是docker的,你們不用管,下面四臺纔是,其中Ubuntu_0是master,Ubuntu_1,2,3是slave節點node

一.新建虛擬機,配置基礎java環境,配置網絡訪問linux

    下載Ubuntu15.04,打開VirtualBox,新建Ubuntu虛擬機,用戶名linux1,不截圖了,內存選1G就夠了web

    接下來,下載並安裝JDK:docker

    下載:去官網下載對應版本的JDK,我這裏是jdk-8u60-linux-x64.tar.gzshell

    新建安裝目錄:apache

sudo mkdir /usr/local/java

    解壓JDK:編程

sudo tar xvf ~/Downloads/jdk-8u60-linux-x64.tar.gz -C  /usr/local/java

    設置全局環境變量:ubuntu

    

sudo gedit ~/.bashrc

    文件末尾添加:windows

    

export JAVA_HOME=/usr/local/java/jdk1.8.0_60  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH


    驗證:新開終端,輸入java驗證(當前終端內不生效)

    接下來,配置網絡(爲啥要配置:由於你搭的是集羣,用的是集羣的服務,確定想除了集羣之外的機器能訪問,而不是像網上那些人省事,直接在master上安裝Eclipse,進行開發,這樣是不對的,舉個例子,個人宿主機是Windows,用VirtualBox搭的集羣,我想在windows上使用Eclipse進行編程,使用集羣的Hadoop服務,我可不想在master上安裝Eclipse開發,雖然會省掉很多錯誤解決的麻煩事,可是是不對的!服務就是要遠程調用的)

    設置第一個網卡:NAT可使虛擬機使用宿主機的IP上網,這樣,你的虛擬機就能夠缺什麼軟件就安什麼了,方便!

    

    接下來設置第二個網卡:這使得宿主機可以ping通虛擬機

    

    

    

二.克隆虛擬機

    選中第一臺ubuntu_0(必定要關閉它),你會發現右側的綿羊(你應該知道爲啥是綿羊吧)圖標是能夠點擊的,我如今用着集羣呢,懶得關,索性找張別人的圖,點開後的樣子是這樣的:

注意要重置網卡設置,命名隨便了。我一共clone了3個虛擬機,名字分別是Ubuntu_1,Ubuntu_2,Ubuntu_3,「徹底複製」,一直點肯定。


三.設置虛擬機靜態IP

    爲啥要設置呢?虛擬機默認是DHCP的,若是你搭建Hadoop集羣,不能老是讓Hadoop集羣所在的機器啓動一次就換一次IP吧,那麻煩了。因此,設置靜態IP頗有必要。

    我對網絡這塊迷糊,我就說個人方法了。

    下面的操做適用於全部4個虛擬機。

    

sudo gedit /etc/network/interfaces

    在

    

auto lo
iface lo inet loopback

    下加入:

    

auto eth1 #這是第二塊網卡
iface eth1 inet static

    

address 192.168.99.101 #在終端輸入ifconfig查看下,而後每臺機器這個地址最後一段(共四段)自增1(這四臺機器是101(用做master),100,102,103(這三個用做slave))
netmask 255.255.255.0 #ifconfig
gateway 10.0.2.2 # route查看,第一行就是

    靜態IP弄好了,接下來,就是設置主機名了。

    命令:

sudo gedit /etc/hostname

    命令:

sudo gedit /etc/hosts

    修改爲須要的主機名(我這裏是linux0-cloud,linux1-cloud,linux2-cloud,linux3-cloud),重啓?等下,還沒完事呢。

    接下來修改hosts文件:

    爲何要設置hosts,hosts是幹嗎的,個人理解是,根據主機名找IP,因此呢,  

    修改全部虛擬機的hosts文件, 命令:sudo gedit /etc/hosts。設置爲如圖所示:

    以上操做四臺機器必須都應用!好了,重啓吧!


四.安裝SSH,使得master能夠無密碼登陸全部slave節點(不解釋緣由)


    全部主機安裝ssh

    命令:

sudo apt-get install ssh

    在master節點上,

    命令:

ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >>.ssh/authorized_keys,

    使用ssh localhost查看是否可以無密碼登陸

    下面會進行master在無密碼狀況下ssh鏈接到slave節點

    其餘全部節點執行命令:

ssh-keygen -t rsa -P ""

    接下來,只要將master的公鑰放到其它slave節點便可使用無密碼登陸ssh節點

    將master .ssh/authorized_keys使用scp命令拷貝到其它slave節點上,作到master訪問slave不須要密碼(若是slave訪問master,那麼過程相反)

    在master上執行命令:

       

scp .ssh/authorized_keys linux1@linux1-cloud:~/.ssh/authorized_keys
scp .ssh/authorized_keys linux1@linux2-cloud:~/.ssh/authorized_keys
scp .ssh/authorized_keys linux1@linux3-cloud:~/.ssh/authorized_keys


五.安裝Hadoop2.7.1

    下面先對master節點進行配置,而後將配置好的文件複製到其他機器上

    在master上

    新建目錄,命令:mkdir ~/hadoop

    解壓hadoop,命令:tar xvf ~/Downloads/hadoop-2.7.1.tar.gz -C  ~/hadoop

    新建hdfs文件夾(不能使用sudo建立,權限問題):

       

mkdir ~/dfs
mkdir ~/dfs/name
mkdir ~/dfs/data
mkdir ~/tmp

    

    修改hadoop/hadoop-2.7.1/etc/hadoop/hadoop-env.sh配置文件 ,

export JAVA_HOME=/usr/local/java/jdk1.8.0_60

    修改/etc/hadoop/slaves文件:

    

    修改/etc/hadoop/core-site.xml文件,

    

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://linux0-cloud:8020</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/linux1/tmp</value>
        <description>Abase for other temporary   directories.</description>
    </property>
</configuration>

    修改/etc/hadoop/hdfs-site.xml文件,

    

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>linux0-cloud:9001</value>
        <description>
            這裏使namenode同時做爲secondary namenode,實際應該設置其餘機器的好比linux1-cloud:9001
            你能夠訪問linux0-cloud:50070也能夠訪問linux0-cloud:9001(或者其餘好比:linux1-cloud:8001)查看hadoop概況(namenode們狀態是同步的)
        </description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/linux1/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/linux1/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

    修改etc/hadoop/mapred-site.xml,

   

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>linux0-cloud:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>linux0-cloud:19888</value>
    </property>
</configuration>

    

    修改yarn-site.xml文件,

    

<configuration>
    <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>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>linux0-cloud:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>linux0-cloud:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>linux0-cloud:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>linux0-cloud:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>linux0-cloud:8088</value>
    </property>
</configuration>

    

    下面將hadoop複製到其它slave節點:

    命令:

       

sudo scp -r ~/hadoop linux1@linux1-cloud:~/
sudo scp -r ~/hadoop linux1@linux2-cloud:~/
sudo scp -r ~/hadoop linux1@linux3-cloud:~/

    設置全部節點環境變量:

    

gedit ~/.bashrc

    添加:

    

export HADOOP_HOME=/home/linux1/hadoop/hadoop-2.7.1
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_YARN_HOME=$HADOOP_HOME 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    應用環境變量:

source ~/.bashrc


六.啓動Hadoop

    首先格式化:

hdfs namenode -format

    啓動hdfs: 

       

 start-dfs.sh

    啓動yarn:

        

start-yarn.sh


你也能夠輸入192.168.99.101:50070訪問,不給大家截圖,宿主機瀏覽器有很多標籤

相關文章
相關標籤/搜索