亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2016-11-16 14:45:45黃楠
        電腦知識(shí)與技術(shù) 2016年25期

        黃楠

        摘要:本文從節(jié)約成本和簡化搭建過程出發(fā),介紹了通過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)用開發(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è)開源項(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ì)一些問題:①構(gòu)建集群需要大量的物理設(shè)備以及足夠的實(shí)驗(yàn)場(chǎng)地②物理機(jī)的性能得不到充分利用;③基于物理機(jī)的Hadoop集群組建后,如需增加節(jié)點(diǎn),就要增加新的物理機(jī),需要更大的場(chǎng)地,而且集線器、交換機(jī)等物理設(shè)備也要相應(yīng)增加,布置起來比較錯(cuò)綜復(fù)雜。面對(duì)這些問題,如何在?本文對(duì)這個(gè)問題進(jìn)行探討,介紹一下在單機(jī)環(huán)境中,使用VMware Workstation 10和CentOS 6.5搭建Hadoop分布式集群并進(jìn)行簡單的測(cè)試。

        2 Hadoop簡介

        Hadoop是一種分析和處理大數(shù)據(jù)的軟件平臺(tái),是Apache的一個(gè)用Java語言所實(shí)現(xiàn)的開源軟件框架,在大量計(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來進(jìn)行理解:數(shù)據(jù)是通過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還可以通過拷貝鏡像文件復(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ī)

        打開虛擬軟件VMware WorkStation。

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

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

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

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

        打開虛擬機(jī),按照表1設(shè)置IP地址,然后通過“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無密碼登錄配置

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

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

        在所有主機(jī)生成密鑰并配置SSH無密碼登錄主機(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ī)間的無密碼登錄

        #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

        通過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

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

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

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

        參考文獻(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.

        国产黑色丝袜在线观看下| 亚洲av综合色区一区二区| 大肉大捧一进一出好爽视频动漫| 亚洲一二三区免费视频| 在线看片免费人成视频电影| 国产一区二区不卡老阿姨| 91久久福利国产成人精品| av资源在线永久免费观看| 亚洲av无一区二区三区久久蜜桃| 成人精品国产亚洲欧洲| 精品人妻夜夜爽一区二区| 蜜桃传媒一区二区亚洲av婷婷| 免费国产在线精品一区| 午夜亚洲www湿好爽| 日韩精品成人无码AV片| 好看的中文字幕中文在线 | 日本免费一区二区三区影院| 国产亚洲自拍日本亚洲| 中文www新版资源在线| 伊人久久中文大香线蕉综合| 精品国精品自拍自在线| 久久777国产线看观看精品| 激情第一区仑乱| 91视频爱爱| 国产三级av在线精品| 精品九九人人做人人爱| 九九久久精品国产| 人妻少妇精品视频一区二区三区| 成人免费播放视频影院| 久久精品国产清自在天天线| 人妻去按摩店被黑人按中出| 国产综合一区二区三区av| 国产剧情一区二区三区在线| 麻豆果冻传媒在线观看| 亚洲激情人体艺术视频| 日本美女中文字幕第一区| 国产做爰又粗又大又爽动漫| 国产欧美成人| 亚洲中文字幕一区高清在线| 国产成人av一区二区三区在线观看| 中文字幕无码av激情不卡|