大數據學習之路【跟着大神學習】

轉載自:blog.csdn.net/zys_1997/ar…html

前言

1、背景介紹

本人java開發,所以本文最適合從java轉型到大數據。java

2、大數據介紹

大數據本質也是數據,可是又有了新的特徵,包括數據來源廣、數據格式多樣化(結構化數據、非結構化數據、Excel文件、文本文件等)、數據量大(最少也是TB級別的、甚至多是PB級別)、數據增加速度快等。node

針對以上主要的4個特徵,咱們須要考慮如下問題:mysql

1.數據來源廣,該如何採集彙總?,對應出現了Sqoop,Cammel,Datax等工具。linux

2.數據採集以後,該如何存儲?,對應出現了GFS,HDFS,TFS等分佈式文件存儲系統。nginx

3.因爲數據增加速度快,數據存儲就必須能夠水平擴展。git

4.數據存儲以後,該如何經過運算快速轉化成一致的格式,該如何快速運算出本身想要的結果?github

對應的MapReduce這樣的分佈式運算框架解決了這個問題;可是寫MapReduce須要Java代碼量很大,因此出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;web

普通的MapReduce處理數據只能一批一批地處理,時間延遲太長,爲了實現每輸入一條數據就能獲得結果,因而出現了Storm/JStorm這樣的低時延的流式計算框架;算法

可是若是同時須要批處理和流處理,按照如上就得搭兩個集羣,Hadoop集羣(包括HDFS+MapReduce+Yarn)和Storm集羣,不易於管理,因此出現了Spark這樣的一站式的計算框架,既能夠進行批處理,又能夠進行流處理(實質上是微批處理)。

然後Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。

爲了提升工做效率,加快運速度,出現了一些輔助工具:

Ozzie,azkaban: 定時任務調度的工具。

Hue,Zepplin: 圖形化任務執行管理,結果查看工具。

Scala語言: 編寫Spark程序的最佳語言,固然也能夠選擇用Python。

Python語言: 編寫一些腳本時會用到。

Allluxio,Kylin等: 經過對存儲的數據進行預處理,加快運算速度的工具。

以上大體就把整個大數據生態裏面用到的工具所解決的問題列舉了一遍,知道了他們爲何而出現或者說出現是爲了解決什麼問題,進行學習的時候就有的放矢了。

正文

1、大數據相關工做介紹

大數據方向的工做目前主要分爲三個主要方向:

大數據工程師

數據分析師

大數據科學家

其餘(數據挖掘等)

2、大數據工程師的技能要求

附上大數據工程師技能圖:

必須掌握的技能11條:

  1. Java高級(虛擬機、併發)

  2. Linux 基本操做

  3. Hadoop(HDFS+MapReduce+Yarn )

  4. HBase(JavaAPI操做+Phoenix )

  5. Hive(Hql基本操做和原理理解)

  6. Kafka

  7. Storm/JStorm

  8. Scala

  9. Python

  10. Spark (Core+sparksql+Spark streaming )

  11. 輔助小工具(Sqoop/Flume/Oozie/Hue等)

高階技能6條:

  1. 機器學習算法以及mahout庫加MLlib

  2. R語言

  3. Lambda 架構

  4. Kappa架構

  5. Kylin

  6. Alluxio

3、學習路徑

假設天天能夠抽出3個小時的有效學習時間,加上週末天天保證10個小時的有效學習時間;

3個月會有(213+42*10)*3=423小時的學習時間。

第一階段(基礎階段)

1)Linux學習—–20小時

  1. Linux操做系統介紹與安裝。

  2. Linux經常使用命令。

  3. Linux經常使用軟件安裝。

  4. Linux網絡。

  5. 防火牆。

  6. Shell編程等。

官網:www.centos.org/download/

中文社區:www.linuxidc.com/Linux/2017-…

2)Java 高級學習(《深刻理解Java虛擬機》、《Java高併發實戰》)—30小時

  1. 掌握多線程。

  2. 掌握併發包下的隊列。

  3. 瞭解JMS。

  4. 掌握JVM技術。

  5. 掌握反射和動態代理。

