小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 imnobody2001 2018-02-14


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

文末高能

編輯 | 花輪同學(xué)

申明:

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

前言

一、背景介紹

本人目前是一名大數(shù)據(jù)工程師,項(xiàng)目數(shù)據(jù)50T,日均數(shù)據(jù)增長20G左右,個(gè)人是從 Java 后端開發(fā),經(jīng)過3個(gè)月的業(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級(jí)別的、甚至可能是PB級(jí)別)、數(shù)據(jù)增長速度快等。

針對(duì)以上主要的4個(gè)特征我們需要考慮以下問題:

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

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

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

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

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

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

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

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

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

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

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

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

    • Python 語言:編寫一些腳本時(shí)會(huì)用到。

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

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

正文

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

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

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

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

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

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

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

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

必須掌握的技能11條

  1. Java高級(jí)(虛擬機(jī)、并發(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. 機(jī)器學(xué)習(xí)算法以及 mahout 庫加 MLlib

  2. R 語言

  3. Lambda 架構(gòu)

  4. Kappa架構(gòu)

  5. Kylin

  6. Alluxio

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

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

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

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

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

  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 高級(jí)學(xué)習(xí)(《深入理解Java虛擬機(jī)》、《Java高并發(fā)實(shí)戰(zhàn)》)—-30小時(shí)

  1. 掌握多線程。

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

  3. 了解 JMS。

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

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

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

3)Zookeeper學(xué)習(xí)(可以參照這篇博客進(jìn)行學(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 的原理以及選舉機(jī)制。

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

第二階段(攻堅(jiān)階段)

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

  1. HDFS

  • HDFS 的概念和特性。

  • HDFS 的 shell 操作。

  • HDFS 的工作機(jī)制。

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

  1. MapReduce

    • MapReduce 程序運(yùn)行流程解析。

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

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

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

    • MapReduce 中的排序。

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

    • MapReduce 的 shuffle 機(jī)制。

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

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

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

    • 運(yùn)行 WordCount 示例程序。

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

  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小時(shí)

  1. Hive 基本概念

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

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

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

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

  2. Hive 基本操作

    • Hive 中的DDL 操作。

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

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

    • Hive shell 的高級(jí)使用方式。

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

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

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

  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小時(shí)

  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小時(shí)

  1. Scala 概述。

  2. Scala 編譯器安裝。

  3. Scala 基礎(chǔ)。

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

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

  6. 模式匹配和樣例類。

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

  8. 理解 Akka。

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

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

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

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

  1. Spark core

    • Spark概述。

    • Spark集群安裝。

    • 執(zhí)行第一個(gè)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 )

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

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

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

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

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

集群搭建文檔1.0版本

1. 集群規(guī)劃   

所有需要用到的軟件:

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

2. 前期準(zhǔn)備

2.0 系統(tǒng)安裝2.1 主機(jī)名配置    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默認(rèn)使用的是firewall,centos 6 默認(rèn)是iptables)    2.3.0 systemctl stop firewalld.service (停止firewall)    2.3.1 systemctl disable firewalld.service (禁止firewall開機(jī)啟動(dòng))    2.3.2 firewall-cmd --state (查看默認(rèn)防火墻狀態(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)時(shí)區(qū)與時(shí)間同步    tzselect(生成日期文件)    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(將日期文件copy到本地時(shí)間中)

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包到虛機(jī)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臺(tái)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 (主機(jī)名, 心跳端口、數(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ā)到其他機(jī)器上    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修改其他機(jī)器的配置文件    到y(tǒng)s02上:修改myid為:2    到y(tǒng)s02上:修改myid為:3    3.2.8啟動(dòng)(每臺(tái)機(jī)器)    zkServer.sh start    查看集群狀態(tài)    jps(查看進(jìn)程)    zkServer.sh status(查看集群狀態(tài),主從信息)3.3 Hadoop(HDFS+Yarn)    3.3.0 alt+p 后出現(xiàn)sftp窗口,使用sftp上傳tar包到虛機(jī)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集群啟動(dòng)(嚴(yán)格按照下面的步驟)    3.3.3.1啟動(dòng)zookeeper集群(分別在ys01、ys02、ys04上啟動(dòng)zk)        cd /usr/local/ys/app/zookeeper-3.4.5/bin/        ./zkServer.sh start        #查看狀態(tài):一個(gè)leader,兩個(gè)follower        ./zkServer.sh status    3.3.3.2啟動(dòng)journalnode(分別在在mini5、mini6、mini7上執(zhí)行)        cd /usr/local/ys/app/hadoop-2.6.4        sbin/hadoop-daemon.sh start journalnode        #運(yùn)行jps命令檢驗(yàn),ys02、ys03、ys04上多了JournalNode進(jìn)程    3.3.3.3格式化HDFS        #在ys01上執(zhí)行命令:        hdfs namenode -format        #格式化后會(huì)在根據(jù)core-site.xml中的hadoop.tmp.dir配置生成個(gè)文件,這里我配置的是/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啟動(dòng)HDFS(在ys01上執(zhí)行)        sbin/start-dfs.sh    3.3.3.6啟動(dòng)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包到虛機(jī)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的機(jī)器上執(zhí)行)    mysql -uroot -p    #(執(zhí)行下面的語句  *.*:所有庫下的所有表   %:任何IP地址或主機(jī)都可以連接)    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啟動(dòng)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/    然后分別在各機(jī)器上創(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 啟動(dòng)集群    依次在各節(jié)點(diǎn)上啟動(dòng)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包到虛機(jī)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配置文件(兩個(gè)配置文件spark-env.sh和slaves)    cd /usr/local/ys/soft/spark-1.6.1-bin-hadoop2.6    進(jìn)入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é)點(diǎn)所在的位置(Worker節(jié)點(diǎn))    Ys02    Ys03    Ys04    保存退出    3.6.4 將配置好的Spark拷貝到其他節(jié)點(diǎn)上    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 集群啟動(dòng)    在ys01上執(zhí)行sbin/start-all.sh腳本    然后在ys02上執(zhí)行sbin/start-master.sh啟動(dòng)第二個(gè)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 移動(dòng)到 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 移動(dòng)到 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中:        進(jìn)入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    運(yùn)行此命令后,會(huì)提示輸入當(dāng)前生成 keystor的密碼及相應(yīng)信息,輸入的密碼請(qǐ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é)點(diǎn)上的時(shí)區(qū)    先生成時(shí)區(qū)配置文件Asia/Shanghai,用交互式命令 tzselect 即可    拷貝該時(shí)區(qū)文件,覆蓋系統(tǒng)本地時(shí)區(qū)配置    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      3.7.6 azkaban web服務(wù)器配置    進(jìn)入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/                                                 #默認(rèn)根web目錄default.timezone.id=Asia/Shanghai                           #默認(rèn)時(shí)區(qū),已改為亞洲/上海 默認(rèn)為美國*Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManager   #用戶權(quán)限管理默認(rè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                                                                       #端口號(hào)mysql.host=localhost                                                      #數(shù)據(jù)庫連接IPmysql.database=azkaban                                                       #數(shù)據(jù)庫實(shí)例名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ā)送郵件時(shí)顯示的名稱mail.password=**********                                                 #郵箱密碼job.failure.email=xxxxxxxx@163.com                              #任務(wù)失敗時(shí)發(fā)送郵件的地址job.success.email=xxxxxxxx@163.com                            #任務(wù)成功時(shí)發(fā)送郵件的地址lockdown.create.projects=false                                           #cache.directory=cache                                                            #緩存目錄         3.7.7azkaban 執(zhí)行服務(wù)器executor配置         進(jìn)入執(zhí)行服務(wù)器安裝目錄conf,修改azkaban.properties         vi azkaban.properties*Azkabandefault.timezone.id=Asia/Shanghai                                              #時(shí)區(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ù)庫端口號(hào)mysql.host=192.168.20.200                                                           #數(shù)據(jù)庫IP地址mysql.database=azkaban                                                                #數(shù)據(jù)庫實(shí)例名mysql.user=root                                                                       #數(shù)據(jù)庫用戶名mysql.password=Root23456                                #數(shù)據(jù)庫密碼mysql.numconnections=100                                                           #最大連接數(shù)*執(zhí)行服務(wù)器配置executor.maxThreads=50                                                                #最大線程數(shù)executor.port=12321                                                               #端口號(hào)(如修改,請(qǐng)與web服務(wù)中一致)executor.flow.threads=30                                                                #線程數(shù)

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

   3.7.9 web服務(wù)器啟動(dòng)    在azkaban web服務(wù)器目錄下執(zhí)行啟動(dòng)命令    bin/azkaban-web-start.sh    注:在web服務(wù)器根目錄運(yùn)行    或者啟動(dòng)到后臺(tái)    nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &    3.7.10執(zhí)行服務(wù)器啟動(dòng)    在執(zhí)行服務(wù)器目錄下執(zhí)行啟動(dòng)命令    bin/azkaban-executor-start.sh    注:只能要執(zhí)行服務(wù)器根目錄運(yùn)行    啟動(dòng)完成后,在瀏覽器(建議使用谷歌瀏覽器)中輸入https://服務(wù)器IP地址:8443 ,即可訪問azkaban服務(wù)了.在登錄中輸入剛才新的戶用名及密碼,點(diǎn)擊 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修改配置文件     每個(gè)文件的解釋如下:    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 #如果使用獨(dú)立安裝的zookeeper這個(gè)地方就是false(此處使用自己的zookeeper)hbase-site.xml

Regionservers    //是從機(jī)器的域名Ys02ys03ys04注:此處HBase配置是針對(duì)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ā)放到其他機(jī)器    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啟動(dòng)    cd  /usr/local/ys/app/hbase/bin    ./ start-hbase.sh    3.9.7查看    進(jìn)程:jps    進(jìn)入hbase的shell:hbase shell    退出hbase的shell:quit    頁面:http://master:60010/ 3.10KAfkaOffsetMonitor(Kafka集群的監(jiān)控程序,本質(zhì)就是一個(gè)jar包)    3.10.1上傳jar包    略3.10.2 運(yùn)行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ù)或者運(yùn)算節(jié)點(diǎn),避免占用過多計(jì)算或內(nèi)存資源。4.2 dataNode和spark的slave節(jié)點(diǎn)盡量在一起;這樣運(yùn)算的時(shí)候就可以避免通過網(wǎng)絡(luò)拉取數(shù)據(jù),加快運(yùn)算速度。4.3 Hadoop集群機(jī)架感知配置,配置之后可以使得數(shù)據(jù)在同機(jī)架的不同機(jī)器2份,然后其他機(jī)架機(jī)器1份,可是兩臺(tái)機(jī)器四臺(tái)虛機(jī)沒有必要配感知個(gè)人感覺。4.4 配置參數(shù)調(diào)優(yōu)可以參考http://blog.csdn.net/chndata/article/details/46003399

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

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

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

  2. Sqoop 基礎(chǔ)知識(shí)

  3. Sqoop 原理及配置說明

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

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

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

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

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

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

  2. FLUME 工作機(jī)制。

  3. FLUME 核心組件。

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

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

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

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

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

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

  3. Oozie介紹。

  4. Oozie核心概念。

  5. Oozie的配置說明。

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

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

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

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

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

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

備注

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

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

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

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

5)視頻課程推薦:

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

四、持續(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)一搜會(huì)有很多,其實(shí)內(nèi)容都差不多。

五、項(xiàng)目案例分析

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

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

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

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


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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多