入門級別的大數據技術學習路徑

来源:https://www.cnblogs.com/baiyanfei502/archive/2018/08/11/9459099.html
-Advertisement-
Play Games

大數據介紹 大數據本質也是數據,但是又有了新的特征,包括數據來源廣、數據格式多樣化(結構化數據、非結構化數據、Excel文件、文本文件等)、數據量大(最少也是TB級別的、甚至可能是PB級別)、數據增長速度快等。 針對以上主要的4個特征我們需要考慮以下問題: 數據來源廣,該如何採集彙總?,對應出現了S ...


大數據介紹

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

針對以上主要的4個特征我們需要考慮以下問題:

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

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

  3. 由於數據增長速度快,數據存儲就必須可以水平擴展。

  4. 數據存儲之後,該如何通過運算快速轉化成一致的格式,該如何快速運算出自己想要的結果?

    對應的MapReduce這樣的分散式運算框架解決了這個問題;但是寫MapReduce需要Java代碼量很大,所以出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;

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

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

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

  6. 為了提高工作效率,加快運速度,出現了一些輔助工具:

    • Ozzie,azkaban:定時任務調度的工具。
    • Hue,Zepplin:圖形化任務執行管理,結果查看工具。
    • Scala語言:編寫Spark程式的最佳語言,當然也可以選擇用Python。
    • Python語言:編寫一些腳本時會用到。
    • Allluxio,Kylin等:通過對存儲的數據進行預處理,加快運算速度的工具。

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

推薦一個大數據學習群 119599574每天晚上20:10都有一節【免費的】大數據直播課程,專註大數據分析方法,大數據編程,大數據倉庫,大數據案例,人工智慧,數據挖掘都是純乾貨分享,

正文

一、大數據相關工作介紹

大數據方向的工作目前主要分為三個主要方向:

  1. 大數據工程師
  2. 數據分析師
  3. 大數據科學家
  4. 其他(數據挖掘等)

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

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

enter image description here

必須掌握的技能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個小時的有效學習時間,加上周末每天保證10個小時的有效學習時間;

3個月會有(21*3+4*2*10)*3=423小時的學習時間。

第一階段(基礎階段)

1)Linux學習—–20小時

  1. Linux操作系統介紹與安裝。
  2. Linux常用命令。
  3. Linux常用軟體安裝。
  4. Linux網路。
  5. 防火牆。
  6. Shell編程等。

 

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

  1. 掌握多線程。
  2. 掌握併發包下的隊列。
  3. 瞭解JMS。
  4. 掌握JVM技術。
  5. 掌握反射和動態代理。

 

3)Zookeeper學習

  1. Zookeeper分散式協調服務介紹。
  2. Zookeeper集群的安裝部署。
  3. Zookeeper數據結構、命令。
  4. Zookeeper的原理以及選舉機制。

 

第二階段(攻堅階段)

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

  1. HDFS

    • HDFS的概念和特性。
    • HDFS的shell操作。
    • HDFS的工作機制。
    • HDFS的Java應用開發。
  2. MapReduce

    • 運行WordCount示常式序。
    • 瞭解MapReduce內部的運行機制。 
      • MapReduce程式運行流程解析。
      • MapTask併發數的決定機制。
      • MapReduce中的combiner組件應用。
      • MapReduce中的序列化框架及應用。
      • MapReduce中的排序。
      • MapReduce中的自定義分區實現。
      • MapReduce的shuffle機制。
      • MapReduce利用數據壓縮進行優化。
      • MapReduce程式與YARN之間的關係。
      • MapReduce參數優化。
  3. MapReduce的Java應用開發

 

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

  1. Hive 基本概念

    • Hive 應用場景。
    • Hive 與hadoop的關係。
    • Hive 與傳統資料庫對比。
    • Hive 的數據存儲機制。
  2. Hive 基本操作

    • Hive 中的DDL操作。
    • 在Hive 中如何實現高效的JOIN查詢。
    • Hive 的內置函數應用。
    • Hive shell的高級使用方式。
    • Hive 常用參數配置。
    • Hive 自定義函數和Transform的使用技巧。
    • Hive UDF/UDAF開發實例。
  3. Hive 執行過程分析及優化策略

 

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

  1. hbase簡介。
  2. habse安裝。
  3. hbase數據模型。
  4. hbase命令。
  5. hbase開發。
  6. hbase原理。

 

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

  1. Scala概述。
  2. Scala編譯器安裝。
  3. Scala基礎。
  4. 數組、映射、元組、集合。
  5. 類、對象、繼承、特質。
  6. 模式匹配和樣例類。
  7. 瞭解Scala Actor併發編程。
  8. 理解Akka。
  9. 理解Scala高階函數。
  10. 理解Scala隱式轉換。

 

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

