日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

當(dāng)我說要做大數(shù)據(jù)工程師時他們都笑我,直到三個月后……

 imnobody2001 2018-02-14


本文來自作者 孫啟誠 在 GitChat 上分享「三個月大數(shù)據(jù)工程師學(xué)習(xí)計劃」,閱讀原文」查看交流實錄

文末高能

編輯 | 花輪同學(xué)

申明:

本文旨在為普通程序員(Java程序員最佳)提供一個入門級別的大數(shù)據(jù)技術(shù)學(xué)習(xí)路徑,不適用于大數(shù)據(jù)工程師的進階學(xué)習(xí),也不適用于零編程基礎(chǔ)的同學(xué)。

前言

一、背景介紹

本人目前是一名大數(shù)據(jù)工程師,項目數(shù)據(jù)50T,日均數(shù)據(jù)增長20G左右,個人是從 Java 后端開發(fā),經(jīng)過3個月的業(yè)余自學(xué)成功轉(zhuǎn)型大數(shù)據(jù)工程師。

二、大數(shù)據(jù)介紹

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

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

  1. 數(shù)據(jù)來源廣,該如何采集匯總?,對應(yīng)出現(xiàn)了Sqoop,Cammel,Datax等工具。

  2. 數(shù)據(jù)采集之后,該如何存儲?,對應(yīng)出現(xiàn)了GFS,HDFS,TFS等分布式文件存儲系統(tǒng)。

  3. 由于數(shù)據(jù)增長速度快,數(shù)據(jù)存儲就必須可以水平擴展。

  4. 數(shù)據(jù)存儲之后,該如何通過運算快速轉(zhuǎn)化成一致的格式,該如何快速運算出自己想要的結(jié)果?

    對應(yīng)的 MapReduce 這樣的分布式運算框架解決了這個問題;但是寫 MapReduce 需要 Java 代碼量很大,所以出現(xiàn)了 Hive,Pig 等將 SQL 轉(zhuǎn)化成 MapReduce 的解析引擎;

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

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

  5. 而后 Lambda 架構(gòu),Kappa 架構(gòu)的出現(xiàn),又提供了一種業(yè)務(wù)處理的通用架構(gòu)。

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

    • Ozzie,azkaban:定時任務(wù)調(diào)度的工具。

    • Hue,Zepplin:圖形化任務(wù)執(zhí)行管理,結(jié)果查看工具。

    • Scala 語言:編寫 Spark 程序的最佳語言,當(dāng)然也可以選擇用 Python。

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

    • Allluxio,Kylin 等:通過對存儲的數(shù)據(jù)進行預(yù)處理,加快運算速度的工具。

以上大致就把整個大數(shù)據(jù)生態(tài)里面用到的工具所解決的問題列舉了一遍,知道了他們?yōu)槭裁炊霈F(xiàn)或者說出現(xiàn)是為了解決什么問題,進行學(xué)習(xí)的時候就有的放矢了。

正文

一、大數(shù)據(jù)相關(guān)工作介紹

大數(shù)據(jù)方向的工作目前主要分為三個主要方向:

  1. 大數(shù)據(jù)工程師

  2. 數(shù)據(jù)分析師

  3. 大數(shù)據(jù)科學(xué)家

  4. 其他(數(shù)據(jù)挖掘等)

二、大數(shù)據(jù)工程師的技能要求

附上大數(shù)據(jù)工程師技能圖:

必須掌握的技能11條

  1. Java高級(虛擬機、并發(fā))

  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. 機器學(xué)習(xí)算法以及 mahout 庫加 MLlib

  2. R 語言

  3. Lambda 架構(gòu)

  4. Kappa架構(gòu)

  5. Kylin

  6. Alluxio

三、學(xué)習(xí)路徑

假設(shè)每天可以抽出3個小時的有效學(xué)習(xí)時間,加上周末每天保證10個小時的有效學(xué)習(xí)時間;

3個月會有(213+4210)3=423小時的學(xué)習(xí)時間。

第一階段(基礎(chǔ)階段)

1)Linux 學(xué)習(xí)(跟鳥哥學(xué)就ok了)——-20小時

  1. Linux 操作系統(tǒng)介紹與安裝。

  2. Linux 常用命令。

  3. Linux 常用軟件安裝。

  4. Linux 網(wǎng)絡(luò)。

  5. 防火墻。

  6. Shell 編程等。

官網(wǎng):https://www./download/
中文社區(qū):http://www./Linux/2017-09/146919.htm

2)Java 高級學(xué)習(xí)(《深入理解Java虛擬機》、《Java高并發(fā)實戰(zhàn)》)—-30小時

  1. 掌握多線程。

  2. 掌握并發(fā)包下的隊列。

  3. 了解 JMS。

  4. 掌握 JVM 技術(shù)。

  5. 掌握反射和動態(tài)代理。

官網(wǎng):https://www./zh_CN/
中文社區(qū):http://www./index.html

3)Zookeeper學(xué)習(xí)(可以參照這篇博客進行學(xué)習(xí):http://www.cnblogs.com/wuxl360/p/5817471.html

  1. Zookeeper 分布式協(xié)調(diào)服務(wù)介紹。

  2. Zookeeper 集群的安裝部署。

  3. Zookeeper 數(shù)據(jù)結(jié)構(gòu)、命令。

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

官網(wǎng):http://zookeeper./
中文社區(qū):http://www./forum-149-1.html

第二階段(攻堅階段)

4)Hadoop (《Hadoop 權(quán)威指南》)—-80小時

  1. HDFS

  • HDFS 的概念和特性。

  • HDFS 的 shell 操作。

  • HDFS 的工作機制。

  • HDFS 的 Java 應(yīng)用開發(fā)。

  1. MapReduce

    • MapReduce 程序運行流程解析。

    • MapTask 并發(fā)數(shù)的決定機制。

    • MapReduce 中的 combiner 組件應(yīng)用。

    • MapReduce 中的序列化框架及應(yīng)用。

    • MapReduce 中的排序。

    • MapReduce 中的自定義分區(qū)實現(xiàn)。

    • MapReduce 的 shuffle 機制。

    • MapReduce 利用數(shù)據(jù)壓縮進行優(yōu)化。

    • MapReduce 程序與 YARN 之間的關(guān)系。

    • MapReduce 參數(shù)優(yōu)化。

    • 運行 WordCount 示例程序。

    • 了解 MapReduce 內(nèi)部的運行機制。

  2. MapReduce 的 Java 應(yīng)用開發(fā)

官網(wǎng):http://hadoop./
中文文檔:http://hadoop./docs/r1.0.4/cn/
中文社區(qū):http://www./forum-143-1.html

5)Hive(《Hive開發(fā)指南》)—20小時

  1. Hive 基本概念

    • Hive 應(yīng)用場景。

    • Hive 與 hadoop 的關(guān)系。

    • Hive 與傳統(tǒng)數(shù)據(jù)庫對比。

    • Hive 的數(shù)據(jù)存儲機制。

  2. Hive 基本操作

    • Hive 中的DDL 操作。

    • 在 Hive 中如何實現(xiàn)高效的 JOIN 查詢。

    • Hive 的內(nèi)置函數(shù)應(yīng)用。

    • Hive shell 的高級使用方式。

    • Hive 常用參數(shù)配置。

    • Hive 自定義函數(shù)和 Transform 的使用技巧。

    • Hive UDF/UDAF 開發(fā)實例。

  3. Hive 執(zhí)行過程分析及優(yōu)化策略

官網(wǎng):https://hive./
中文入門文檔:http://www./thread-11873-1-1.html
中文社區(qū):http://www./thread-7598-1-1.html
 

6)HBase(《HBase 權(quán)威指南》)—-20小時

  1. hbase 簡介。

  2. habse 安裝。

  3. hbase 數(shù)據(jù)模型。

  4. hbase 命令。

  5. hbase 開發(fā)。

  6. hbase 原理。

官網(wǎng):http://hbase./
中文文檔:http:///hbase/book.html
中文社區(qū):http://www./forum-142-1.html  

7)Scala(《快學(xué)Scala》)—20小時

  1. Scala 概述。

  2. Scala 編譯器安裝。

  3. Scala 基礎(chǔ)。

  4. 數(shù)組、映射、元組、集合。

  5. 類、對象、繼承、特質(zhì)。

  6. 模式匹配和樣例類。

  7. 了解 Scala Actor 并發(fā)編程。

  8. 理解 Akka。

  9. 理解 Scala 高階函數(shù)。

  10. 理解 Scala 隱式轉(zhuǎn)換。

官網(wǎng):http://www./
初級中文教程:http://www.runoob.com/scala/scala-tutorial.html

8)Spark (《Spark 權(quán)威指南》)—-60小時

  1. Spark core

    • Spark概述。

    • Spark集群安裝。

    • 執(zhí)行第一個Spark案例程序(求PI)。

  2. RDD

    • RDD 概述。

    • 創(chuàng)建 RDD。

    • RDD 編程 API(Transformation 和 Action Operations)。

    • RDD 的依賴關(guān)系

    • RDD 的緩存

    • DAG(有向無環(huán)圖)

  3. Spark SQL and DataFrame/DataSet


    • Spark SQL 概述。

    • DataFrames。

    • DataFrame 常用操作。

    • 編寫 Spark SQL 查詢程序。

  4. Spark Streaming


    • park Streaming 概述。

    • 理解 DStream。

    • DStream 相關(guān)操作(Transformations 和 Output Operations)。

  5. Structured Streaming

  6. 其他(MLlib and GraphX )

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

官網(wǎng):http://spark.
中文文檔(但是版本有點老):https://www./book/aiyanbo/spark-programming-guide-zh-cn/details
中文社區(qū):http://www./forum-146-1.html
 

9)Python (推薦廖雪峰的博客)—-30小時

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

可以自己用VMware搭建4臺虛擬機,然后安裝以上軟件,搭建一個小集群(本人親測,I7,64位,16G內(nèi)存,完全可以運行起來,以下附上我學(xué)習(xí)時用虛擬機搭建集群的操作文檔)

集群搭建文檔1.0版本

1. 集群規(guī)劃   

所有需要用到的軟件:

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

2. 前期準備

