虛擬機配置Hadoop 集群教程(參考Hadoop+Spark 大數據巨量分析與機器學習)


  • 配置完偽分布式虛擬機后,可以繼續配置hadoop集群。配置偽分布式hadoop可以參考:http://dblab.xmu.edu.cn/blog/2441-2/ 教程里也有配置集群,但是是用物理機配置的,我們這里還是選擇用虛擬機配置。

規划

  • 一台主要計算機master,在HDFS擔任NameNode角色、在MapReduce擔任ResourceManager;
  • 有多台計算機data1、data2、data3,在HDFS中擔任DataNode角色、在MapReduce中擔任NodeManager角色;
  • 結構圖如下,ip地址應根據自身情況而定;
    image

Step1. 把Single Node Cluster 復制到 data1

  • 通過復制虛擬機減少不必要的操作
    image
    image
    image

Step2. 設置VirtualBox網卡

  • 四台虛擬機,每台都設置兩張網卡,網卡1設置為“NAT網卡”,網卡2設置為“僅主機適配器”,用於創建內部網絡,內部網絡連接虛擬主機與Host主機。
    image
    在設置Host-Only網絡時若顯示界面未指定,可以到虛擬機管理中,點擊主機網絡管理器,添加一塊虛擬網卡。
    image
  • 我們將配置虛擬主機master、data1、data2、data3的IP為:
    192.168.47.100
    192.168.47.101
    192.168.47.102
    192.168.47.103

Step3. 設置data1服務器

  • 編輯網絡配置文件設置固定ip
    sudo gedit /etc/network/interfaces

    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    # NAT interface
    auto enp0s3
    iface enp0s3 inet dhcp
    # host only interface
    auto enp0s8
    iface enp0s8 inet static
    address         192.168.47.101
    netmask         255.255.255.0
    network         192.168.47.0
    brodcast        192.168.47.255
    
  • 設置hostname主機名
    sudo gedit /etc/hostname
    將內容改為data1

  • 設置hosts文件
    sudo gedit /etc/hosts

    127.0.0.1	localhost
    127.0.1.1	hadoop
    
    192.168.47.100  master
    192.168.47.101  data1
    192.168.47.102  data2
    192.168.47.103  data3
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
  • 編輯core-site.xml文件
    sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml

    <configuration>
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>file:/usr/local/hadoop/tmp</value>
    		<description>Abase for other temporary directories.</description>
    	</property>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://master:9000</value>
    	</property>
    </configuration>
    
  • 編輯yarn-site.xml文件
    sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml

    <configuration>
    <!-- Site specific YARN configuration properties -->
    	<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.resource-tracker.address</name>
    	   <value>master:8025</value>
    	</property>
    	<property>
    	   <name>yarn.resourcemanager.scheduler.address</name>
    	   <value>master:8030</value>
    	</property>
    	<property>
    	   <name>yarn.resourcemanager.address</name>
    	   <value>master:8050</value>
    	</property>
    </configuration>
    
  • 編輯mapred-site.xml文件
    sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml

<configuration>
	<property>
		<name>mapred.job.tracker</name>
		<value>master:54311</value>
	</property>
</configuration>
  • 編輯hdfs-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    <configuration>
    	<property>
    		<name>dfs.replication</name>
    		<value>3</value>
    	</property>
    	<property>
    		<name>dfs.datanode.data.dir</name>
    		<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
    	</property>
    </configuration>
    
  • 重啟data1,終端輸入ifconfig得到結果如下:
    image
    打開瀏覽器,確認對外網絡連接正常
    image
  • data1關機

Step4. 復制data1到data2、data3、master

  • 將data1虛擬機復制到data2、3和master虛擬機,名稱可以在復制時更改。選擇重置mac地址,完全復制,需要等待一段時間。復制好后結果如下:
    image

Step5. 設置data2、data3服務器

  • sudo gedit /etc/network/interfaces
    sudo gedit /etc/hostname
  • 啟動data2虛擬機,設置data2固定IP地址
    改ip地址為127.168.47.102和名字data2
  • 啟動data3虛擬機,設置data2固定IP地址
    改ip地址為127.168.47.103和名字data3

Step6. 設置master服務器

在NameNode服務器中需要設置:固定IP,hostname,hdfs-site.xml,masters,slaves

  • 啟動master虛擬機,設置ip和hostname

  • 編輯hdfs-site.xml文件
    sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

    <configuration>
    	<property>
    		<name>dfs.replication</name>
    		<value>3</value>
    	</property>
    	<property>
    		<name>dfs.namenode.name.dir</name>
    		<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
    	</property>
    </configuration>
    
  • 編輯master文件,告訴Hadoop系統哪一台服務器是NameNode
    sudo gedit /usr/local/hadoop/etc/hadoop/master
    將文件內容設置為master

  • 編輯slaves文件,高速Hadoop系統哪些服務器是DataNode
    sudo gedit /usr/local/hadoop/etc/hadoop/slaves
    將內容設置為:
    data1
    data2
    data3

Step7. master連接到data1、data2、data3,創建HDFS目錄

之前我們已經創建了master與data1、2、3服務器。接下來要創建NameNode(master)的SSH連接到DataNode(data1、2、3),並創建HDFS相關目錄。

  • 啟動四台服務器
    image

  • 在master服務器的終端程序中輸入ssh data1通過SSH登錄到data1虛擬機
    image

  • 連接到data1后我們將在data1中創建HDFS相關目錄如下,在master的終端中輸入下列程序
    刪除hdfs所有目錄:
    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    創建DataNode存儲目錄:
    sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
    將目錄的所有者更改為hduser
    sudo chown hduser:hduser -R /usr/local/hadoop
    image

  • 輸入exit命令注銷,再次登錄data2,參照上述做法創建HDFS目錄
    image

  • date3操作類似
    image

Step8. 創建並格式化NameNode HDFS目錄

  • 重新創建NameNode HDFS目錄
    在master的終端程序中輸入下列命令,創建NameNode HDFS目錄:
    刪除之前的HDFS目錄
    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    創建NameNode目錄
    mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
    將目錄所有者更改為hduser
    sudo chown -R hduser:hduser /usr/local/hadoop
  • 格式化NameNode HDFS目錄
    cd /usr/local/hadoop
    ./bin/hadoop namenode -format
    image

Step9. 啟動Hadoop Multi Node Cluster

  • 啟動Hadoop Multi Node Cluster
    到此為止,我們已經完成了Hadoop cluster的構建,可以在master終端中輸入下列命令開始操作:
    start-dfs.sh
    start-yarn.sh
    或者
    start-all.sh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM