• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      通過(guò)虛擬化技術(shù)在Linux系統(tǒng)下搭建Hadoop集群的研究與實(shí)現(xiàn)

      2016-11-16 14:45黃楠
      電腦知識(shí)與技術(shù) 2016年25期
      關(guān)鍵詞:虛擬化

      黃楠

      摘要:本文從節(jié)約成本和簡(jiǎn)化搭建過(guò)程出發(fā),介紹了通過(guò)VMware Workstation和CentOS 6.5在單機(jī)環(huán)境下,搭建分布式Hadoop集群的方法,并給出了詳細(xì)的搭建步驟,最后對(duì)搭建好的平臺(tái)進(jìn)行了測(cè)試,測(cè)試結(jié)果表明建立在虛擬機(jī)上的Hadoop集群已經(jīng)可以正常運(yùn)行,可在上面進(jìn)行實(shí)驗(yàn)和應(yīng)用開(kāi)發(fā)。

      關(guān)鍵詞:Hadoop;VMware;虛擬化

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)25-0175-06

      1 概述

      目前,大數(shù)據(jù)已經(jīng)成為研究的熱點(diǎn),大數(shù)據(jù)的解決方案種類繁多,其中Hadoop作為 Apache基金會(huì)的一個(gè)開(kāi)源項(xiàng)目,已經(jīng)積累了大量用戶,在業(yè)界也得到了廣泛的認(rèn)可,一些知名企業(yè)如百度、阿里巴巴、 谷歌、騰訊和facebook等,紛紛將 Hadoop應(yīng)用于商業(yè)領(lǐng)域。傳統(tǒng)的Hadoop集群是基于物理節(jié)點(diǎn)搭建的,雖然理論上組建一個(gè) Hadoop集群不需要昂貴的高性能計(jì)算機(jī),僅需一些廉價(jià)的計(jì)算機(jī)即可[1,2],但如采用傳統(tǒng)技術(shù)搭建Hadoop集群,就不得不面對(duì)一些問(wèn)題:①構(gòu)建集群需要大量的物理設(shè)備以及足夠的實(shí)驗(yàn)場(chǎng)地②物理機(jī)的性能得不到充分利用;③基于物理機(jī)的Hadoop集群組建后,如需增加節(jié)點(diǎn),就要增加新的物理機(jī),需要更大的場(chǎng)地,而且集線器、交換機(jī)等物理設(shè)備也要相應(yīng)增加,布置起來(lái)比較錯(cuò)綜復(fù)雜。面對(duì)這些問(wèn)題,如何在?本文對(duì)這個(gè)問(wèn)題進(jìn)行探討,介紹一下在單機(jī)環(huán)境中,使用VMware Workstation 10和CentOS 6.5搭建Hadoop分布式集群并進(jìn)行簡(jiǎn)單的測(cè)試。

      2 Hadoop簡(jiǎn)介

      Hadoop是一種分析和處理大數(shù)據(jù)的軟件平臺(tái),是Apache的一個(gè)用Java語(yǔ)言所實(shí)現(xiàn)的開(kāi)源軟件框架,在大量計(jì)算機(jī)組成的集群當(dāng)中實(shí)現(xiàn)了對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce,HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce為海量的數(shù)據(jù)提供了計(jì)算。大數(shù)據(jù)在Hadoop處理的流程可以參照?qǐng)D1來(lái)進(jìn)行理解:數(shù)據(jù)是通過(guò)Hadoop的集群處理后得到的結(jié)果。[3]

      Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker組成,如圖2所示:

      NameNode:記錄文件是如何被拆分成block以及這些block都存儲(chǔ)到了那些DateNode節(jié)點(diǎn),同時(shí)也保存了文件系統(tǒng)運(yùn)行的狀態(tài)信息。

      DataNode:存儲(chǔ)被拆分的blocks。

      Secondary NameNode:幫助NameNode收集文件系統(tǒng)運(yùn)行的狀態(tài)信息。

      JobTracker:當(dāng)有任務(wù)提交到Hadoop集群時(shí),負(fù)責(zé)Job的運(yùn)行,負(fù)責(zé)調(diào)度多個(gè)TaskTracker。

      TaskTracker:負(fù)責(zé)某一個(gè)map或者reduce任務(wù)。

      3 搭建Hadoop虛擬實(shí)驗(yàn)平臺(tái)

      3.1準(zhǔn)備與安裝環(huán)境

      服務(wù)器準(zhǔn)備:安裝虛擬機(jī)和linux,虛擬機(jī)推薦使用vmware;PC可以使用workstation,配置低的話可選擇Cygwin,模擬linux環(huán)境;服務(wù)器可以使用ESXi,在管理上比較方便。ESXi還可以通過(guò)拷貝鏡像文件復(fù)制虛擬機(jī),復(fù)制后自動(dòng)修改網(wǎng)卡號(hào)和ip非??旖?。 如果只是實(shí)驗(yàn)用途,硬盤大約預(yù)留20-30G空間。

      操作系統(tǒng):CentOS 6.5 ,分區(qū)可以選擇默認(rèn),安裝選項(xiàng)默認(rèn)即可,注意選項(xiàng)里應(yīng)包括ssh , vi (用于編輯配置文件) , perl等(有些腳本里包含perl代碼需要解析)。

      JAVA環(huán)境:到Oracle官網(wǎng)下載java jdk安裝包,并且進(jìn)行安裝。

      3.2實(shí)驗(yàn)環(huán)境

      硬件環(huán)境:Vmware 10 ,三臺(tái)Linux虛擬機(jī):CentOS 6.5, 安裝介質(zhì):cdh5.4.0。

      三臺(tái)虛擬機(jī)配置如表1:

      3.3安裝與配置三臺(tái)虛擬機(jī)

      3.3.1準(zhǔn)備三臺(tái)虛擬機(jī)

      打開(kāi)虛擬軟件VMware WorkStation。

      點(diǎn)擊“文件”->“打開(kāi)”,找到虛擬機(jī)所在目錄,打開(kāi)裝有CentOS6.5的虛擬機(jī)。

      通過(guò)克隆生成新的虛擬機(jī),如圖3。

      3.3.2操作系統(tǒng)網(wǎng)絡(luò)配置

      確認(rèn)三臺(tái)虛擬機(jī)為不同MAC地址,選擇“NAT模式”的網(wǎng)絡(luò)連接方式,如圖4。

      打開(kāi)虛擬機(jī),按照表1設(shè)置IP地址,然后通過(guò)“ifconfig”命令查看網(wǎng)絡(luò)地址,如圖5。

      設(shè)置完后,root用戶用“service network restart”命令重啟網(wǎng)絡(luò)。

      根據(jù)表1修改三臺(tái)主機(jī)的主機(jī)名,修改后系統(tǒng)需重新啟動(dòng),編輯/etc/sysconfig/network,HOSTNAME=master或slave。

      修改/etc/hosts,所有主機(jī)添加如下內(nèi)容:

      192.168.xx.101 master

      192.168.xx.102 slave1

      192.168.xx.103 slave2

      3.3.3 ssh無(wú)密碼登錄配置

      三臺(tái)主機(jī)確保關(guān)閉防火墻,#chkconfig iptables,#services iptables stop。

      關(guān)閉SElINUX,修改/etc/selinux/config中的SELINUX=””為disable。

      在所有主機(jī)生成密鑰并配置SSH無(wú)密碼登錄主機(jī)

      #ssh-keygen -t rsa

      在master生成認(rèn)證文件,然后授權(quán)并將文件拷貝到slave1

      #cat ~/.ssh/id_rsa.pub >>~ /.ssh/authorized_ keys

      # chmod 600 authorized_keys

      #scp ~/.ssh/authorized_ keys slave 1:~/.ssh/

      在slave1上添加公鑰信息,然后授權(quán)并將文件拷貝到slave2

      #cat ~/.ssh/id_rsa.pub >>~ /.ssh/authorized_ keys

      # chmod 600 authorized_keys

      #scp ~/.ssh/authorized_ keys slave 2:~/.ssh/

      在slave2上添加公鑰信息,然后授權(quán)并將文件拷貝到master和slave1

      #cat ~/.ssh/id_rsa.pub >>~ /.ssh/authorized_ keys

      # chmod 600 authorized_keys

      #scp ~/.ssh/authorized_ keys master:~/.ssh/

      #scp ~/.ssh/authorized_ keys slave 1:~/.ssh/

      測(cè)試是否實(shí)現(xiàn)三臺(tái)主機(jī)間的無(wú)密碼登錄

      #ssh master

      #ssh slave1

      3.3.4 配置JAVA環(huán)境

      三臺(tái)主機(jī)分別上傳jdk文件到桌面并執(zhí)行配置

      mkdir /usr/java

      mv ~/Desktop/jdk-7u71-linux-x64.gz /usr/java/

      cd /usr/java

      tar -xvf jdk-7u71-linux-x64.gz

      在master配置環(huán)境變量,在/root/.bashrc文件添加如下內(nèi)容

      export JAVA_HOME=/usr/java/jdk1.7.0_71

      export PATH=$PATH:$JAVA_HOME/bin

      生效并發(fā)送到另外兩臺(tái)主機(jī)

      #source .bashrc

      #scp .bashrc slave1: ~

      #scp .bashrc slave2: ~

      驗(yàn)證

      #java -version

      3.3.5配置集群時(shí)間同步

      選擇master作為時(shí)間同步服務(wù)器,修改master的/etc/ntp.conf,添加

      restrict 192.168.x.O mask 255.255.255.0 notrap nomodify

      server 127.127.1.0 #local clock

      啟動(dòng)服務(wù)

      #service ntpd start

      #chkconfig ntpd on

      在slave1和slave2上添加定時(shí)任務(wù),執(zhí)行#crontab -e命令,添加如下內(nèi)容

      0 1 * * * root /usr/sbin/ntpdate master >> /root/ntpdate.log 2>&1

      3.3.6 配置yum源

      設(shè)置虛擬機(jī)master,使用ISO鏡像文件,如圖6。

      在master上掛載光驅(qū)

      #mkdir /media/cdh5

      #mount -o loop -t iso9660 /dev/cdrom /media/cdh5

      在master上創(chuàng)建文件/etc/yum.repos.d/cloudera-cdh5.repo,添加

      [cloudera-cdh5]

      name=Clouderas Distribution for Hadoop, Version 5

      baseurl=file:///media/cdh5/cdh/5.4.0/

      gpgcheck=O

      enabled= 1

      在slave1和slave2上創(chuàng)建文件/etc/yum.repos.d/cloudera-cdh5.repo,添加

      [cloudera-cdh5]

      name=Clouderas Distribution for Hadoop, Version 5

      baseurl=http://master/media_cdh5/cdh/5.4.0/

      gpgcheck=O

      enabled= 1

      在master上啟動(dòng)web服務(wù)

      #service httpd start

      #chkconfig httpd on

      在master上創(chuàng)建相應(yīng)軟連接并測(cè)試

      #ln -s /media/cdh5 /var/www/html/media_cdh5

      #yum clean all

      #yum list |grep hadoop-hdfs

      3.3.7安裝HDFS

      在master上安裝

      yum install -y hadoop hadoop-hdfs hadoop-client hadoop-doc \

      hadoop-debuginfo hadoop-hdfs-namenode \

      hadoop-hdfs-secondarynamenode

      在slave1和slave2節(jié)點(diǎn)上安裝

      yum install -y hadoop hadoop-hdfs hadoop-client hadoop-doc \

      hadoop-debuginfo hadoop-hdfs-datanode

      3.3.8安裝YARN

      在master上安裝

      yum install -y hadoop-yarn hadoop-yarn-resourcemanager

      在slave1和slave2節(jié)點(diǎn)上安裝

      yum install hadoop-yarn hadoop-yarn-nodemanager hadoop-mapreduce -y

      3.3.9配置HAdoop環(huán)境變量

      在master配置環(huán)境變量,在/root/.bashrc文件添加如下內(nèi)容

      #HADOOP

      export HADOOP_HOME=/usr/lib/hadoop

      export HADOOP_HDFS_HOME=/usr/lib/hadoop-hdfs

      export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce

      export HADOOP_COMMON_HOME=${HADOOP_HOME}

      export HADOOP_YARN_HOME=/usr/lib/hadoop-yarn

      export HADOOP_LIBEXEC_DIR=${HADOOP_HOME}/libexec

      export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

      export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop

      export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop

      執(zhí)行如下命令使配置生效,并發(fā)送到slave1和slave2

      #source .bashrc

      #scp .bashrc slave1: ~

      #scp .bashrc slave2: ~

      Hadoop有兩類重要的配置文件:

      只讀默認(rèn)的配置文件:core-default.xml, hdfs-default.xml, yarn-default.xml,mapred-default.xml。

      手工配置文件($HADOOP_HOME/etc/hadoop/目錄下): core-site.xml,hdfs-site.xml,yarn-site.xml, mapred-site.xml。

      另外,還有幾個(gè)重要的Hadoop環(huán)境配置文件:yarn-env.sh,slaves。

      在master上修改yarn-env.sh和slave文件,配置yarn的運(yùn)行環(huán)境

      #vi $HADOOP_HOME/etc/hadoop/yarn-env.sh

      export JAVA_HOME=/usr/java/jdk1.7.0_71/

      #vi $HADOOP_HOME/etc/hadoop/slaves

      slave1

      slave2

      修改core-site.xml文件

      #vi $HADOOP_HOME/etc/hadoop/core-site.xml

      fs.defaultFS

      hdfs://master:9000

      修改hdfs-site.xml文件

      #vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

      dfs.replication

      3

      dfs.permissions.superusergroup

      hadoop

      dfs.namenode.name.dir

      file:///data/dfs/nn

      dfs.datanode.data.dir

      file:///data/dfs/dn

      在master節(jié)點(diǎn)手動(dòng)創(chuàng)建dfs.namenode.name.dir的本地目錄

      #mkdir -p /data/dfs/nn

      在slave1和slave2節(jié)點(diǎn)手動(dòng)配置創(chuàng)建dfs.datanode.data.dir的本地目錄

      #mkdir -p /data/dfs/dn

      在所有主機(jī)上修改所有者權(quán)限

      #chown -R hdfs:hdfs /data/dfs

      下面列出一些需要關(guān)注的資源分配參數(shù),如表2。

      配置yarn-site.xml文件

      增加

      yarn.resourcemanager.address

      master:8032

      yarn.resourcemanager.scheduler.address

      master:8030

      yarn.resourcemanager.resource-track.address

      master:8031

      yarn.resourcemanager.admin.address

      master:8033

      yarn.resourcemanager.webapp.address

      master:8088

      yarn.resourcemanager.hostname

      master

      修改

      Where to aggregate logs to.

      yarn.nodemanager.remote-app-log-dir

      /var/log/hadoop-yarn/apps

      配置mapred-site.xml

      mapreduce.framework.name

      yarn

      復(fù)制配置到其他節(jié)點(diǎn),復(fù)制.bashrc和hadoop配置文件到slave1和slave2

      #scp .bashrc slave1: ~

      #scp .bashrc slave2: ~

      #scp -r /etc/hadoop/conf slave1:/etc/hadoop/

      #scp -r /etc/hadoop/conf slave2:/etc/hadoop/

      在master節(jié)點(diǎn)上進(jìn)行格式化

      #sudo -u hdfs hadoop namenode –format

      3.3.10啟動(dòng)HDFS集群

      在master上啟動(dòng)

      #service hadoop-hdfs-namenode start

      #service hadoop-hdfs-secondarynamenode start

      在slave1和slave2上啟動(dòng)

      #service hadoop-hdfs-datanode start

      通過(guò)jsp命令查看進(jìn)程,確認(rèn)HDFS集群是否成功啟動(dòng)

      登錄web控制臺(tái),查看HDFS集群狀態(tài),http://192.168.6.101:50070,如圖7

      3.3.11創(chuàng)建HDFS目錄

      創(chuàng)建/temp臨時(shí)目錄,并設(shè)置權(quán)限為1777

      #sudo –u hdfs hadoop fs –mkdir –p /tmp/hadoop-yarn

      #sudo –u hdfs hadoop fs –chmod –R 1777 /tmp

      創(chuàng)建/user用戶目錄,并設(shè)置權(quán)限為777

      #sudo –u hdfs hadoop fs –mkdir /user

      #sudo –u hdfs hadoop fs –chmod 777 /user

      創(chuàng)建yarn.nodemanager.remote-app-log-dir目錄

      #sudo –u hdfs hadoop fs –mkdir –p /var/log/hadoop-yarn/apps

      #sudo –u hdfs hadoop fs –chown yarn:mapred /var/log/hadoop-yarn/apps

      #sudo –u hdfs hadoop fs –chmod 1777 /var/log/hadoop-yarn/apps

      #sudo –u hdfs hadoop fs –chmod 1777 /tmp/hadoop-yarn

      3.3.12啟動(dòng)YARN集群

      在master上啟動(dòng)

      #service hadoop-yarn-resourcemanager start

      在slave1和slave2上啟動(dòng)

      #service hadoop-yarn-nodemanager start

      通過(guò)jsp命令查看進(jìn)程,確認(rèn)YARN集群是否成功啟動(dòng)

      通過(guò)Web控制臺(tái),查看ResourceManager狀態(tài),http://192.168.6.101:8088,如圖8。

      通過(guò)Web控制臺(tái),查看NodeManager狀態(tài),http://192.168.6.102:8042,如圖9。

      4 測(cè)試Hadoop集群

      在master上執(zhí)行

      #sudo –u hdfs hadoop fs –mkdir –p /input/wordcount

      #mkdir /tmp/input

      #echo “hello hadoop hello word xiaonan” > /tmp/input/test1.txt

      #sudo –u hdfs hadoop fs –put /tmp/input/*.txt /input/wordcount

      #sudo –u hdfs hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /input/wordcount /output/wc01

      執(zhí)行結(jié)果如圖10所示。

      5 總結(jié)

      測(cè)試結(jié)果顯示,建立在虛擬機(jī)上的Hadoop集群已經(jīng)可以正常運(yùn)行,可在上面進(jìn)行實(shí)驗(yàn)和應(yīng)用開(kāi)發(fā)。本文從簡(jiǎn)化搭建過(guò)程和充分利用機(jī)器性能出發(fā),在單機(jī)上通過(guò)虛擬化軟件,虛擬出三臺(tái)Linux主機(jī),搭建了分布式Hadoop集群。在搭建過(guò)程中,有幾點(diǎn)需要注意:虛擬機(jī)安裝時(shí),就要配置好主機(jī)的靜態(tài)IP和主機(jī)名,這樣可以方便后面的操作;當(dāng)安裝或運(yùn)行時(shí)發(fā)生錯(cuò)誤,可以查看相應(yīng)的log文件,這會(huì)對(duì)找出問(wèn)題很有幫助。

      參考文獻(xiàn):

      [1] 付偉,嚴(yán)博,吳曉平.云計(jì)算實(shí)驗(yàn)平臺(tái)建設(shè)關(guān)鍵技術(shù)研究[J].實(shí)驗(yàn)室研究與探索,2013(11):78-81.

      [2] 張興旺,李晨暉,秦曉珠.構(gòu)建于廉價(jià)計(jì)算機(jī)集群上的云存儲(chǔ)的研究與初步實(shí)現(xiàn)[J].情報(bào)雜志,2011(11):166-171,182.

      [3](美)Tom White.Hadoop權(quán)威指南[M].2版.周敏奇,王曉玲,金澈清,等.譯.北京:清華大學(xué)出版社,2011:9-12.

      猜你喜歡
      虛擬化
      基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
      對(duì)基于Docker的虛擬化技術(shù)的幾點(diǎn)探討
      虛擬化技術(shù)在計(jì)算機(jī)技術(shù)創(chuàng)造中的應(yīng)用
      存儲(chǔ)虛擬化還有優(yōu)勢(shì)嗎?
      五莲县| 临猗县| 石台县| 庆云县| 乐山市| 抚远县| 临澧县| 镇远县| 土默特右旗| 德庆县| 广饶县| 淮南市| 临安市| 沾化县| 久治县| 沁源县| 贡觉县| 崇明县| 淳安县| 额尔古纳市| 卢湾区| 呼和浩特市| 浙江省| 南昌县| 伊通| 尼木县| 明溪县| 玉树县| 盐山县| 成安县| 浪卡子县| 福清市| 泽库县| 广汉市| 旬邑县| 孝昌县| 孙吴县| 青田县| 鄂尔多斯市| 鄄城县| 江孜县|