enter image description here

  1. Spark core

    • Spark概述。
    • Spark集群安裝。
    • 執行第一個Spark案常式序(求PI)。
  2. RDD

    enter image description here

    • RDD概述。
    • 創建RDD。
    • RDD編程API(Transformation 和 Action Operations)。
    • RDD的依賴關係
    • RDD的緩存
    • DAG(有向無環圖)
  3. Spark SQL and DataFrame/DataSet

    enter image description here

    • Spark SQL概述。
    • DataFrames。
    • DataFrame常用操作。
    • 編寫Spark SQL查詢程式。
  4. Spark Streaming

    enter image description here

    enter image description here

    • park Streaming概述。
    • 理解DStream。
    • DStream相關操作(Transformations 和 Output Operations)。
  5. Structured Streaming

  6. 其他(MLlib and GraphX )

這個部分一般工作中如果不是數據挖掘,機器學習一般用不到,可以等到需要用到的時候再深入學習。

 

9)Python —30小時

10)自己用虛擬機搭建一個集群,把所有工具都裝上,自己開發一個小demo —30小時

可以自己用VMware搭建4台虛擬機,然後安裝以上軟體,搭建一個小集群(本人親測,I7,64位,16G記憶體,完全可以運行起來,以下附上我學習時用虛擬機搭建集群的操作文檔)


集群搭建文檔1.0版本

1. 集群規劃

enter image description here

xl

2. 前期準備

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到本地時間中)

 

 

3. 軟體安裝

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

 

enter image description here

hdfs-site.xml
  • 1
  • 2

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

yarn-sifite.xml
  • 1
  • 2

enter image description here

svales

ys02
ys03
ys04

3.3.3集群啟動(嚴格按照下麵的步驟)
    3.3.3.1啟動zookeeper集群(分別在ys01、ys02、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(分別在在mini5、mini6、mini7上執行)
        cd /usr/local/ys/app/hadoop-2.6.4
        sbin/hadoop-daemon.sh start journalnode
        #運行jps命令檢驗,ys02、ys03、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 

 

 

添加如下內容:

enter image description here

enter image description here

    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

 

輸入以下內容:

enter image description here

    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 增加 管理員用戶

 

 

enter image description here

    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

 

enter image description here

enter image description here

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 $

4. 集群調優

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小時

enter image description here

  1. 數據導出概念介紹
  2. Sqoop基礎知識
  3. Sqoop原理及配置說明
  4. Sqoop數據導入實戰
  5. Sqoop數據導出實戰、
  6. Sqoop批量作業操作



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

enter image description here

  1. FLUME日誌採集框架介紹。
  2. FLUME工作機制。
  3. FLUME核心組件。
  4. FLUME參數配置說明。
  5. FLUME採集nginx日誌案例(案例一定要實踐一下)

 

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

enter image description here

  1. 任務調度系統概念介紹。
  2. 常用任務調度工具比較。
  3. Oozie介紹。
  4. Oozie核心概念。
  5. Oozie的配置說明。
  6. Oozie實現mapreduce/hive等任務調度實戰案例。

 

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

 

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

每天都會有新的東西出現,需要關註最新技術動態,不斷學習。任何一般技術都是先學習理論,然後在實踐中不斷完善理論的過程。

備註

1)如果你覺得自己看書效率太慢,你可以網上搜集一些課程,跟著課程走也OK 。如果看書效率不高就很網課,相反的話就自己看書。

