1. 程式人生 > >零基礎大資料HADOOP學習-筆記1

零基礎大資料HADOOP學習-筆記1

一、大資料的4V特徵

    Volume   資料量大 TB PB
    Varity   的資料多種多樣文字(.log .txt .sql .xml)
    Veracity 價值密度低 商業價值高
    Velocity  速度快

二、Hadoop 的概念

Hadoop是一個應用java語言實現的軟體框架,
可擴充套件的分散式平行計算框架,
它可以讓應用程式支援上千個節點和PB級別的資料。
Hadoop是專案的總稱,主要是由分散式儲存(HDFS)、和分散式平行計算(MapReduce)等組成。
  1. Hadoop的四個模組,也叫四大元件
 Hadoop Common公共模組(支其他Hadoop模組的公用工具,包括FileSystem(面向通用檔案系統的抽象類)、遠端過程呼叫(RPC)和序列化庫)
Hadoop HDFS 儲存資料:一個為訪問應用資料提供高吞吐量的分散式檔案系統。 Hadoop YARN 管理資源(Hadoop2.x) 一個全域性的任務排程與資源管理的框架--》YARN是mareduce的雲作業系統 Hadoop MapReduce 平行計算框架:一個基於Yarn的大資料分散式平行計算框架

2.Hadoop的發行版本:

Apache 
    Cloudera    商業發行版(賣服務)cdh

6.Hadoop的體系架構

HDFS
    NameNode(一個叢集只有一個active):用於儲存元資料資訊(Namenode將元資料儲存在  記憶體中),同時會在硬碟上保留一份。元資料(Filename、副本數,各個副本所在的節點的位置)
        學生資訊管理系統書的目錄


    DataNode:用於具體儲存資料的
        在HDFS上儲存的資料副本數,預設是3個,副本數可以設定
        每個班級的學生(本人)
        每個章節的具體的內容

    SecondaryNameNode: 用於同步元資料資訊

YARN
    ResourceManager:負責全域性的資源管理(Container:硬體資源(CPU,記憶體,硬碟))
        教務處主任(教學資源:教室:實驗室 階梯教室 體育館)

    Nodemanager:負責所在節點上的資源
        班主任 機房管理員


Mapreduce
    分兩個階段:Map和Reduce  計算框架,程式設計模型     “分而治之”的思想
    100副撲克,少了一張,那麼可以找50個人。每個人分2副本撲克

    分散式平行計算

三、Hadoop的安裝執行模式:

    單機模式:
    1.單機(本地)執行模式
        無需執行任何守護程序,所有程式都在單個JVM上執行,測試用


    分散式:
    2.偽分散式
        將所有的守護程序執行在一個節點`這裡寫程式碼片`

    3.叢集模式
        1)完全分散式
        不同的守護程序執行在不同的節點
        2)HA
        Namenode HA   Resourcemanager HA
        3)聯盟

Hadoop2.x環境搭建
準備工作

一、Linux環境
    # vi /etc/sysconfig/network
$ cat /etc/sysconfig/network
2.主機對映
# vi /etc/hosts
ip地址  主機名

windows下主機對映
C:/windows/system32/driver/hosts

3.$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=static

二、jdk
(推薦)使用者只有一個(不要是root),user01
建立兩個目錄
# mkdir /opt/software /opt/modules
/opt/software  存放*.tag.gz
/opt/modules    放置安裝檔案
# chown -R user01:user01 /opt/modules/ /opt/software/

$ ll
drwxr-xr-x. 3 user01 user01 4096 Mar  7 07:34 modules
drwxr-xr-x. 2 root   root   4096 Nov 22  2013 rh
drwxr-xr-x. 2 user01 user01 4096 Mar  7 07:28 software

安裝jdk
  $ tar -zxf jdk-7u67-linux-x64.tar.gz  -C ../modules/

 配置環境變數
  # vim /etc/profile
  #JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