官網:www.java.com/zh_CN/

中文社區:www.java-cn.com/index.html

3)Zookeeper學習(能夠參照這篇博客進行學習:www.cnblogs.com/wuxl360/p/5…

  1. Zookeeper分佈式協調服務介紹。

  2. Zookeeper集羣的安裝部署。

  3. Zookeeper數據結構、命令。

  4. Zookeeper的原理以及選舉機制。

官網:zookeeper.apache.org/

中文社區:www.aboutyun.com/forum-149-1…

第二階段(攻堅階段)

4)Hadoop (《Hadoop 權威指南》)—80小時

  1. HDFS

  2. HDFS的概念和特性。

  3. HDFS的shell操做。

  4. HDFS的工做機制。

  5. HDFS的Java應用開發。

  6. MapReduce

  7. 運行WordCount示例程序。

  8. 瞭解MapReduce內部的運行機制。

  9. MapReduce程序運行流程解析。

10.MapTask併發數的決定機制。

  1. MapReduce中的combiner組件應用。

  2. MapReduce中的序列化框架及應用。

  3. MapReduce中的排序。

  4. MapReduce中的自定義分區實現。

  5. MapReduce的shuffle機制。

  6. MapReduce利用數據壓縮進行優化。

  7. MapReduce程序與YARN之間的關係。

  8. MapReduce參數優化。

  9. MapReduce的Java應用開發

官網:hadoop.apache.org/

中文文檔:hadoop.apache.org/docs/r1.0.4…

中文社區:www.aboutyun.com/forum-143-1…

5)Hive(《Hive開發指南》)–20小時

  1. Hive 基本概念

  2. Hive 應用場景。

  3. Hive 與hadoop的關係。

  4. Hive 與傳統數據庫對比。

  5. Hive 的數據存儲機制。

  6. Hive 基本操做

  7. Hive 中的DDL操做。

  8. 在Hive 中如何實現高效的JOIN查詢。

  9. Hive 的內置函數應用。

  10. Hive shell的高級使用方式。

  11. Hive 經常使用參數配置。

  12. Hive 自定義函數和Transform的使用技巧。

  13. Hive UDF/UDAF開發實例。

  14. Hive 執行過程分析及優化策略

官網:hive.apache.org/

中文入門文檔:www.aboutyun.com/thread-1187…

中文社區:www.aboutyun.com/thread-7598…

6)HBase(《HBase權威指南》)—20小時

  1. hbase簡介。

  2. habse安裝。

  3. hbase數據模型。

  4. hbase命令。

  5. hbase開發。

  6. hbase原理。

官網:hbase.apache.org/

中文文檔:abloz.com/hbase/book.…

中文社區:www.aboutyun.com/forum-142-1…

7)Scala(《快學Scala》)–20小時

  1. Scala概述。

  2. Scala編譯器安裝。

  3. Scala基礎。

  4. 數組、映射、元組、集合。

  5. 類、對象、繼承、特質。

  6. 模式匹配和樣例類。

  7. 瞭解Scala Actor併發編程。

  8. 理解Akka。

  9. 理解Scala高階函數。

  10. 理解Scala隱式轉換。

官網:www.scala-lang.org/

初級中文教程:www.runoob.com/scala/scala…

8)Spark (《Spark 權威指南》)—60小時

Spark core

  1. Spark概述。

  2. Spark集羣安裝。

  3. 執行第一個Spark案例程序(求PI)。

/*****************************************************************************/

RDD

  1. RDD概述。

  2. 建立RDD。

  3. RDD編程API(Transformation 和 Action Operations)。

  4. RDD的依賴關係

  5. RDD的緩存

  6. DAG(有向無環圖) /*****************************************************************************/

Spark SQL and DataFrame/DataSet

Spark SQL概述。

DataFrames。

DataFrame經常使用操做。

編寫Spark SQL查詢程序。

Spark Streaming

park Streaming概述。

理解DStream。

DStream相關操做(Transformations 和 Output Operations)。

Structured Streaming

其餘(MLlib and GraphX )

這個部分通常工做中若是不是數據挖掘,機器學習通常用不到,能夠等到須要用到的時候再深刻學習。

官網:spark.apache.org

中文文檔(可是版本有點老):www.gitbook.com/book/aiyanb…

中文社區:www.aboutyun.com/forum-146-1…

9)Python (推薦廖雪峯的博客—www.liaoxuefeng.com/wiki/001431…

10)本身用虛擬機搭建一個集羣,把全部工具都裝上,本身開發一個小demo —30小時

能夠本身用VMware搭建4臺虛擬機,而後安裝以上軟件,搭建一個小集羣(本人親測,I7,64位,16G內存,徹底能夠運行起來,如下附上我學習時用虛擬機搭建集羣的操做文檔)

集羣搭建文檔1.0版本

  1. 集羣規劃

enter image description here

全部須要用到的軟件:

連接:pan.baidu.com/s/1jIlAz2Y 密碼:kyxl

  1. 前期準備

    2.0 系統安裝
     2.1 主機名配置
       2.1.0 vi /etc/sysconfig/network
         NETWORKING=yes
    
       2.1.1 vi /etc/sysconfig/network
         NETWORKING=yes
         HOSTNAME=ys02
    
       2.1.2 vi /etc/sysconfig/network
         NETWORKING=yes
    
       2.1.3 vi /etc/sysconfig/network
         NETWORKING=yes
         HOSTNAME=ys04
    
     2.2 host文件修改
       2.2.0 vi /etc/hosts
         10.1.1.149 ys01
         10.1.1.148 ys02
         10.1.1.146 ys03
         10.1.1.145 ys04
     2.3 關閉防火牆(centos 7默認使用的是firewall,centos 6 默認是iptables)
      
         2.3.0 systemctl stop firewalld.service (中止firewall)
      
         2.3.1 systemctl disable firewalld.service (禁止firewall開機啓動)
      
         2.3.2 firewall-cmd --state (查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)
      
     2.4 免密登陸(ys01 ->ys02,03,04)
         ssh-keygen -t rsa
         ssh-copy-id ys02(隨後輸入密碼)
         ssh-copy-id ys03(隨後輸入密碼)
         ssh-copy-id ys04(隨後輸入密碼)
         ssh ys02(測試是否成功)
         ssh ys03(測試是否成功)
         ssh ys04(測試是否成功)
      
     2.5 系統時區與時間同步
         tzselect(生成日期文件)
         cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(將日期文件copy到本地時間中)
    複製代碼
  2. 軟件安裝

    3.0 安裝目錄規劃(軟件爲全部用戶公用)
      
         3.0.0全部軟件的安裝放到/usr/local/ys/soft目錄下(mkdir /usr/local/ys/soft)
      
         3.0.1全部軟件安裝到/usr/local/ys/app目錄下(mkdir /usr/local/ys/app)
      
      3.1 JDK(jdk1.7)安裝
      
         3.1.1 alt+p 後出現sftp窗口,cd /usr/local/ys/soft,使用sftp上傳tar包到虛機ys01的/usr/local/ys/soft目錄下
      
         3.1.2解壓jdk
           cd /usr/local/ys/soft
             #解壓
             tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/ys/app
      
         3.1.3將java添加到環境變量中
         vim /etc/profile
         #在文件最後添加
         export JAVA_HOME= /usr/local/ys/app/ jdk-7u80
         export PATH=$PATH:$JAVA_HOME/bin
      
         3.1.4 刷新配置
         source /etc/profile
      
     3.2 Zookeeper安裝
      
         3.2.0解壓
         tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ys/app(解壓)
      
         3.2.1 重命名
         mv zookeeper-3.4.5 zookeeper(重命名文件夾zookeeper-3.4.5爲zookeeper)
      
         3.2.2修改環境變量
         vi /etc/profile(修改文件)
         添加內容:
         export ZOOKEEPER_HOME=/usr/local/ys/app/zookeeper
         export PATH=$PATH:$ZOOKEEPER_HOME/bin
      
         3.2.3 從新編譯文件:
         source /etc/profile
         注意:3臺zookeeper都須要修改
      
         3.2.4修改配置文件
         cd zookeeper/conf
         cp zoo_sample.cfg zoo.cfg
         vi zoo.cfg
         添加內容:
         dataDir=/usr/local/ys/app/zookeeper/data
         dataLogDir=/usr/local/ys/app/zookeeper/log
         server.1=ys01:2888:3888 (主機名, 心跳端口、數據端口)
         server.2=ys02:2888:3888
         server.3=ys04:2888:3888
      
         3.2.5 建立文件夾
         cd /usr/local/ys/app/zookeeper/
         mkdir -m 755 data
         mkdir -m 755 log
      
         3.2.6 在data文件夾下新建myid文件,myid的文件內容爲:
         cd data
         vi myid
         添加內容:
             1
         將集羣下發到其餘機器上
         scp -r /usr/local/ys/app/zookeeper ys02:/usr/local/ys/app/
         scp -r /usr/local/ys/app/zookeeper ys04:/usr/local/ys/app/
      
         3.2.7修改其餘機器的配置文件
         到ys02上:修改myid爲:2
         到ys02上:修改myid爲:3
      
         3.2.8啓動(每臺機器)
         zkServer.sh start
         查看集羣狀態
         jps(查看進程)
         zkServer.sh status(查看集羣狀態,主從信息)
      
     3.3 Hadoop(HDFS+Yarn)
      
         3.3.0 alt+p 後出現sftp窗口,使用sftp上傳tar包到虛機ys01的/usr/local/ys/soft目錄下
      
         3.3.1 解壓jdk
           cd /usr/local/ys/soft
             #解壓
             tar -zxvf cenos-7-hadoop-2.6.4.tar.gz -C /usr/local/ys/app
      
         3.3.2 修改配置文件
      
     core-site.xml
    複製代碼

