大数据学习之路【跟着大神学习】

转载自: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…

至于书籍当当一搜会有不少,其实内容都差很少。

相关文章
相关标签/搜索