使配置生效
# source /etc/profile


 解除安裝openJDK
  # rpm -qa | grep jdk
  # rpm -e --nodeps   XXX.rpm   //不驗證依賴進行解除安裝

  Linux 防火牆
  # service iptables status   ##檢視防火牆狀態
  iptables: Firewall is not running.
  # service iptables stop     ##關閉防火牆


  關閉開機啟動防火牆
  #  chkconfig iptables off   ##不隨機啟動

  關閉安全子系統
  # vi /etc/sysconfig/selinux
  SELINUX=disabled

三、配置Hadoop  ${HADOOP_HOME}---hadoop的安裝目錄
解壓安裝hadoop【注意上傳和解壓過程中的使用者許可權問題】
$ tar -zxf hadoop-2.5.0.tar.gz -C  /opt/modules/

1.配置hadoop的java環境支援, ${HADOOP_HOME}/etc/hadoop目錄下
hadoop-env.sh 
mapred-env.sh 
yarn-env.sh 

在這3個檔案中都配置
export JAVA_HOME=/opt/modules/jdk1.7.0_67

2.與hdfs相關的配置   ${HADOOP_HOME}/etc/hadoop
1)core-site.xml
=============core-site.xml===================
<!--NameNode地址,8020是指定程序8020,訪問入口 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://bigdata.ibeifeng.com:8020</value>
</property>

<!--hadoop在執行時產生的檔案,元資料在本地的存放目錄 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/modules/hadoop-2.5.0/data</value>
</property>
============================================

    2)hdfs-site.xml
=============hdfs-site.xml============
    <!--存放到hdfs上的檔案的副本數,偽分散式配置為1 -->
<property>
       <name>dfs.replication</name>
       <value>1</value>
</property>
======================================
3)格式化namenode  只格式化一遍,不要重複格式化
${HADOOP_HOME}目錄下:
$ bin/hdfs namenode -format       

    17/03/21 00:34:52 INFO common.Storage: Storage directory /opt/modules/hadoop-2.5.0/data/dfs/name has been successfully formatted.
    4)啟動hdfs守護程序
  $ sbin/hadoop-daemon.sh start namenode  //啟動namenode程序
    $ sbin/hadoop-daemon.sh start datanode    //啟動datanode

    $  jps
3097 Jps
2931 NameNode
3023 DataNode


web訪問介面
http://bigdata.ibeifeng.com:50070/

5)HDFS檔案系統常用命令
$ bin/hdfs dfs   //可以檢視所有的dfs相關的操作指令
$ bin/hdfs dfs -ls /  
$ bin/hdfs dfs -mkdir -p /input/test
$ bin/hdfs dfs  -rmdir /input/test
$ bin/hdfs dfs  -put /opt/software/jdk-7u67-linux-x64.tar.gz /input/test

3.配置YARN  任務排程 (Mapreduce) 資源管理(resourcemanager nodemanager)
${HADOOP_HOME}/etc/hadoop目錄下配置yarn-site.xml
=======yarn-site.xml=====
<!-- 指定ResorceManager所在伺服器的主機名-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>[hostname]</value>
</property>

<!-- 指明在執行MapReduce的時候使用shuffle-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
====================================

複製並重名模板檔案
$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
=======mapred-site.xml=====
${HADOOP_HOME}/etc/hadoop目錄下配置mapred-site.xml

<!-- 指定MapReduce基於Yarn來執行-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
=====================================

4.啟動hdfs yarn程序
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager

5.檢查hdfs yarn啟動狀態,即檢視守護程序


6.向yarn提交mapreducer任務
    1)計算圓周率
    $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  pi 5 3
    2)wordcount詞頻統計
    a.在使用者主目錄建立一個wordcount.txt
    $ vi /home/user01/wordcount.txt
    hadoop java
    html java
    linux hadoop
    yarn hadoop

    b.上傳到hdfs的input目錄下
    $ bin/hdfs dfs -put ~/wordcoun.txt /input/

    c.提交wordcount任務