hdfs-site.xml
複製代碼

yarn-sifite.xml
複製代碼

svales
     
    ys02
    ys03
    ys04
     
    3.3.3集羣啓動(嚴格按照下面的步驟)
        3.3.3.1啓動zookeeper集羣(分別在ys0一、ys0二、ys04上啓動zk)
            cd /usr/local/ys/app/zookeeper-3.4.5/bin/
            ./zkServer.sh start
            #查看狀態:一個leader,兩個follower
            ./zkServer.sh status
     
        3.3.3.2啓動journalnode(分別在在mini五、mini六、mini7上執行)
            cd /usr/local/ys/app/hadoop-2.6.4
            sbin/hadoop-daemon.sh start journalnode
            #運行jps命令檢驗,ys0二、ys0三、ys04上多了JournalNode進程
     
        3.3.3.3格式化HDFS
            #在ys01上執行命令:
            hdfs namenode -format
            #格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這裏我配置的是/usr/local/ys/app/hadoop-2.6.4/tmp,而後將/usr/local/ys/app/hadoop-2.6.4/tmp拷貝到ys02的/usr/local/ys/app/hadoop-2.6.4/下。
            scp -r tmp/ ys02:/usr/local/ys /app/hadoop-2.6.4/
            ##也能夠這樣,建議hdfs namenode -bootstrapStandby
     
        3.3.3.4格式化ZKFC(在ys01上執行一次便可)
            hdfs zkfc -formatZK
     
        3.3.3.5啓動HDFS(在ys01上執行)
            sbin/start-dfs.sh
     
        3.3.3.6啓動YARN
            sbin/start-yarn.sh
     
    3.3MySQL-5.6安裝
        略過
     
    3.4 Hive
     
        3.4.1 alt+p 後出現sftp窗口,cd /usr/local/ys/soft,使用sftp上傳tar包到虛機ys01的/usr/local/ys/soft目錄下
     
        3.4.2解壓
        cd /usr/local/ys/soft
    tar -zxvf hive-0.9.0.tar.gz -C /usr/local/ys/app
     
        3.4.3 .配置hive
     
            3.4.3.1配置HIVE_HOME環境變量  vi conf/hive-env.sh 配置其中的$hadoop_home
     
            3.4.3.2配置元數據庫信息   vi  hive-site.xml
複製代碼

添加以下內容:

3.4.4 安裝hive和mysq完成後,將mysql的鏈接jar包拷貝到$HIVE_HOME/lib目錄下
        若是出現沒有權限的問題,在mysql受權(在安裝mysql的機器上執行)
        mysql -uroot -p
        #(執行下面的語句  *.*:全部庫下的全部表   %:任何IP地址或主機均可以鏈接)
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
     
        3.4.5 Jline包版本不一致的問題,須要拷貝hive的lib目錄中jline.2.12.jar的jar包替換掉hadoop中的 /usr/local/ys/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
     
        3.4.6啓動hive
        bin/hive
     
    3.5 Kafka
        3.5.1 下載安裝包
        http://kafka.apache.org/downloads.html
        在linux中使用wget命令下載安裝包
        wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
     
      3.5.2 解壓安裝包
        tar -zxvf /usr/local/ys/soft/kafka_2.11-0.8.2.2.tgz -C /usr/local/ys/app/
    cd /usr/local/ys/app/
    ln -s kafka_2.11-0.8.2.2 kafka
     
      3.5.3 修改配置文件
        cp 
        /usr/local/ys/app/kafka/config/server.properties
       /usr/local/ys/app/kafka/config/server.properties.bak
        vi  /usr/local/ys/kafka/config/server.properties
複製代碼

輸入如下內容:

3.5.4 分發安裝包
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys02: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys03: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys04: /usr/local/ys/app/
        而後分別在各機器上建立軟連
        cd /usr/local/ys/app/
        ln -s kafka_2.11-0.8.2.2 kafka
     
     3.5.5 再次修改配置文件(重要)
       依次修改各服務器上配置文件的的broker.id,分別是0,1,2不得重複。
     
     3.5.6 啓動集羣
        依次在各節點上啓動kafka
        bin/kafka-server-start.sh  config/server.properties
     
    3.6 Spark
     
        3.6.1 alt+p 後出現sftp窗口,cd /usr/local/ys/soft,使用sftp上傳tar包到虛機ys01的/usr/local/ys/soft目錄下
     
        3.6.2  解壓安裝包
    tar -zxvf /usr/local/ys/soft/ spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/ys/app/
     
        3.6.3 修改Spark配置文件(兩個配置文件spark-env.sh和slaves)
        cd /usr/local/ys/soft/spark-1.6.1-bin-hadoop2.6
        進入conf目錄並重命名並修改spark-env.sh.template文件
        cd conf/
        mv spark-env.sh.template spark-env.sh
        vi spark-env.sh
        在該配置文件中添加以下配置
        export JAVA_HOME=/usr/java/jdk1.7.0_45
        export SPARK_MASTER_PORT=7077
        export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ys01,ys02,ys04 -Dspark.deploy.zookeeper.dir=/spark"
        保存退出
        重命名並修改slaves.template文件
        mv slaves.template slaves
        vi slaves
        在該文件中添加子節點所在的位置(Worker節點)
        Ys02
        Ys03
        Ys04
        保存退出
     
        3.6.4 將配置好的Spark拷貝到其餘節點上
        scp -r spark-1.6.1-in-hadoop2.6/ ys02:/usr/local/ys/app
        scp -r spark-1.6.1-bin-hadoop2.6/ ys03:/usr/local/ys/app
        scp -r spark-1.6.1-bin-hadoop2.6/ ys04:/usr/local/ys/app
     
        3.6.5 集羣啓動
        在ys01上執行sbin/start-all.sh腳本
        而後在ys02上執行sbin/start-master.sh啓動第二個Master
     
    3.7 Azkaban
     
        3.7.1 azkaban web服務器安裝
            解壓azkaban-web-server-2.5.0.tar.gz
            命令: tar –zxvf /usr/local/ys/soft/azkaban-web-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
           將解壓後的azkaban-web-server-2.5.0 移動到 azkaban目錄中,並從新命名 webserver
         命令: mv azkaban-web-server-2.5.0 ../azkaban
           cd ../azkaban
            mv azkaban-web-server-2.5.0   webserver
     
         3.7.2 azkaban 執行服器安裝
             解壓azkaban-executor-server-2.5.0.tar.gz
             命令:tar –zxvf /usr/local/ys/soft/azkaban-executor-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
         將解壓後的azkaban-executor-server-2.5.0 移動到 azkaban目錄中,並從新命名 executor
       命令:mv azkaban-executor-server-2.5.0  ../azkaban
       cd ../azkaban
       mv azkaban-executor-server-2.5.0  executor
     
        3.7.3 azkaban腳本導入
            解壓: azkaban-sql-script-2.5.0.tar.gz
            命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz
            將解壓後的mysql 腳本,導入到mysql中:
            進入mysql
            mysql> create database azkaban;
            mysql> use azkaban;
            Database changed
            mysql> source /usr/local/ys/soft/azkaban-2.5.0/create-all-sql-2.5.0.sql;
     
        3.7.4 建立SSL配置
        參考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
        命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
        運行此命令後,會提示輸入當前生成 keystor的密碼及相應信息,輸入的密碼請勞記,信息以下(此處我輸入的密碼爲:123456)
        輸入keystore密碼: 
        再次輸入新密碼:
        您的名字與姓氏是什麼?
        [Unknown]: 
        您的組織單位名稱是什麼?
        [Unknown]: 
        您的組織名稱是什麼?
        [Unknown]: 
        您所在的城市或區域名稱是什麼?
        [Unknown]: 
        您所在的州或省份名稱是什麼?
        [Unknown]: 
        該單位的兩字母國家代碼是什麼
         [Unknown]:  CN
        CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正確嗎?
        [否]:  y
    輸入<jetty>的主密碼(若是和 keystore 密碼相同,按回車): 
    再次輸入新密碼
    完成上述工做後,將在當前目錄生成 keystore 證書文件,將keystore 考貝到 azkaban web服務器根目錄中.如:cp keystore azkaban/webserver
     
        3.7.5 配置文件
        注:先配置好服務器節點上的時區
        先生成時區配置文件Asia/Shanghai,用交互式命令 tzselect 便可
        拷貝該時區文件,覆蓋系統本地時區配置
        cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
     
        3.7.6 azkaban web服務器配置
        進入azkaban web服務器安裝目錄 conf目錄
        修改azkaban.properties文件
        命令vi azkaban.properties
