Hadoop簡介

我們之前已經解釋過了分布式存儲,分布式存儲有很多的解決方案,其中有個開源程序叫做HDFS,HDFS+MAPREDUCE=hadoop。

hadoop不算是單存的分布式存儲,我們之前提到的Mogilefs和Fastdfs都是分布式存儲。hadoop屬于分布式計算,MAPREDUCE是一個編程的框架,使得程序可以并行計算。

HDFS適用于存儲單個大文件,在存儲中內置塊大小為64M,會將大文件分片存儲,同時也支持存儲海量的文件。

MAPREDUCE就是基于上面存儲的文件進行處理,分析。


上面提到了hadoop是由mapreduce+hdfs組成,因此他也是兩個集群,hdfs分成了一個主節點和N個從節點,從節點主要用于存儲數據,主節點存儲從節點的元數據信息,有點類似于之前介紹的fastdfs由從節點向主節點匯報自己的狀態,存儲的文件等等。mapreduce(hadoop2.0以后)也分為了兩塊,一塊稱為RM(resource manager)一般運行與單個主機上,一塊稱為NM(node manager)運行在每個存儲節點之上,RM負責接收用戶的任務,并將任務發往NM之上,在NM之上又會生成一個AM(application manager),再由AM管理具體任務的執行。


接下來就來簡單配置一個偽分布式的hadoop(因為上述所有進程都運行在一個主機上,因此命名為偽分布式)

下載官網的tar包。

hadoop運行與java虛擬機之上,所以先得去配置java環境

[root@localhost ~]# yum -y install java-1.8.0-openjdk-devel    java-1.8.0-openjdk   

[root@localhost ~]# vi /etc/profile.d/java.sh 
[root@localhost ~]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr                        #此處指明java目錄即可,hadoop在運行時會自動找java目錄下bin/java
export HADOOP_PREFIX=/usr/local/hadoop-2.7.1 

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}

配置java以及hadoop配置環境

編輯hadoop目錄中etc/hadoop/core-site.xml文件,添加一下內容。

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
       <final>true</final>
    </property>

hadoop的配置文件格式name相當于一個指令,value就是指令值。

同目錄下yarn.site.xml添加此段

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

同目錄下hdfs.site.xml添加此段

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hdfs/nn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hdfs/dn</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:///data/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:///data/hdfs/snn</value>
    </property>

[root@localhost hadoop-2.7.1]# cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
[root@localhost hadoop-2.7.1]# vi etc/hadoop/mapred-site.xml

復制此模板文件,并編輯此文件,添加如下內容

   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>

所有配置文件就準備好了,每個配置文件中都有很多參數,具體參數詳情查看以下官方文檔。(網上也有很多別人翻譯好的)

http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/core-default.xml

http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

http://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

http://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

創建配置文件中指定的目錄

[root@localhost sbin]# mkdir /data/hdfs/{nn,sn,dn} -pv

[root@localhost hadoop-2.7.1]# mkdir logs                    #創建日志目錄,日志會保存到這里

[root@localhost hadoop-2.7.1]# hdfs namenode -format            #格式化NN

Hadoop簡介

看到箭頭那行證明格式化成功,接著啟動所有服務

[root@localhost hadoop-2.7.1]# hadoop-daemons.sh  start datanode

[root@localhost hadoop-2.7.1]# hadoop-daemons.sh  start secondarynode

[root@localhost hadoop-2.7.1]# hadoop-daemons.sh  start name

[root@localhost hadoop-2.7.1]# yarn-daemon.sh start resourcemanager
[root@localhost hadoop-2.7.1]# yarn-daemon.sh start nodemanager

啟動服務時回要求輸入密碼,因為默認是通過ssh協議鏈接到個節點的主機上啟動,另外啟動secondary時會報錯提示找不到secondary節點,這里我們不用管它

[root@localhost hadoop-2.7.1]# vi etc/hadoop/hadoop-env.sh              #啟動服務時提示找不到JAVAHOME ,我核實了多遍,發現沒有問題,結果發現這個文件里面定義了一個JAVA_HOME,把他改一下即可

接著可以看到起來了一大堆端口,其中關注最多的應該是

50070:監控存儲節點的web接口

8088:監控運行任務的web接口

其他80的基本是程序員寫程序調用的接口

其他50的基本是hdfs通訊所用到的接口

Hadoop簡介

存儲的狀態界面

Hadoop簡介

運行任務的狀態界面

實際應用中出于安全考慮應該以普通用戶的身份啟動各服務。

有一點沒需求,就當是學習完整理下思路。

原創文章,作者:N24_Ghost,如若轉載,請注明出處:http://www.www58058.com/71067

(1)
N24_GhostN24_Ghost
上一篇 2017-03-13 21:01
下一篇 2017-03-13 22:27

相關推薦

  • 深入解析:分布式系統的事務處理經典問題及模型(轉載分享)

    摘要:分布式系統需要在數據完整、一致性和性能間做平衡。本文系統介紹了處理分布式數據一致性的技術模型,如:Master-Slave,Master-Master,2PC/3PC,經典的將軍問題,Paxos,以及Dynamo的NRW和VectorClock的模型。 編者按:數據服務的高可用是所有企業都想擁有的,但是要想讓數據有高可用性,就需要冗余數據寫多份。寫多份…

    Linux干貨 2015-04-04
  • 文件查找與壓縮-2

    1、tar [OPTION]… (1) 創建歸檔(打包而非壓縮) 其中-c是創建備份,-f是指定創建備份成的文件即是/PATH/TO/SOMEFILE.tar #tar -c -f /PATH/TO/SOMEFILE.tar  FILE… #tar cf / PATH/TO/SOMEFILE.tar FILE… …

    Linux干貨 2016-08-18
  • linux 網絡管理

    1、ifconfig命令格式: ifconfig[interface] 查看IP ifconfig-a 查看全部網卡信息 ifconfigIFACE [up|down] 網卡開啟關閉 ifconfigIFACE IP/netmask [up] ifconfigIFACE IP netmask NETMASK 命令立即生效,不能永久保存  &nbsp…

    Linux干貨 2017-08-20
  • lvs-dr

            通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變;     VIP通常配置在lo:0…

    2017-06-29
  • 配置epl時,出現“time out”錯誤,解決辦法

    一:配置環境、網絡環境及出現的故障 1:配置環境 本機在配置epel倉庫時,配置文件所在路徑為/etc/yum/repos.d/centos7.repo.以下為配置文件的的詳細內容 [base]name=centos 7.3baseurl=file:///misc/cdgpgkey=file:///misc/cd/RPM-GPG-KEY-Centos-7 […

    2017-06-10
  • DNS服務器搭建從協議到實現詳解

    一、域名和服務概述    1.FQDN:Fully Qualified Domain Name,完全限定域名,全局唯一           FQDN是指主機名加上全路徑,全路徑中列出了序列中所有域成員。全域名可以從邏輯上準確地表示…

    Linux干貨 2016-04-30

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-30 13:57

    對hadoop的基礎配置描述的非常詳細清晰,繼續加油。

欧美性久久久久