2.0 系統(tǒng)安裝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=ys042.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 ys042.3 關(guān)閉防火墻(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 (查看默認防火墻狀態(tài)(關(guān)閉后顯示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 系統(tǒng)時區(qū)與時間同步    tzselect(生成日期文件)    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(將日期文件copy到本地時間中)

3. 軟件安裝

3.0 安裝目錄規(guī)劃(軟件為所有用戶公用)    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 后出現(xiàn)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添加到環(huán)境變量中    vim /etc/profile    #在文件最后添加    export JAVA_HOME= /usr/local/ys/app/ jdk-7u80    export PATH=$PATH:$JAVA_HOME/bin    3.1.4 刷新配置    source /etc/profile3.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修改環(huán)境變量    vi /etc/profile(修改文件)    添加內(nèi)容:    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    添加內(nèi)容:    dataDir=/usr/local/ys/app/zookeeper/data    dataLogDir=/usr/local/ys/app/zookeeper/log    server.1=ys01:2888:3888 (主機名, 心跳端口、數(shù)據(jù)端口)    server.2=ys02:2888:3888    server.3=ys04:2888:3888    3.2.5 創(chuàng)建文件夾    cd /usr/local/ys/app/zookeeper/    mkdir -m 755 data    mkdir -m 755 log    3.2.6 在data文件夾下新建myid文件,myid的文件內(nèi)容為:    cd data    vi myid    添加內(nèi)容:        1    將集群下發(fā)到其他機器上    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修改其他機器的配置文件    到y(tǒng)s02上:修改myid為:2    到y(tǒng)s02上:修改myid為:3    3.2.8啟動(每臺機器)    zkServer.sh start    查看集群狀態(tài)    jps(查看進程)    zkServer.sh status(查看集群狀態(tài),主從信息)3.3 Hadoop(HDFS+Yarn)    3.3.0 alt+p 后出現(xiàn)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

svalesys02ys03ys043.3.3集群啟動(嚴格按照下面的步驟)    3.3.3.1啟動zookeeper集群(分別在ys01、ys02、ys04上啟動zk)        cd /usr/local/ys/app/zookeeper-3.4.5/bin/        ./zkServer.sh start        #查看狀態(tài):一個leader,兩個follower        ./zkServer.sh status    3.3.3.2啟動journalnode(分別在在mini5、mini6、mini7上執(zhí)行)        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上執(zhí)行命令:        hdfs namenode -format        #格式化后會在根據(jù)core-site.xml中的hadoop.tmp.dir配置生成個文件,這里我配置的是/usr/local/ys/app/hadoop-2.6.4/tmp,然后將/usr/local/ys/app/hadoop-2.6.4/tmp拷貝到y(tǒng)s02的/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上執(zhí)行一次即可)        hdfs zkfc -formatZK    3.3.3.5啟動HDFS(在ys01上執(zhí)行)        sbin/start-dfs.sh    3.3.3.6啟動YARN        sbin/start-yarn.sh3.3MySQL-5.6安裝    略過3.4 Hive    3.4.1 alt+p 后出現(xiàn)sftp窗口,cd /usr/local/ys/soft,使用sftp上傳tar包到虛機ys01的/usr/local/ys/soft目錄下    3.4.2解壓    cd /usr/local/ys/softtar -zxvf hive-0.9.0.tar.gz -C /usr/local/ys/app    3.4.3 .配置hive        3.4.3.1配置HIVE_HOME環(huán)境變量  vi conf/hive-env.sh 配置其中的$hadoop_home        3.4.3.2配置元數(shù)據(jù)庫信息   vi  hive-site.xml

添加如下內(nèi)容:

   3.4.4 安裝hive和mysq完成后,將mysql的連接jar包拷貝到$HIVE_HOME/lib目錄下    如果出現(xiàn)沒有權(quán)限的問題,在mysql授權(quán)(在安裝mysql的機器上執(zhí)行)    mysql -uroot -p    #(執(zhí)行下面的語句  *.*:所有庫下的所有表   %:任何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/hive3.5 Kafka    3.5.1 下載安裝包    http://kafka./downloads.html    在linux中使用wget命令下載安裝包    wget http://mirrors./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

輸入以下內(nèi)容:

   3.5.4 分發(fā)安裝包    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/    然后分別在各機器上創(chuàng)建軟連    cd /usr/local/ys/app/    ln -s kafka_2.11-0.8.2.2 kafka 3.5.5 再次修改配置文件(重要)   依次修改各服務(wù)器上配置文件的的broker.id,分別是0,1,2不得重復(fù)。 3.5.6 啟動集群    依次在各節(jié)點上啟動kafka    bin/kafka-server-start.sh  config/server.properties3.6 Spark    3.6.1 alt+p 后出現(xiàn)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    在該文件中添加子節(jié)點所在的位置(Worker節(jié)點)    Ys02    Ys03    Ys04    保存退出    3.6.4 將配置好的Spark拷貝到其他節(jié)點上    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上執(zhí)行sbin/start-all.sh腳本    然后在ys02上執(zhí)行sbin/start-master.sh啟動第二個Master3.7 Azkaban    3.7.1 azkaban web服務(wù)器安裝        解壓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 執(zhí)行服器安裝         解壓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腳本導(dǎo)入        解壓: azkaban-sql-script-2.5.0.tar.gz        命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz        將解壓后的mysql 腳本,導(dǎo)入到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 創(chuàng)建SSL配置    參考地址: http://docs./display/JETTY/How+to+configure+SSL    命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA    運行此命令后,會提示輸入當(dāng)前生成 keystor的密碼及相應(yīng)信息,輸入的密碼請勞記,信息如下(此處我輸入的密碼為:123456)    輸入keystore密碼:    再次輸入新密碼:    您的名字與姓氏是什么?      [Unknown]:    您的組織單位名稱是什么?      [Unknown]:    您的組織名稱是什么?      [Unknown]:    您所在的城市或區(qū)域名稱是什么?      [Unknown]:    您所在的州或省份名稱是什么?      [Unknown]:    該單位的兩字母國家代碼是什么      [Unknown]:  CN    CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正確嗎?      [否]:  y輸入的主密碼(如果和 keystore 密碼相同,按回車): 再次輸入新密碼完成上述工作后,將在當(dāng)前目錄生成 keystore 證書文件,將keystore 考貝到 azkaban web服務(wù)器根目錄中.如:cp keystore azkaban/webserver    3.7.5 配置文件    注:先配置好服務(wù)器節(jié)點上的時區(qū)    先生成時區(qū)配置文件Asia/Shanghai,用交互式命令 tzselect 即可    拷貝該時區(qū)文件,覆蓋系統(tǒng)本地時區(qū)配置    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      3.7.6 azkaban web服務(wù)器配置    進入azkaban web服務(wù)器安裝目錄 conf目錄    修改azkaban.properties文件    命令vi azkaban.properties

內(nèi)容說明如下:

*Azkaban Personalization Settingsazkaban.name=Test                           #服務(wù)器UI名稱,用于服務(wù)器上方顯示的名字azkaban.label=My Local Azkaban                               #描述azkaban.color=#FF3601                                                 #UI顏色azkaban.default.servlet.path=/index                         #web.resource.dir=web/                                                 #默認根web目錄default.timezone.id=Asia/Shanghai                           #默認時區(qū),已改為亞洲/上海 默認為美國*Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManager   #用戶權(quán)限管理默認類user.manager.xml.file=conf/azkaban-users.xml              #用戶配置,具體配置參加下文*Loader for projectsexecutor.global.properties=conf/global.properties    # global配置文件所在位置azkaban.project.dir=projects                                                #database.type=mysql                                                              #數(shù)據(jù)庫類型mysql.port=3306                                                                       #端口號mysql.host=localhost                                                      #數(shù)據(jù)庫連接IPmysql.database=azkaban                                                       #數(shù)據(jù)庫實例名mysql.user=root                                                                 #數(shù)據(jù)庫用戶名mysql.password=Root123456                                                        #數(shù)據(jù)庫密碼mysql.numconnections=100                                                  #最大連接數(shù)* Velocity dev modevelocity.dev.mode=false* Jetty服務(wù)器屬性.jetty.maxThreads=25                                                               #最大線程數(shù)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文件密碼* 執(zhí)行服務(wù)器屬性executor.port=12321                                                               #執(zhí)行服務(wù)器端*郵件設(shè)置mail.sender=xxxxxxxx@163.com                                       #發(fā)送郵箱mail.host=smtp.163.com                                                       #發(fā)送郵箱smtp地址mail.user=xxxxxxxx                                       #發(fā)送郵件時顯示的名稱mail.password=**********                                                 #郵箱密碼job.failure.email=xxxxxxxx@163.com                              #任務(wù)失敗時發(fā)送郵件的地址job.success.email=xxxxxxxx@163.com                            #任務(wù)成功時發(fā)送郵件的地址lockdown.create.projects=false                                           #cache.directory=cache                                                            #緩存目錄         3.7.7azkaban 執(zhí)行服務(wù)器executor配置         進入執(zhí)行服務(wù)器安裝目錄conf,修改azkaban.properties         vi azkaban.properties*Azkabandefault.timezone.id=Asia/Shanghai                                              #時區(qū)* Azkaban JobTypes 插件配置azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置*Loader for projectsexecutor.global.properties=conf/global.propertiesazkaban.project.dir=projects*數(shù)據(jù)庫設(shè)置database.type=mysql                                                                       #數(shù)據(jù)庫類型(目前只支持mysql)mysql.port=3306                                                                                #數(shù)據(jù)庫端口號mysql.host=192.168.20.200                                                           #數(shù)據(jù)庫IP地址mysql.database=azkaban                                                                #數(shù)據(jù)庫實例名mysql.user=root                                                                       #數(shù)據(jù)庫用戶名mysql.password=Root23456                                #數(shù)據(jù)庫密碼mysql.numconnections=100                                                           #最大連接數(shù)*執(zhí)行服務(wù)器配置executor.maxThreads=50                                                                #最大線程數(shù)executor.port=12321                                                               #端口號(如修改,請與web服務(wù)中一致)executor.flow.threads=30                                                                #線程數(shù)

   3.7.8用戶配置    進入azkaban web服務(wù)器conf目錄,修改azkaban-users.xml    vi azkaban-users.xml 增加 管理員用戶

   3.7.9 web服務(wù)器啟動    在azkaban web服務(wù)器目錄下執(zhí)行啟動命令    bin/azkaban-web-start.sh    注:在web服務(wù)器根目錄運行    或者啟動到后臺    nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &    3.7.10執(zhí)行服務(wù)器啟動    在執(zhí)行服務(wù)器目錄下執(zhí)行啟動命令    bin/azkaban-executor-start.sh    注:只能要執(zhí)行服務(wù)器根目錄運行    啟動完成后,在瀏覽器(建議使用谷歌瀏覽器)中輸入https://服務(wù)器IP地址:8443 ,即可訪問azkaban服務(wù)了.在登錄中輸入剛才新的戶用名及密碼,點擊 login3.8 Zeppelin參照如下文件:http://blog.csdn.net/chengxuyuanyonghu/article/details/54915817http://blog.csdn.net/chengxuyuanyonghu/article/details/549159623.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    //是從機器的域名Ys02ys03ys04注:此處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發(fā)放到其他機器    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集群的監(jiān)控程序,本質(zhì)就是一個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. 集群調(diào)優(yōu)

4.1 輔助工具盡量不安裝到數(shù)據(jù)或者運算節(jié)點,避免占用過多計算或內(nèi)存資源。4.2 dataNode和spark的slave節(jié)點盡量在一起;這樣運算的時候就可以避免通過網(wǎng)絡(luò)拉取數(shù)據(jù),加快運算速度。4.3 Hadoop集群機架感知配置,配置之后可以使得數(shù)據(jù)在同機架的不同機器2份,然后其他機架機器1份,可是兩臺機器四臺虛機沒有必要配感知個人感覺。4.4 配置參數(shù)調(diào)優(yōu)可以參考http://blog.csdn.net/chndata/article/details/46003399

第三階段(輔助工具工學(xué)習(xí)階段)

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

  1. 數(shù)據(jù)導(dǎo)出概念介紹

  2. Sqoop 基礎(chǔ)知識

  3. Sqoop 原理及配置說明

  4. Sqoop 數(shù)據(jù)導(dǎo)入實戰(zhàn)

  5. Sqoop 數(shù)據(jù)導(dǎo)出實戰(zhàn)、

  6. Sqoop 批量作業(yè)操作

推薦學(xué)習(xí)博客:http://student-lp./blog/2157983
官網(wǎng):http://sqoop./

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

  1. FLUME 日志采集框架介紹。

  2. FLUME 工作機制。

  3. FLUME 核心組件。

  4. FLUME 參數(shù)配置說明。

  5. FLUME 采集 nginx 日志案例(案例一定要實踐一下)

推薦學(xué)習(xí)博客:http://www./thread-8917-1-1.html
官網(wǎng):http://flume.    

13)Oozie(CSDN,51CTO ,以及官網(wǎng))—20小時

  1. 任務(wù)調(diào)度系統(tǒng)概念介紹。

  2. 常用任務(wù)調(diào)度工具比較。

  3. Oozie介紹。

  4. Oozie核心概念。

  5. Oozie的配置說明。

  6. Oozie實現(xiàn)mapreduce/hive等任務(wù)調(diào)度實戰(zhàn)案例。

推薦學(xué)習(xí)博客:http://www./cn/articles/introductionOozie
官網(wǎng):http://oozie./

14)Hue(CSDN,51CTO ,以及官網(wǎng))—20小時

推薦學(xué)習(xí)博客:http://ju./entry/105162
官網(wǎng):http:///

第四階段(不斷學(xué)習(xí)階段)

每天都會有新的東西出現(xiàn),需要關(guān)注最新技術(shù)動態(tài),不斷學(xué)習(xí)。任何一般技術(shù)都是先學(xué)習(xí)理論,然后在實踐中不斷完善理論的過程。

備注

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

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

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

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

5)視頻課程推薦:

可以去萬能的淘寶購買一些視頻課程,你輸入「大數(shù)據(jù)視頻課程」,會出現(xiàn)很多,多購買幾份(100塊以內(nèi)可以搞定),然后選擇一個適合自己的。

四、持續(xù)學(xué)習(xí)資源推薦

  1. Apache 官網(wǎng)(http:///

  2. Stackoverflow(https:///

  3. Github(https://github.com/)

  4. Cloudra官網(wǎng)(https://www./)

  5. Databrick官網(wǎng)(https:///)

  6. About 云 :http://www./

  7. CSDN,51CTO (http://www.csdn.net/,http://www.51cto.com/

  8. 至于書籍當(dāng)當(dāng)一搜會有很多,其實內(nèi)容都差不多。

五、項目案例分析

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

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

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

最后但卻很重要一點:每天都會有新的技術(shù)出現(xiàn),要多關(guān)注技術(shù)動向,持續(xù)學(xué)習(xí)。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多