執行方式
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  wordcount  /input /output


【報錯】:再次執行wordcount會提示輸出目錄已存在
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://hadoop.beifeng.com:8020/output already exists

【報錯】:unknowHostException  
檢查主機對映

【解決辦法】
刪除hdfs上的輸出目錄或者重新指定輸出目錄
【常見錯誤】:
    1:主機名配置錯誤或者未配置主機名;
    2:配置的引數【<name>標籤對】錯誤,<value>標籤對引數有空格
    3:xml的註釋格式錯誤,標籤對未對齊
    4:namenode重複格式化
    5:修改配置引數未儲存,程序未重啟
    6:

7.配置日誌聚合
=======mapred-site.xml=========
**追加到原來配置和後面
<!--指定jobhistory服務的主機及RPC埠號-->
<property>
    <name>mapreduce.jobhistory.address</name>
    <!--配置實際的主機名和埠-->
    <value>[hostname]:10020</value>
</property>

<!--指定jobhistory服務的web訪問的主機及RPC埠號-->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>[hostname]:19888</value>
</property>
==============yarn-site.xml=======
<!--啟用日誌聚合功能-->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
    <!--日誌儲存時間-->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>86400</value>
</property>
8.停止所有程序重新啟動,以便配置檔案生效
    1)停止程序
$ sbin/hadoop-daemon.sh stop namenode
$ sbin/hadoop-daemon.sh stop datanode
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh stop nodemanager

    2)啟動程序
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager

    3)啟動歷史
啟動歷史服務
sbin/mr-jobhistory-daemon.sh start historyserver

    4)檢視守護程序
28904 ResourceManager
28724 NameNode
28808 DataNode
29152 NodeManager
29304 JobHistoryServer
30561 Jps



檢視hdfs的web介面
http://hadoop.beifeng.com:50070
*28724 NameNode
*28808 DataNode


檢視yarn的web訪問介面
http://hadoop.beifeng.com:8088
*28904 ResourceManager
28724 NameNode
28808 DataNode
*29152 NodeManager


檢視歷史日誌的web訪問介面
http://hadoop.beifeng.com:19888
28904 ResourceManager
28724 NameNode
28808 DataNode
29152 NodeManager
* 29304 JobHistoryServer
對應的視訊教學,可以加QQ群209586391,免費傳送

相關推薦

基礎資料HADOOP學習-筆記1

一、大資料的4V特徵 Volume 資料量大 TB PB Varity 的資料多種多樣文字(.log .txt .sql .xml) Veracity 價值密度低 商業價值高 Velocity 速度快 二、Hado

基礎資料HADOOP學習-筆記3-HDFS特點

HDFS的特點 優點: 1)處理超大檔案   這裡的超大檔案通常是指百MB、數百TB大小的檔案。目前在實際應用中,   HDFS已經能用來儲存管理PB級的資料了。

基礎資料HADOOP學習-筆記3-安全模式 safemode

【安全模式 safemode】 3種方式 方式一:Namenode的一種狀態,啟動時會自動進入安全模式,在安全模式,檔案系統不 允許有任何修改,“只讀不寫”。目的,是在系統啟動時檢查各個DataNod

資料Hadoop學習筆記(三)

1.HDFS架構講解 2.NameNode啟動過程 3.YARN架構組建功能詳解 4.MapReduce 程式設計模型 HDFS架構講解 源自谷歌的GFS論文 HDFS: *抑鬱擴充套件的分散式系統 *執行在大量普通的鏈家機器上,提供容錯機制 *為

資料Hadoop學習筆記(二)

