美文网首页程序员大数据大数据 爬虫Python AI Sql
大数据学习之路【跟着大神学习一波】

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

作者: bd8941f5f5cc | 来源:发表于2018-12-12 00:07 被阅读32次

    前言:

    一、背景介绍

    二、大数据介绍

    正文:

    一、大数据相关的工作介绍

    二、大数据工程师的技能要求

    三、大数据学习规划

    四、持续学习资源推荐(书籍,博客,网站)

    五、项目案例分析(批处理+实时处理)

    前言

    一、背景介绍

    本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。

    二、大数据介绍

    对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 .

    大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

    针对以上主要的4个特征我们需要考虑以下问题:

    数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。

    数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。

    由于数据增长速度快,数据存储就必须可以水平扩展。

    数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?

    对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;

    普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;

    但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。

    而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。

    为了提高工作效率,加快运速度,出现了一些辅助工具:

    Ozzie,azkaban:定时任务调度的工具。

    Hue,Zepplin:图形化任务执行管理,结果查看工具。

    Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。

    Python语言:编写一些脚本时会用到。

    Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

    以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。

    正文

    一、大数据相关工作介绍

    大数据方向的工作目前主要分为三个主要方向:

    大数据工程师

    数据分析师

    大数据科学家

    其他(数据挖掘等)

    二、大数据工程师的技能要求

    附上大数据工程师技能图:

    必须掌握的技能11条

    Java高级(虚拟机、并发)

    Linux 基本操作

    Hadoop(HDFS+MapReduce+Yarn )

    HBase(JavaAPI操作+Phoenix )

    Hive(Hql基本操作和原理理解)

    Kafka

    Storm/JStorm

    Scala

    Python

    Spark (Core+sparksql+Spark streaming )

    辅助小工具(Sqoop/Flume/Oozie/Hue等)

    高阶技能6条

    机器学习算法以及mahout库加MLlib

    R语言

    Lambda 架构

    Kappa架构

    Kylin

    Alluxio

    三、学习路径

    假设每天可以抽出3个小时的有效学习时间,加上周末每天保证10个小时的有效学习时间;

    3个月会有(21*3+4*2*10)*3=423小时的学习时间。

    第一阶段(基础阶段)

    1)Linux学习(跟鸟哥学就ok了)—–20小时

    Linux操作系统介绍与安装。

    Linux常用命令。

    Linux常用软件安装。

    Linux网络。

    防火墙。

    Shell编程等。

    官网:https://www.centos.org/download/

    中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

    2)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)—30小时

    掌握多线程。

    掌握并发包下的队列。

    了解JMS。

    掌握JVM技术。

    掌握反射和动态代理。

    官网:https://www.java.com/zh_CN/

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

    3)Zookeeper学习(可以参照这篇博客进行学习:http://www.cnblogs.com/wuxl360/p/5817471.html

    Zookeeper分布式协调服务介绍。

    Zookeeper集群的安装部署。

    Zookeeper数据结构、命令。

    Zookeeper的原理以及选举机制。

    官网:http://zookeeper.apache.org/

    中文社区:http://www.aboutyun.com/forum-149-1.html

    第二阶段(攻坚阶段)

    4)Hadoop (《Hadoop 权威指南》)—80小时

    HDFS

    HDFS的概念和特性。

    HDFS的shell操作。

    HDFS的工作机制。

    HDFS的Java应用开发。

    MapReduce

    运行WordCount示例程序。

    了解MapReduce内部的运行机制。

    MapReduce程序运行流程解析。

    MapTask并发数的决定机制。

    MapReduce中的combiner组件应用。

    MapReduce中的序列化框架及应用。

    MapReduce中的排序。

    MapReduce中的自定义分区实现。

    MapReduce的shuffle机制。

    MapReduce利用数据压缩进行优化。

    MapReduce程序与YARN之间的关系。

    MapReduce参数优化。

    MapReduce的Java应用开发

    5)Hive(《Hive开发指南》)–20小时

    Hive 基本概念

    Hive 应用场景。

    Hive 与hadoop的关系。

    Hive 与传统数据库对比。

    Hive 的数据存储机制。

    Hive 基本操作

    Hive 中的DDL操作。

    在Hive 中如何实现高效的JOIN查询。

    Hive 的内置函数应用。

    Hive shell的高级使用方式。

    Hive 常用参数配置。

    Hive 自定义函数和Transform的使用技巧。

    Hive UDF/UDAF开发实例。

    Hive 执行过程分析及优化策略

    6)HBase(《HBase权威指南》)—20小时

    hbase简介。

    habse安装。

    hbase数据模型。

    hbase命令。

    hbase开发。

    hbase原理。

    7)Scala(《快学Scala》)–20小时

    Scala概述。

    Scala编译器安装。

    Scala基础。

    数组、映射、元组、集合。

    类、对象、继承、特质。

    模式匹配和样例类。

    了解Scala Actor并发编程。

    理解Akka。

    理解Scala高阶函数。

    理解Scala隐式转换。

    8)Spark (《Spark 权威指南》)—60小时

    Spark core

    Spark概述。

    Spark集群安装。

    执行第一个Spark案例程序(求PI)。

    RDD

    RDD概述。

    创建RDD。

    RDD编程API(Transformation 和 Action Operations)。

    RDD的依赖关系

    RDD的缓存

    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 )

    这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。

    9)Python

    10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小demo —30小时

    可以自己用VMware搭建4台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64位,16G内存,完全可以运行起来,以下附上我学习时用虚拟机搭建集群的操作文档)

    集群搭建文档1.0版本

    1. 集群规划

    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 systemctlstopfirewalld.service (停止firewall)

    2.3.1systemctldisablefirewalld.service (禁止firewall开机启动)

    2.3.2firewall-cmd--state (查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    2.4免密登录(ys01 ->ys02,03,04)

        ssh-keygen -t rsa

    ssh-copy-idys02(随后输入密码)

    ssh-copy-idys03(随后输入密码)

    ssh-copy-idys04(随后输入密码)

        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

    #在文件最后添加

    exportJAVA_HOME= /usr/local/ys/app/ jdk-7u80

    exportPATH=$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(修改文件)

        添加内容:

    exportZOOKEEPER_HOME=/usr/local/ys/app/zookeeper

    exportPATH=$PATH:$ZOOKEEPER_HOME/bin

        3.2.3 重新编译文件:

    source/etc/profile

        注意:3台zookeeper都需要修改

        3.2.4修改配置文件

    cdzookeeper/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 755log

        3.2.6 在data文件夹下新建myid文件,myid的文件内容为:

    cddata

        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集群(分别在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

    添加如下内容:

    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文件

    cdconf/

        mv spark-env.sh.template spark-env.sh

        vi spark-env.sh

        在该配置文件中添加如下配置

    exportJAVA_HOME=/usr/java/jdk1.7.0_45

    exportSPARK_MASTER_PORT=7077

    exportSPARK_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 -aliasjetty -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 UserManagerclass

    user.manager.class=azkaban.user.XmlUserManager#用户权限管理默认类

    user.manager.xml.file=conf/azkaban-users.xml#用户配置,具体配置参加下文

    *Loaderforprojects

    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 插件所在位置

    *Loaderforprojects

    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#线程数

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    3.7.8用户配置

    进入azkabanweb服务器conf目录,修改azkaban-users.xml

    viazkaban-users.xml增加 管理员用户

    3.7.9web服务器启动

        在azkaban web服务器目录下执行启动命令

        bin/azkaban-web-start.sh

        注:在web服务器根目录运行

        或者启动到后台

    nohup  bin/azkaban-web-start.sh1>/tmp/azstd.out2>/tmp/azerr.out&

    3.7.10执行服务器启动

        在执行服务器目录下执行启动命令

        bin/azkaban-executor-start.sh

        注:只能要执行服务器根目录运行

    启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login

    3.8Zeppelin

    3.9HBase

    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.2hbase

    3.9.3修改配置文件

        每个文件的解释如下:

        hbase-env.sh

    exportJAVA_HOME=/usr/local/ys/app/jdk1.7.0_80//jdk安装目录

    exportHBASE_CLASSPATH=/usr/local/ys/app/hadoop-2.6.4/etc/hadoop//hadoop配置文件的位置

    exportHBASE_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 --refresh5.minutes --retain1.day --port8089$

    4. 集群调优

    4.1辅助工具尽量不安装到数据或者运算节点,避免占用过多计算或内存资源。

    4.2dataNode和spark的slave节点尽量在一起;这样运算的时候就可以避免通过网络拉取数据,加快运算速度。

    4.3Hadoop集群机架感知配置,配置之后可以使得数据在同机架的不同机器2份,然后其他机架机器1份,可是两台机器四台虚机没有必要配感知个人感觉。

    4.4配置参数调优

    可以参考http://blog.csdn.net/chndata/article/details/46003399

    第三阶段(辅助工具工学习阶段)

    11)Sqoop(CSDN,51CTO ,以及官网)—20小时

    数据导出概念介绍

    Sqoop基础知识

    Sqoop原理及配置说明

    Sqoop数据导入实战

    Sqoop数据导出实战、

    Sqoop批量作业操作

    12)Flume—20小时

    FLUME日志采集框架介绍。

    FLUME工作机制。

    FLUME核心组件。

    FLUME参数配置说明。

    FLUME采集nginx日志案例(案例一定要实践一下)

    13)Oozie–20小时

    任务调度系统概念介绍。

    常用任务调度工具比较。

    Oozie介绍。

    Oozie核心概念。

    Oozie的配置说明。

    Oozie实现mapreduce/hive等任务调度实战案例。

    4)Hue–20小时

    四阶段(不断学习阶段)

    每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。

    备注

    1)如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。如果看书效率不高就很网课,相反的话就自己看书。

    2)企业目前更倾向于使用Spark进行微批处理,Storm只有在对时效性要求极高的情况下,才会使用,所以可以做了解。重点学习Spark Streaming。

    3)快速学习的能力、解决问题的能力、沟通能力**真的很重要。

    4)要善于使用StackOverFlow和Google(遇到解决不了的问题,先Google,如果Google找不到解决方能就去StackOverFlow提问,一般印度三哥都会在2小时内回答你的问题)。

    /*对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 .

    相关文章

      网友评论

        本文标题:大数据学习之路【跟着大神学习一波】

        本文链接:https://www.haomeiwen.com/subject/tiwyhqtx.html