2)企業目前更傾向於使用Spark進行微批處理,Storm只有在對時效性要求極高的情況下,才會使用,所以可以做瞭解。重點學習Spark Streaming。

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

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

5)視頻課程推薦:

可以去萬能的淘寶購買一些視頻課程,你輸入“大數據視頻課程”,會出現很多,多購買幾份(100塊以內可以搞定),然後選擇一個適合自己的。個人認為小象學院的董西成和陳超的課程含金量會比較高。

四、持續學習資源推薦

  1. Apache 官網(
  2. Github
  3. Cloudra官網(
  4. Databrick官網
  5. CSDN,51CTO 

五、項目案例分析

1)點擊流日誌項目分析(此處借鑒CSDN博主的文章,由於沒有授權,所以就沒有貼過來,下麵附上鏈接)—-批處理

http://blog.csdn.net/u014033218/article/details/76847263

2)Spark Streaming在京東的項目實戰(京東的實戰案例值得好好研究一下,由於沒有授權,所以就沒有貼過來,下麵附上鏈接)—實時處理 
http://download.csdn.net/download/csdndataid_123/8079233

最後但卻很重要一點:每天都會有新的技術出現,要多關註技術動向,持續學習。

以上內容不保證一年以後仍適用。

【GitChat達人課】

    1. 前端惡棍 · 大漠窮秋 :《Angular 初學者快速上手教程 
    2. Python 中文社區聯合創始人 · Zoom.Quiet :《GitQ: GitHub 入味兒 
    3. 前端顏值擔當 · 餘博倫:《如何從零學習 React 技術棧 
    4. GA 最早期使用者 · GordonChoi:《GA 電商數據分析實踐課
    5. 技術總監及合伙人 · 楊彪:《Gradle 從入門到實戰
    6. 混元霹靂手 · 江湖前端:《Vue 組件通信全揭秘
    7. 知名互聯網公司安卓工程師 · 張拭心:《安卓工程師跳槽面試全指南

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 占座 ...
  • 1.安裝和配置Docker 伺服器版本阿裡雲CentOS7.4 docker版本18.06.0-ce docker安裝步驟https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1 下載mysql鏡像 啟動兩 ...
  • 1 創建topic: kafka-topics.sh --create --zookeeper 3.3.3.3:2181 --replication-factor 1 --partitions 3 --topic test_one replication-factor 副本的個數 (因為創建的副本都 ...
  • 差異備份 (differential backup)定義 一種數據備份,基於完整資料庫或部分資料庫或一組數據文件或文件組(差異基準)的最新完整備份,並且僅包含自確定差異基準以來發生更改的數據。 使用SSMS資料庫管理工具進行資料庫差異備份 1、選擇資料庫-》右鍵點擊-》選擇任務-》選擇備份。 2、在 ...
  • 1.數據 --創建職員表create table tbEmp( eID number primary key, --職員編號 eName varchar2(20) not null, --職員姓名 eSex varchar2(2) not null --職員性別 check(esex in ('男' ...
  • 一.概述 與網路I/O相關的等待的主要是ASYNC_NETWORK_IO,是指當sql server返回數據結果集給客戶端的時候,會先將結果集填充到輸出緩存里(ouput cache),同時網路層會開始將輸出緩存里的數據打包,由客戶端接收。如果客戶端接收數據包慢,sql server沒有地方存放新數 ...
  • 一、問題 今天遇到了一個神奇的問題——表中有數據,但select count( )的結果為0。 這個問題最初的表現形式是“查詢報表沒有分頁”。 最開始還以為是java端的問題。後來才發現,查分頁的sql語句是返回0的。 隨後將該sql語句放到PLSQL里運行,發現也是返回0條。 資料庫版本是 Ora ...
  • 刪除已經創建的topic 刪除toipc主要使用:kafka-topics --delete --zookeeper zkip:zkport --topic topicname命令刪除;但是如果server.properties文件中delete.topic.enable設置的值是false(預設f ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...