hadoo分布式安裝-創(chuàng)新互聯(lián)

前驟:

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站制作公司、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)OPP膠袋等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

Hadoop Cluster中的Daemon

    HDFS:

        NameNode,NN

SecondaryNode,SNN

        DataNode:DN

    /data/hadoop/hdfs/{nn,snn,dn}

            nn:fsp_w_picpath,editlog//鏡像和編輯日志

        //hdfs的NN是在內(nèi)存中存放數(shù)據(jù),不斷根據(jù)文件狀態(tài)改變,修改元數(shù)據(jù)

    fsp_w_picpath存放了:文件分割后存放在哪些node上

        //文件元數(shù)據(jù)的改變,會寫入到editllog中,最后寫入到fsp_w_picpath中,因此下次NN重啟后數(shù)據(jù)依然存在,從fsp_w_picpath中讀取數(shù)據(jù),獲取到內(nèi)存中

//一旦nn崩潰,數(shù)據(jù)恢復(fù)需要大量的時間

    snn:在nn崩潰的時候,及時頂上去,省去修復(fù)nn,讓nn重新上線的時間,但是各個data node報告數(shù)據(jù)狀態(tài),進(jìn)行修復(fù)的時間依然需要。

        正常情況下:snn負(fù)責(zé)copy nn的fsp_w_picpath和editlog然后在snn上合并

    checkpoint:因為nn是在不斷變化的,因此snn要指定合并到那個時間點上。

//官方建議30個以上的node構(gòu)建hadoop集群

data是否需要工作于raid//因為hdfs已經(jīng)有replicate的功能,因此再次提供冗余的必要性不大

hadoop-daemon.sh 運行進(jìn)程

    在集群模式中hadoop-daemon.sh start DataNode時,需要自動的找每一個DataNode節(jié)點,然后在每一個DataNode上自動啟動。

    如何找到,或者如何保證命令能夠通過主控節(jié)點,自動連接到各從節(jié)點,并且有權(quán)限執(zhí)行命令。

在主節(jié)點上:配置

YARN:

ResourceManager

NodeManager:

yarn-daemon.sh start/stop

實際運行進(jìn)程:

【NN】 【SNN】 【RM】

    |    |   |

---------------------------------

[node1/NN] [nod2/NN] [node3/NN]

在node上啟動:datanode進(jìn)程和nodemanager進(jìn)程即可

實驗?zāi)P停?/p>

【NN/SNN/RM】

|

-----------------------------------------

[node1/NN] [nod2/NN] [node3/NN]

主控節(jié)點上運行:namenode,secondarynamenode,resourcemanager三個進(jìn)程

其他node上啟動:datanode進(jìn)程和nodemanager進(jìn)程

預(yù)備:

    1.ntpdate 同步

        tzselect,

timedatactl //查看時區(qū)設(shè)置

timedatectl list-timezones # 列出所有時區(qū)

timedatectl set-local-rtc 1 # 將硬件時鐘調(diào)整為與本地時鐘一致, 0 為設(shè)置為 UTC 時間

timedatectl set-timezone Asia/Shanghai # 設(shè)置系統(tǒng)時區(qū)為上海

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //最簡單的方案

    2.hosts通信

172.16.100.67 node1.mt.com node1 master

172.16.100.68 node2.mt.com node2

172.16.100.69 node3.mt.com node3

172.16.100.70 node4.mt.com node4

如果需要通過master節(jié)點啟動或停止整個集群,需要在master上配置運行服務(wù)的用戶,如hdfs和yarn能夠基于密鑰ssh鏈接

node1:

一、前奏

(1)配置環(huán)境

vim /etc/profile.d/java.sh

JAVA_HOME=/usr

yum install java-1.8.0-openjdk-devel.x86_64

scp /etc/profile.d/java.sh node2:/etc/profile.d/

scp /etc/profile.d/java.sh node3:/etc/profile.d/