複製代碼

內容說明以下:

*Azkaban Personalization Settings
    azkaban.name=Test               #服務器UI名稱,用於服務器上方顯示的名字
    azkaban.label=My Local Azkaban           #描述
    azkaban.color=#FF3601                         #UI顏色
    azkaban.default.servlet.path=/index                        #
    web.resource.dir=web/                  #默認根web目錄
    default.timezone.id=Asia/Shanghai   #默認時區,已改成亞洲/上海 默認爲美國
     
    *Azkaban UserManager class
    user.manager.class=azkaban.user.XmlUserManager   #用戶權限管理默認類
    user.manager.xml.file=conf/azkaban-users.xml   #用戶配置,具體配置參加下文
     
    *Loader for projects
    executor.global.properties=conf/global.properties   # global配置文件所在位置
    azkaban.project.dir=projects      #
     
    database.type=mysql                 #數據庫類型
    mysql.port=3306                     #端口號
    mysql.host=localhost                  #數據庫鏈接IP
    mysql.database=azkaban              #數據庫實例名
    mysql.user=root                     #數據庫用戶名
    mysql.password=Root123456           #數據庫密碼
    mysql.numconnections=100             #最大鏈接數
     
    * Velocity dev mode
    velocity.dev.mode=false
    
    * Jetty服務器屬性.
    jetty.maxThreads=25                 #最大線程數
    jetty.ssl.port=8443                 #Jetty SSL端口
    jetty.port=8081                     #Jetty端口
    jetty.keystore=keystore             #SSL文件名
    jetty.password=123456               #SSL文件密碼
    jetty.keypassword=123456            #Jetty主密碼 與 keystore文件相同
    jetty.truststore=keystore           #SSL文件名
    jetty.trustpassword=123456           # SSL文件密碼
     
    * 執行服務器屬性
    executor.port=12321             #執行服務器端
     
    *郵件設置
    mail.sender=xxxxxxxx@163.com         #發送郵箱
    mail.host=smtp.163.com              #發送郵箱smtp地址
    mail.user=xxxxxxxx                   #發送郵件時顯示的名稱
    mail.password=**********             #郵箱密碼
    job.failure.email=xxxxxxxx@163.com  #任務失敗時發送郵件的地址
    job.success.email=xxxxxxxx@163.com   #任務成功時發送郵件的地址
    lockdown.create.projects=false       #
    cache.directory=cache      
    
    #緩存目錄
             3.7.7azkaban 執行服務器executor配置
             進入執行服務器安裝目錄conf,修改azkaban.properties
             vi azkaban.properties
    *Azkaban
    default.timezone.id=Asia/Shanghai              #時區
     
    * Azkaban JobTypes 插件配置
    azkaban.jobtype.plugin.dir=plugins/jobtypes   #jobtype 插件所在位置
     
    *Loader for projects
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
     
   *數據庫設置
    database.type=mysql                     #數據庫類型(目前只支持mysql)
    mysql.port=3306                         #數據庫端口號
    mysql.host=192.168.20.200               #數據庫IP地址
    mysql.database=azkaban                  #數據庫實例名
    mysql.user=root                         #數據庫用戶名
    mysql.password=Root23456                #數據庫密碼
    mysql.numconnections=100                #最大鏈接數
     
    *執行服務器配置
    executor.maxThreads=50                  #最大線程數
    executor.port=12321                     #端口號(如修改,請與web服務中一致)
    executor.flow.threads=30 