Single Node Setup 官網地址 1. 本地模式 2.偽分散式模式 ************************* 本地模式 **************************** . grep input output ‘dfs[a-

資料Hadoop學習筆記(一)

大資料Hadoop2.x hadoop用來分析儲存網路資料 MapReduce:對海量資料的處理、分散式。 思想————> 分而治之,大資料集分為小的資料集,每個資料集進行邏輯業務處理合並統計資料結果(reduce) 執行模式:本地模式和yarn模式 input—

資料Hadoop學習筆記(五)

分散式部署 本地模式Local Mode 分散式Distribute Mode 偽分散式 一臺機器執行所有的守護程序 從節點DN和NM只有一個 完全分散式

資料Hadoop學習筆記(四)

MapReduce執行過程 ======== step1 : input InputFormat 讀取資料 轉換成<key, value>

資料Hadoop學習筆記(六)

HDFS HA 背景: 在hadoop2.0之前,HDFS叢集中的NameNode存在單點故障(SPOF)對於只有一個NameNode的叢集,若NameNode機器出現故障,則整個叢集將無法使用,直到NameNode重新啟動 NameNode主要在一下兩方面影響

資料技術學習筆記Hadoop框架基礎1-Hadoop介紹及偽分散式部署

一、學習建議     -》學習思想         -》設計思想:分散式             -》資料採集

資料技術學習筆記之hive框架基礎1-基本架構及環境部署

一、hive的介紹及其發展 "27.38.5.159" "-" "31/Aug/2015:00:04:37 +0800" "GET /course/view.php?id=27 HTTP/1.1" "303" "440" - "http://www.micro.com/user.php?act

資料技術學習筆記Hadoop框架基礎5-Hadoop高階特性HA及二次排序思想

一、回顧     -》shuffle流程         -》input:讀取mapreduce輸入的          &nbs

資料技術學習筆記Hadoop框架基礎2-MapReduce程式設計及執行流程

一、回顧     -》hadoop的功能?         -》海量資料儲存和海量計算問題         -》分散式檔案儲存框架hdfs和

資料技術學習筆記Hadoop框架基礎3-網站日誌分析及MapReduce過程詳解

一、回顧     -》Hadoop啟動方式         -》單個程序             sbin/h

資料技術學習筆記Hadoop框架基礎4-MapReduceshuffer過程詳解及zookeeper框架學習

一、MapReduce Shuffle     -》MapReduce執行五個階段         input           

資料技術學習筆記之linux基礎1-基礎環境與基礎命令

一、Linux系統介紹及部署     -》常見作業系統         -》windows、Linux(類unix系統)、Android、iOS、unix(HP UNIX)   

基礎資料學習必學技術有哪幾種,你知道嗎?

現在大資料非常火爆,不管是阿里巴巴、百度、騰訊這樣的大企業,還是中小型的企業都非常重視,大資料也是第一個納入國家戰略的技術。今天為大家講一下零基礎大資料學習必學技術有哪幾種。 大資料給大多數人的感覺是,專業性強,屬於“高大上”的技術。一部分人對大資料比較感興趣,會上網搜尋一些概念性的簡單瞭解,而

資料分析學習筆記(1):工作環境以及建模理論基礎

一、環境部署   1.python包管理:     (1)安裝:pip install xxx,conda install xxx     (2)解除安裝:pip uninstall xxx,  conda uninstall xxx     (3)升級:pip install -upgrade xx

基礎資料學習的10思維原理和方法全部都在這

1、資料核心原理 從“流程”核心轉變為“資料”核心   大資料時代,計算模式也發生了轉變,從“流程”核心轉變為“資料”核心。Hadoop體系的分散式計算框架已經是“資料”為核心的正規化。非結構化資料及分析需求,將改變IT系統的升級方式:從簡單增量到架構變化。大資料下的新思維——計算模式的轉變。   網際

資料入門學習筆記(貳)- 初識Hadoop

文章目錄 Hadoop概述 Hadoop能做什麼 Hadoop核心元件 分散式檔案系統HDFS 分散式檔案系統HDDS 資源排程系統YARN 分散式計算框架MapReduce Had