scp /etc/profile.d/java.sh node4:/etc/profile.d/

vim /etc/profile.d/hadoop.sh

export HADOOP_PREFIX=/bdapps/hadoop

export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin

export HADOOP_YARN_HOME=${HADOOP_PREFIX}

export HADOOP_MAPPERD_HOME=${HADOOP_PREFIX}

export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

. /etc/profile.d/hadoop.sh

scp  /etc/profile.d/hadoop.sh node2:/etc/profile.d/

scp  /etc/profile.d/hadoop.sh node3:/etc/profile.d/

scp  /etc/profile.d/hadoop.sh node4:/etc/profile.d/

(2)修改hosts文件

vim /etc/hosts

172.16.100.67 node1.mt.com node1 master

172.16.100.68 node2.mt.com node2

172.16.100.69 node3.mt.com node3

172.16.100.70 node4.mt.com node4

scp 到 node2,node3,node4

(3)hadoop 密鑰登錄

useradd hadoop //node2,3,4都有一個hadoop用戶

echo "hadoop" | passwd --stdin hadoop

useradd -g hadoop hadoop //這里都使用一個用戶,也可以分別創(chuàng)建yarn和hdfs用戶

su - hadoop

ssh-keygen

for i in 2 3 4; do  ssh-copy-id -i .ssh/id_rsa.pub hadoop@node${i}; done

驗證:

ssh node2 'date'

ssh node3 'date'

ssh node4 'date'

二、安裝部署hadoop

(1)解壓

mkdir -pv /bdapps/ /data/hadoop/hdfs/{nn,snn,dn}  //這里的dn是用不到的,因為主控節(jié)點是不存儲數(shù)據(jù)的,可以不創(chuàng)建

chown -R hadoop:hadoop /data/hadoop/hdfs

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

(2)配置文件修改

1.core-site.xml 配置

vim etc/hadoop/core-site.xml

<configuration>

  <property>

    <name>fs.defaultFS</name>

    <value>hdfs://master:8020</value>

            //hdfs的訪問接口,master如果不能解析,用ip地址也可以

    <final>true</final>

  </property>

</configuration>

//core指向NN

2.yanr-site.xml文件配置

vim etc/hadoop/yarn-site.xml

<configuration>

  <property>

    <name>yarn.resourcemanager.address</name>

    <value>master:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>master:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>master:8031</value>

  </property>

  <property>

    <name>yarn.resourcemanager.admin.address</name>

    <value>master:8033</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.address</name>

    <value>master:8088</value>

  </property>

  <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.scheduler.class</name>

    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>

  </property>

</configuration>

//%s/localhost/master/g //替換localhost為master

//指向ResourceManager

3.hdfs-site.xml配置

vim etc/hadoop/hdfs-site.xml

<configuration>

  <property>

    <name>dfs.replication</name>  //dfs的副本數(shù)量

    <value>2</value>

  </property>

<proporty>

    <name>dfs.namenode.name.dir</name>

    <value>file:///data/hadoop/hdfs/nn</value>

</property>

  <proporty>

    <name>dfs.datanode.data.dir</name>

    <value>file:///data/hadoop/hdfs/dn</value>

  </property>

  <property>

    <name>fs.checkpoint.dir</name>

    <value>file:///data/hadoop/hdfs/snn</value>

  </property>

  <property>

    <name>fs.checkpoint.edits.dir</name>

    <value>file:///data/hadoop/hdfs/snn</value>

  </property>

</configuration>

4.

mapred-site.xml 是唯一不需要修改的

默認(rèn)的就是yarn就可以

5.

vim slaves

node2

node3

node4

//slaves是datanode和nodemanager

(3)