複製代碼

/*****************************************************************************************/

3.7.8用戶配置
        進入azkaban web服務器conf目錄,修改azkaban-users.xml
        vi azkaban-users.xml 增長 管理員用戶
複製代碼

3.7.9 web服務器啓動
        在azkaban web服務器目錄下執行啓動命令
        bin/azkaban-web-start.sh
        注:在web服務器根目錄運行
        或者啓動到後臺
        nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &
     
        3.7.10執行服務器啓動
     
        在執行服務器目錄下執行啓動命令
        bin/azkaban-executor-start.sh
        注:只能要執行服務器根目錄運行
     
        啓動完成後,在瀏覽器(建議使用谷歌瀏覽器)中輸入https://服務器IP地址:8443 ,便可訪問azkaban服務了.在登陸中輸入剛纔新的戶用名及密碼,點擊 login
     
    3.8 Zeppelin
    參照以下文件:
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915817
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915962
     
    3.9 HBase
        3.9.1解壓
        tar –zxvf  /usr/local/ys/soft/hbase-0.99.2-bin.tar.gz  -C /usr/local/ys/app
     
        3.9.2重命名
        cd  /usr/local/ys/app
        mv hbase-0.99.2 hbase
     
        3.9.3修改配置文件
         每一個文件的解釋以下:
        hbase-env.sh
        export JAVA_HOME=/usr/local/ys/app/jdk1.7.0_80   //jdk安裝目錄
        export HBASE_CLASSPATH=/usr/local/ys/app/hadoop-2.6.4/etc/hadoop  //hadoop配置文件的位置
        export HBASE_MANAGES_ZK=false #若是使用獨立安裝的zookeeper這個地方就是false(此處使用本身的zookeeper)
     
    hbase-site.xml
複製代碼

Regionservers    //是從機器的域名
    Ys02
    ys03
    ys04
     
    注:此處HBase配置是針對HA模式的hdfs
     
        3.9.4將Hadoop的配置文件hdfs-site.xml和core-site.xml拷貝到HBase配置文件中
        cp /usr/local/ys/app/Hadoop-2.6.4/etc/hadoop/hdfs-site.xml /usr/local/ys/app/hbase/conf
        cp /usr/local/ys/app/hadoop-2.6.4/etc/hadoop/core-site.xml /usr/local/ys/app/hbase/conf
     
        3.9.5發放到其餘機器
        scp –r /usr/local/ys/app/hbase ys02: /usr/local/ys/app
        scp –r /usr/local/ys/app/hbase ys03: /usr/local/ys/app
        scp –r /usr/local/ys/app/hbase ys04: /usr/local/ys/app
     
        3.9.6啓動
        cd  /usr/local/ys/app/hbase/bin
        ./ start-hbase.sh
     
        3.9.7查看
        進程:jps
        進入hbase的shell:hbase shell
        退出hbase的shell:quit
        頁面:http://master:60010/ 
     
    3.10KAfkaOffsetMonitor(Kafka集羣的監控程序,本質就是一個jar包)
     
        3.10.1上傳jar包
        略
     
    3.10.2 運行jar包
    nohup java -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk ys01,ys02,ys04 --refresh 5.minutes --retain 1.day --port 8089 $