在node2,node3,node4指定到該步驟后:chown -R hadoop:hadoop ./*

su - hadoop

scp /bdapps/hadoop/etc/hadoop/* node2:/bdapps/hadoop/etc/hadoop/

scp /bdapps/hadoop/etc/hadoop/* node3:/bdapps/hadoop/etc/hadoop/

scp /bdapps/hadoop/etc/hadoop/* node4:/bdapps/hadoop/etc/hadoop/

三.格式化然后啟動

su - hadoop

hdfs namenode -format

    顯示/data/hadoop/hdfs/nn hash been successful formatted  表示成功

啟動hadoop方式有兩種:

    1.在各節(jié)點上分別啟動要啟動的服務(wù)

        啟動yarn服務(wù)要使用yarn用戶身份

     master節(jié)點:NameNode服務(wù)和ResourceManager服務(wù)

    su - hdfs -c 'hadoop-daemon.sh start namenode'

    su - hdfs -c 'yarn-daemon.sh start resourcemanager'

slave節(jié)點:DataNode服務(wù)和NodeManager服務(wù)

    su - hdfs -c 'hadoop-daemon.sh start datanode'

    su - hdfs -c 'yarn-daemon.sh start nodemanager'

    2.在master上啟動整個集群

        su - hdfs -c 'start-dfs.sh'

su - hdfs -c 'start-yarn.sh'

老版本通過start-all.sh和stop-all.sh來控制hdfs和mapreduce

啟動服務(wù):

su - hdfs -c 'start-dfs.sh'

su - hdfs -c 'stop-dfs.sh' //關(guān)閉hdfs

會提示在,2,3,4節(jié)點上啟動

su - hdfs -c 'start-yarn.sh'

master啟動resourcemanager

slave上啟動nodemanager

測試:

node3: su - hadoop

jps //查看DataNode進(jìn)程和NodeManager進(jìn)程

node1:su - hadoop

jps //啟動的有secondaryNameNode和NameNode進(jìn)程

hdfs dfs -mkdir /test

hdfs dfs -put /etc/fstab /test/fstab

hdfs dfs -ls -R /test

hdfs dfs -cat /test/fstab

node3:

ls /data/hadoop/hdfs/dn/current/..../blk,...  存儲在這里

注意:node2,3,4中有一個是沒有存儲該文件的,因為定義的slaves 為2個

vim etc/hadoop/hdfs-site.xml

<name>dfs.replication</name>  //dfs的副本數(shù)量

<value>2</value>

Web接口查看:

172.16.100.67:8088

內(nèi)存顯示為24G,因為3G,每個node的物理內(nèi)存代大小為8G

172.16.100.67:50070

datanode: 有三個

單個文件太小的是不會被切割的,大于64M的文件會被切片

可以直接上傳壓縮文件,會被切塊

運行任務(wù)測試:

yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-example-2.6.jar wordcount /test/fstab /test/functions /test/wc

hdfs dfs cat /test/wc/part-r-0000

四、其他節(jié)點

node2:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps  /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

//可以在修改配置文件后,直接復(fù)制到node3和node4上因為配置都一樣

node3:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps  /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

node4:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps  /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

=====================================================

yarn的集群管理命令

yarn [--config confdir] COMMAND

resourcemanager-format-state-store //刪除RMStateStore

resourcemanager //運行ResourceManager

nodemanaer //運行nodemanager on each slave

timelineserver //運行timelineserver,任務(wù)編排,時間線

rmadmin //resourcemanager管理

version

jar //運行jar文件

application //顯示application信息

report/kill application

applicationattempt //嘗試運行相關(guān)報告

container //容器相關(guān)信息

node //顯示node

queue //報告隊列信息

logs //備份容器日志

classpath //顯示java運行程序時的類加載路徑

daemonlog //獲取守護(hù)進(jìn)程的日志級別

jar,application,node,logs,classpath,version 是常用的用戶命令

resourcemanager,nodemanager,proxyserver,rmadmin,daemon是常用的管理類命令

yarn application [options]

-status ApplicationID 狀態(tài)信息

yarn application -status  application_1494685700454_0001

-list 列出yarn上的application列表

-appTypes:MAPREDUCE,YARN

-appStates:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED

yarn application -appStates=all

-kill ApplicationID

yarn node

-list //例出node列表

-states: NEW,RUNNING,UNHEALTHY不健康,DECOMMISSION退役的,LOST,REBOOTED

-staus Node-ID //顯示節(jié)點信息

logs:顯示已經(jīng)完成的YARN程序的日志(及狀態(tài)為:FAILED,KILLED,FINISHED)

如果需要在命令行查看日志需要配置yarn-site.xml

yarn.log-aggregation-enable 屬性值為true

yarn logs -applicationId [applicationID] [options]

-applicationId applicationID必備選項,用于從ResourceManager獲取其詳細(xì)信息。

-appOwner APPOwner默認(rèn)為當(dāng)前用戶,可選

-nodeAddress NodeAddress -containerId containerID:獲取當(dāng)前指定節(jié)點上指定容器的相關(guān)信息;其中NodeAddress的格式同NodeId

classpath:

yarn calasspath //加載java程序路徑

管理命令:

rmadmin

nodemanager

timelineserver

rmadmin是ResourceManager的客戶端程序,可用于刷新訪問控制策略、調(diào)度器隊列及注冊到RM上的節(jié)點等。

刷新之后,無需重啟即可生效。

yarn rmadmin [options]

    -help

    -refreshQueues:重載隊列的acl,狀態(tài)及調(diào)用器隊列;它會根據(jù)配置文件中的配置信息重新初始化調(diào)度器

    -refreshNodes:為RM刷新主機(jī)信息,它通過讀取RM節(jié)點的include和exclude文件來更新集群需要包含或排除的節(jié)點列表。

    -refreshUserToGroupMappings:根據(jù)配置的Hadoop安全組映射,通過刷新組緩存中的信息來更新用戶和組之間的映射關(guān)系。

    -refreshSuperUserGroupsConfiguration:刷新超級用戶代理組映射,以及更新代理主機(jī)和core-site.xml配置文件中的hadoop.proxyuser屬性定義的代理組

    -refreshAdminAcls:根據(jù)yarn站點配置文件或默認(rèn)配置文件的yarn.admin.acl屬性刷新RM的管理ACL;

    -refreshServiceAcl:重載服務(wù)級別授權(quán)策略文件,而后RM將重載授權(quán)策略文件;它會檢查hadoop安全授權(quán)是否啟用并為IPC Server,ApplicationMaster,Client及Resource tracker刷新ACL;

    DaemonLog:查看或更細(xì)

http://host:port/logLevel?log=name service?

yarn daemonlog [options] args

    -getLevel  host:port name:顯示指定守護(hù)進(jìn)程的日志級別

    -getLevel  host:port level:設(shè)置守護(hù)進(jìn)程的日志級別

運行YARN application

yarn application可以是一個shell腳本,MapReduce作業(yè)或者其他類型的任意作業(yè)。

步驟:

1.Application初始化提交 //client端完成

2.分配內(nèi)存并啟動AM //RM完成

3.AM注冊及資源分配 //AM在nodemanager上完成

4.啟動并監(jiān)控容器 //AM向NM報告,NM報告RM完成

5.Application進(jìn)度報告 //AM完成

6.Application進(jìn)度完成 //

利用ambari部署hadoop集群

https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.5.0

IBM官方技術(shù)論壇:https://www.ibm.com/developerworks/cn/opensource/

Ambari 2.2.2 下載資源

OS Format URL

  http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0

  http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo

  http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos7.tar.gz

HDP 2.4.2 下載資源

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/hdp.repo

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos7-rpm.tar.gz

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:hadoo分布式安裝-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article10/egego.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、商城網(wǎng)站、云服務(wù)器網(wǎng)站營銷、網(wǎng)站導(dǎo)航、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計