複製代碼
  1. 集羣調優

    4.1 輔助工具儘可能不安裝到數據或者運算節點,避免佔用過多計算或內存資源。
      
     4.2 dataNode和spark的slave節點儘可能在一塊兒;這樣運算的時候就能夠避免經過網絡拉取數據,加快運算速度。
      
     4.3 Hadoop集羣機架感知配置,配置以後可使得數據在同機架的不一樣機器2份,而後其餘機架機器1份,但是兩臺機器四臺虛機沒有必要配感知我的感受。
      
     4.4 配置參數調優
     能夠參考http://blog.csdn.net/chndata/article/details/46003399
    複製代碼

第三階段(輔助工具工學習階段)

11)Sqoop(CSDN,51CTO ,以及官網)—20小時

數據導出概念介紹

Sqoop基礎知識

Sqoop原理及配置說明

Sqoop數據導入實戰

Sqoop數據導出實戰、

Sqoop批量做業操做

推薦學習博客:student-lp.iteye.com/blog/215798…

官網:sqoop.apache.org/

12)Flume(CSDN,51CTO ,以及官網)—20小時

FLUME日誌採集框架介紹。

FLUME工做機制。

FLUME核心組件。

FLUME參數配置說明。

FLUME採集nginx日誌案例(案例必定要實踐一下)

推薦學習博客:www.aboutyun.com/thread-8917…

官網:flume.apache.org

13)Oozie(CSDN,51CTO ,以及官網)–20小時

任務調度系統概念介紹。

經常使用任務調度工具比較。

Oozie介紹。

Oozie核心概念。

Oozie的配置說明。

Oozie實現mapreduce/hive等任務調度實戰案例。

推薦學習博客:www.infoq.com/cn/articles…

官網:oozie.apache.org/

14)Hue(CSDN,51CTO ,以及官網)–20小時

推薦學習博客:ju.outofmemory.cn/entry/10516…

官網:gethue.com/

第四階段(不斷學習階段)

天天都會有新的東西出現,須要關注最新技術動態,不斷學習。任何通常技術都是先學習理論,而後在實踐中不斷完善理論的過程。

備註

1)若是你以爲本身看書效率太慢,你能夠網上搜集一些課程,跟着課程走也OK 。若是看書效率不高就很網課,相反的話就本身看書。

2)企業目前更傾向於使用Spark進行微批處理,Storm只有在對時效性要求極高的狀況下,纔會使用,因此能夠作了解。重點學習Spark Streaming。

3)快速學習的能力、解決問題的能力、溝通能力**真的很重要。

4)要善於使用StackOverFlow和Google(遇到解決不了的問題,先Google,若是Google找不到解決方能就去StackOverFlow提問,通常印度三哥都會在2小時內回答你的問題)。

/*

5)視頻課程推薦:

能夠去萬能的淘寶購買一些視頻課程,你輸入「大數據視頻課程」,會出現不少,多購買幾份(100塊之內能夠搞定),而後選擇一個適合本身的。我的認爲小象學院的董西成和陳超的課程含金量會比較高。\

*/

4、持續學習資源推薦

Apache 官網(apache.org/)

Stackoverflow(stackoverflow.com/)

Github(github.com/)

Cloudra官網(www.cloudera.com/)

Databrick官網(databricks.com/)

About 雲 :www.aboutyun.com/

CSDN,51CTO (www.csdn.net/,http://www…

至於書籍噹噹一搜會有不少,其實內容都差很少。

相關文章
相關標籤/搜索