精华内容
下载资源
问答
  • Java转大数据开发全套视频资料

    千次阅读 2019-04-25 15:07:42
    大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的。但是大数据真的好学吗。 我们先来了解一下什么是大数据。  大数据是指无法在一定时间内用常规软件工具对其内容进行...

    大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的。但是大数据真的好学吗。

    我们先来了解一下什么是大数据。

     大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。

    以下是大数据的定义

    大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、庋用、管理和处理能力。大数据的大小经常改变,截至2012年,单一数据集的大小从数太字节(TB)至数十兆亿字节(PB)不等。

      在一份2001年的研究与相关的演讲中,麦塔集团(META Group,现为高德纳)分析员道格·莱尼(Doug Laney)指出数据增长的挑战和机遇有三个方向:量(Volume,数据大小)、速(Velocity,数据输入输出的速度)与多变(Variety,多样性),合称“3V”或“3Vs”。高德纳与现在大部分大数据产业中的公司,都继续使用3V来描述大数据。高德纳于2012年修改对大数据的定义:“大数据是大量、高速、及/或多变的信息资产,它需要新型的处理方式去促成更强的决策能力、洞察力与最优化处理。”另外,有机构在3V之外定义第4个V:真实性(Veracity)为第四特点。

      大数据必须借由计算机对数据进行统计、比对、解析方能得出客观结果。美国在2012年就开始着手大数据,奥巴马更在同年投入2亿美金在大数据的开发中,更强调大数据会是之后的未来石油。数据挖掘(data mining)则是在探讨用以解析大数据的方法。

    大数据是一种方式,它从多个不同数据源获取原始数据,存储数据以供分析程序使用,并使用原始数据通过全新方式从数据中获取价值(含义)。我们所讨论的是来自 CRM 和 Web 应用等传统业务应用的数据,与来自越来越多的传感器 (IoT) 以及 Facebook、Twitter 和 LinkedIn 等社交媒体的数据的组合。

    这意味着大数据不是某种单独的技术,而是一个由数据的获取、存储和应用技术所组成的紧密协调的生态系统,这样大数据才能发挥作用。

    转行大数据需要哪些技能?

    如果你会以下这几种语言之一,那么转行大数据是非常轻松的:

    1.  Java编程是大数据开发的基础,Java编程是必备技能!
    2.  Python在大数据处理框架中得到支持。
    3. Scala是一门多范式的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。
    4. Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
    5.  技术层面来说,其实只要有点基础的程序员转型大数据,都有天然的进阶优势,哪怕你没有学过任何一种编程语言零基础,也是可以学会的。

    当然,你有了以上的基础之后还缺一套视频。一全套视频。

    需要资料的可以加QQ群:213365178

    以上部分内容来自网络,有问题可以在下面评论,技术问题可以私聊我。

    展开全文
  • java转大数据的学习路线

    万次阅读 多人点赞 2018-07-19 15:17:43
    首先这个文章是转载的,留着后面基础再扎实一点之后开始学习,感谢...本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同...

    首先这个文章是转载的,留着后面基础再扎实一点之后开始学习,感谢原文的作者,写出了如此清晰的学习路线。原文作者文章链接:https://blog.csdn.net/gitchat/article/details/78341484

    【不要错过文末彩蛋】

    申明:

    本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。


    前言:

    • 一、背景介绍
    • 二、大数据介绍

    正文:

    • 一、大数据相关的工作介绍
    • 二、大数据工程师的技能要求
    • 三、大数据学习规划
    • 四、持续学习资源推荐(书籍,博客,网站)
    • 五、项目案例分析(批处理+实时处理)

    前言

    一、背景介绍

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

    二、大数据介绍

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

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

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

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

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

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

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

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

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

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

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

      • Ozzie,azkaban:定时任务调度的工具。
      • Hue,Zepplin:图形化任务执行管理,结果查看工具。
      • Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
      • Python语言:编写一些脚本时会用到。
      • Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

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

    正文

    一、大数据相关工作介绍

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

    1. 大数据工程师
    2. 数据分析师
    3. 大数据科学家
    4. 其他(数据挖掘等)

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

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

    enter image description here

    必须掌握的技能11条

    1. Java高级(虚拟机、并发)
    2. Linux 基本操作
    3. Hadoop(HDFS+MapReduce+Yarn )
    4. HBase(JavaAPI操作+Phoenix )
    5. Hive(Hql基本操作和原理理解)
    6. Kafka
    7. Storm/JStorm
    8. Scala
    9. Python
    10. Spark (Core+sparksql+Spark streaming )
    11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

    高阶技能6条

    1. 机器学习算法以及mahout库加MLlib
    2. R语言
    3. Lambda 架构
    4. Kappa架构
    5. Kylin
    6. Alluxio

    三、学习路径

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

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

    第一阶段(基础阶段)

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

    1. Linux操作系统介绍与安装。
    2. Linux常用命令。
    3. Linux常用软件安装。
    4. Linux网络。
    5. 防火墙。
    6. Shell编程等。

    官网:https://www.centos.org/download/ 
    中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

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

    1. 掌握多线程。
    2. 掌握并发包下的队列。
    3. 了解JMS。
    4. 掌握JVM技术。
    5. 掌握反射和动态代理。

    官网:https://www.java.com/zh_CN/ 
    中文社区:http://www.java-cn.com/index.html

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

    1. Zookeeper分布式协调服务介绍。
    2. Zookeeper集群的安装部署。
    3. Zookeeper数据结构、命令。
    4. Zookeeper的原理以及选举机制。

    官网:http://zookeeper.apache.org/ 
    中文社区:http://www.aboutyun.com/forum-149-1.html

    第二阶段(攻坚阶段)

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

    1. HDFS

      • HDFS的概念和特性。
      • HDFS的shell操作。
      • HDFS的工作机制。
      • HDFS的Java应用开发。
    2. MapReduce

      • 运行WordCount示例程序。
      • 了解MapReduce内部的运行机制。 
        • MapReduce程序运行流程解析。
        • MapTask并发数的决定机制。
        • MapReduce中的combiner组件应用。
        • MapReduce中的序列化框架及应用。
        • MapReduce中的排序。
        • MapReduce中的自定义分区实现。
        • MapReduce的shuffle机制。
        • MapReduce利用数据压缩进行优化。
        • MapReduce程序与YARN之间的关系。
        • MapReduce参数优化。
    3. MapReduce的Java应用开发

    官网:http://hadoop.apache.org/ 
    中文文档:http://hadoop.apache.org/docs/r1.0.4/cn/ 
    中文社区:http://www.aboutyun.com/forum-143-1.html

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

    1. Hive 基本概念

      • Hive 应用场景。
      • Hive 与hadoop的关系。
      • Hive 与传统数据库对比。
      • Hive 的数据存储机制。
    2. Hive 基本操作

      • Hive 中的DDL操作。
      • 在Hive 中如何实现高效的JOIN查询。
      • Hive 的内置函数应用。
      • Hive shell的高级使用方式。
      • Hive 常用参数配置。
      • Hive 自定义函数和Transform的使用技巧。
      • Hive UDF/UDAF开发实例。
    3. Hive 执行过程分析及优化策略

    官网:https://hive.apache.org/ 
    中文入门文档:http://www.aboutyun.com/thread-11873-1-1.html 
    中文社区:http://www.aboutyun.com/thread-7598-1-1.html

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

    1. hbase简介。
    2. habse安装。
    3. hbase数据模型。
    4. hbase命令。
    5. hbase开发。
    6. hbase原理。

    官网:http://hbase.apache.org/ 
    中文文档:http://abloz.com/hbase/book.html 
    中文社区:http://www.aboutyun.com/forum-142-1.html

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

    1. Scala概述。
    2. Scala编译器安装。
    3. Scala基础。
    4. 数组、映射、元组、集合。
    5. 类、对象、继承、特质。
    6. 模式匹配和样例类。
    7. 了解Scala Actor并发编程。
    8. 理解Akka。
    9. 理解Scala高阶函数。
    10. 理解Scala隐式转换。

    官网:http://www.scala-lang.org/ 
    初级中文教程:http://www.runoob.com/scala/scala-tutorial.html

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

    enter image description here

    1. Spark core

      • Spark概述。
      • Spark集群安装。
      • 执行第一个Spark案例程序(求PI)。
    2. RDD

      enter image description here

      • RDD概述。
      • 创建RDD。
      • RDD编程API(Transformation 和 Action Operations)。
      • RDD的依赖关系
      • RDD的缓存
      • DAG(有向无环图)
    3. Spark SQL and DataFrame/DataSet

      enter image description here

      • Spark SQL概述。
      • DataFrames。
      • DataFrame常用操作。
      • 编写Spark SQL查询程序。
    4. Spark Streaming

      enter image description here

      enter image description here

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

    6. 其他(MLlib and GraphX )

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

    官网:http://spark.apache.org 
    中文文档(但是版本有点老):https://www.gitbook.com/book/aiyanbo/spark-programming-guide-zh-cn/details 
    中文社区:http://www.aboutyun.com/forum-146-1.html

    9)Python (推荐廖雪峰的博客—30小时

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

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


    集群搭建文档1.0版本

    1. 集群规划

    enter image description here

    所有需要用到的软件:

    链接:http://pan.baidu.com/s/1jIlAz2Y 
    密码:kyxl

    2. 前期准备

    2.0 系统安装
    
    2.1 主机名配置
    
        2.1.0 vi /etc/sysconfig/network
            NETWORKING=yes
    
        2.1.1 vi /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=ys02
    
        2.1.2 vi /etc/sysconfig/network
            NETWORKING=yes
    
        2.1.3 vi /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=ys04
    
    2.2 host文件修改
        2.2.0 vi /etc/hosts
            10.1.1.149 ys01
            10.1.1.148 ys02
            10.1.1.146 ys03
            10.1.1.145 ys04
    2.3 关闭防火墙(centos 7默认使用的是firewall,centos 6 默认是iptables)
    
        2.3.0 systemctl stop firewalld.service (停止firewall)
    
        2.3.1 systemctl disable firewalld.service (禁止firewall开机启动)
    
        2.3.2 firewall-cmd --state (查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    
    2.4 免密登录(ys01 ->ys02,03,04)
        ssh-keygen -t rsa
        ssh-copy-id ys02(随后输入密码)
        ssh-copy-id ys03(随后输入密码)
        ssh-copy-id ys04(随后输入密码)
        ssh ys02(测试是否成功)
        ssh ys03(测试是否成功)
        ssh ys04(测试是否成功)
    
    2.5 系统时区与时间同步
        tzselect(生成日期文件)
        cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(将日期文件copy到本地时间中)
    

    3. 软件安装

    3.0 安装目录规划(软件为所有用户公用)
    
        3.0.0所有软件的安装放到/usr/local/ys/soft目录下(mkdir /usr/local/ys/soft)
    
        3.0.1所有软件安装到/usr/local/ys/app目录下(mkdir /usr/local/ys/app)
    
     3.1 JDK(jdk1.7)安装
    
        3.1.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.1.2解压jdk
          cd /usr/local/ys/soft
            #解压
            tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/ys/app
    
        3.1.3将java添加到环境变量中
        vim /etc/profile
        #在文件最后添加
        export JAVA_HOME= /usr/local/ys/app/ jdk-7u80
        export PATH=$PATH:$JAVA_HOME/bin
    
        3.1.4 刷新配置
        source /etc/profile
    
    3.2 Zookeeper安装
    
        3.2.0解压
        tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ys/app(解压)
    
        3.2.1 重命名
        mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)
    
        3.2.2修改环境变量
        vi /etc/profile(修改文件)
        添加内容:
        export ZOOKEEPER_HOME=/usr/local/ys/app/zookeeper
        export PATH=$PATH:$ZOOKEEPER_HOME/bin
    
        3.2.3 重新编译文件:
        source /etc/profile
        注意:3台zookeeper都需要修改
    
        3.2.4修改配置文件
        cd zookeeper/conf
        cp zoo_sample.cfg zoo.cfg
        vi zoo.cfg
        添加内容:
        dataDir=/usr/local/ys/app/zookeeper/data
        dataLogDir=/usr/local/ys/app/zookeeper/log
        server.1=ys01:2888:3888 (主机名, 心跳端口、数据端口)
        server.2=ys02:2888:3888
        server.3=ys04:2888:3888
    
        3.2.5 创建文件夹
        cd /usr/local/ys/app/zookeeper/
        mkdir -m 755 data
        mkdir -m 755 log
    
        3.2.6 在data文件夹下新建myid文件,myid的文件内容为:
        cd data
        vi myid
        添加内容:
            1
        将集群下发到其他机器上
        scp -r /usr/local/ys/app/zookeeper ys02:/usr/local/ys/app/
        scp -r /usr/local/ys/app/zookeeper ys04:/usr/local/ys/app/
    
        3.2.7修改其他机器的配置文件
        到ys02上:修改myid为:2
        到ys02上:修改myid为:3
    
        3.2.8启动(每台机器)
        zkServer.sh start
        查看集群状态
        jps(查看进程)
        zkServer.sh status(查看集群状态,主从信息)
    
    3.3 Hadoop(HDFS+Yarn)
    
        3.3.0 alt+p 后出现sftp窗口,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.3.1 解压jdk
          cd /usr/local/ys/soft
            #解压
            tar -zxvf cenos-7-hadoop-2.6.4.tar.gz -C /usr/local/ys/app
    
        3.3.2 修改配置文件
    
    core-site.xml
    

    enter image description here

    hdfs-site.xml
    
    •  

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    yarn-sifite.xml
    

    enter image description here

    svales
    
    ys02
    ys03
    ys04
    
    3.3.3集群启动(严格按照下面的步骤)
        3.3.3.1启动zookeeper集群(分别在ys01、ys02、ys04上启动zk)
            cd /usr/local/ys/app/zookeeper-3.4.5/bin/
            ./zkServer.sh start
            #查看状态:一个leader,两个follower
            ./zkServer.sh status
    
        3.3.3.2启动journalnode(分别在在mini5、mini6、mini7上执行)
            cd /usr/local/ys/app/hadoop-2.6.4
            sbin/hadoop-daemon.sh start journalnode
            #运行jps命令检验,ys02、ys03、ys04上多了JournalNode进程
    
        3.3.3.3格式化HDFS
            #在ys01上执行命令:
            hdfs namenode -format
            #格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/usr/local/ys/app/hadoop-2.6.4/tmp,然后将/usr/local/ys/app/hadoop-2.6.4/tmp拷贝到ys02的/usr/local/ys/app/hadoop-2.6.4/下。
            scp -r tmp/ ys02:/usr/local/ys /app/hadoop-2.6.4/
            ##也可以这样,建议hdfs namenode -bootstrapStandby
    
        3.3.3.4格式化ZKFC(在ys01上执行一次即可)
            hdfs zkfc -formatZK
    
        3.3.3.5启动HDFS(在ys01上执行)
            sbin/start-dfs.sh
    
        3.3.3.6启动YARN
            sbin/start-yarn.sh
    
    3.3MySQL-5.6安装
        略过
    
    3.4 Hive
    
        3.4.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.4.2解压
        cd /usr/local/ys/soft
    tar -zxvf hive-0.9.0.tar.gz -C /usr/local/ys/app
    
        3.4.3 .配置hive
    
            3.4.3.1配置HIVE_HOME环境变量  vi conf/hive-env.sh 配置其中的$hadoop_home
    
            3.4.3.2配置元数据库信息   vi  hive-site.xml 
    

    添加如下内容:

    enter image description here

    enter image description here

        3.4.4 安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
        如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
        mysql -uroot -p
        #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
    
        3.4.5 Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /usr/local/ys/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
    
        3.4.6启动hive
        bin/hive
    
    3.5 Kafka
        3.5.1 下载安装包
        http://kafka.apache.org/downloads.html
        在linux中使用wget命令下载安装包
        wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
    
      3.5.2 解压安装包
        tar -zxvf /usr/local/ys/soft/kafka_2.11-0.8.2.2.tgz -C /usr/local/ys/app/
    cd /usr/local/ys/app/
    ln -s kafka_2.11-0.8.2.2 kafka
    
      3.5.3 修改配置文件
        cp 
        /usr/local/ys/app/kafka/config/server.properties
       /usr/local/ys/app/kafka/config/server.properties.bak
        vi  /usr/local/ys/kafka/config/server.properties
    

    输入以下内容:

    enter image description here

        3.5.4 分发安装包
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys02: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys03: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys04: /usr/local/ys/app/
        然后分别在各机器上创建软连
        cd /usr/local/ys/app/
        ln -s kafka_2.11-0.8.2.2 kafka
    
     3.5.5 再次修改配置文件(重要)
       依次修改各服务器上配置文件的的broker.id,分别是0,1,2不得重复。
    
     3.5.6 启动集群
        依次在各节点上启动kafka
        bin/kafka-server-start.sh  config/server.properties
    
    3.6 Spark
    
        3.6.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.6.2  解压安装包
    tar -zxvf /usr/local/ys/soft/ spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/ys/app/
    
        3.6.3 修改Spark配置文件(两个配置文件spark-env.sh和slaves)
        cd /usr/local/ys/soft/spark-1.6.1-bin-hadoop2.6
        进入conf目录并重命名并修改spark-env.sh.template文件
        cd conf/
        mv spark-env.sh.template spark-env.sh
        vi spark-env.sh
        在该配置文件中添加如下配置
        export JAVA_HOME=/usr/java/jdk1.7.0_45
        export SPARK_MASTER_PORT=7077
        export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ys01,ys02,ys04 -Dspark.deploy.zookeeper.dir=/spark"
        保存退出
        重命名并修改slaves.template文件
        mv slaves.template slaves
        vi slaves
        在该文件中添加子节点所在的位置(Worker节点)
        Ys02
        Ys03
        Ys04
        保存退出
    
        3.6.4 将配置好的Spark拷贝到其他节点上
        scp -r spark-1.6.1-in-hadoop2.6/ ys02:/usr/local/ys/app
        scp -r spark-1.6.1-bin-hadoop2.6/ ys03:/usr/local/ys/app
        scp -r spark-1.6.1-bin-hadoop2.6/ ys04:/usr/local/ys/app
    
        3.6.5 集群启动
        在ys01上执行sbin/start-all.sh脚本
        然后在ys02上执行sbin/start-master.sh启动第二个Master
    
    3.7 Azkaban
    
        3.7.1 azkaban web服务器安装
            解压azkaban-web-server-2.5.0.tar.gz
            命令: tar –zxvf /usr/local/ys/soft/azkaban-web-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
           将解压后的azkaban-web-server-2.5.0 移动到 azkaban目录中,并重新命名 webserver
         命令: mv azkaban-web-server-2.5.0 ../azkaban
           cd ../azkaban
            mv azkaban-web-server-2.5.0   webserver
    
         3.7.2 azkaban 执行服器安装
             解压azkaban-executor-server-2.5.0.tar.gz
             命令:tar –zxvf /usr/local/ys/soft/azkaban-executor-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
         将解压后的azkaban-executor-server-2.5.0 移动到 azkaban目录中,并重新命名 executor
       命令:mv azkaban-executor-server-2.5.0  ../azkaban
       cd ../azkaban
       mv azkaban-executor-server-2.5.0  executor
    
        3.7.3 azkaban脚本导入
            解压: azkaban-sql-script-2.5.0.tar.gz
            命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz
            将解压后的mysql 脚本,导入到mysql中:
            进入mysql
            mysql> create database azkaban;
            mysql> use azkaban;
            Database changed
            mysql> source /usr/local/ys/soft/azkaban-2.5.0/create-all-sql-2.5.0.sql;
    
        3.7.4 创建SSL配置
        参考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
        命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
        运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下(此处我输入的密码为:123456)
        输入keystore密码: 
        再次输入新密码:
        您的名字与姓氏是什么?
        [Unknown]: 
        您的组织单位名称是什么?
        [Unknown]: 
        您的组织名称是什么?
        [Unknown]: 
        您所在的城市或区域名称是什么?
        [Unknown]: 
        您所在的州或省份名称是什么?
        [Unknown]: 
        该单位的两字母国家代码是什么
         [Unknown]:  CN
        CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
        [否]:  y
    输入<jetty>的主密码(如果和 keystore 密码相同,按回车): 
    再次输入新密码
    完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.如:cp keystore azkaban/webserver
    
        3.7.5 配置文件
        注:先配置好服务器节点上的时区
        先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
        拷贝该时区文件,覆盖系统本地时区配置
        cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
    
        3.7.6 azkaban web服务器配置
        进入azkaban web服务器安装目录 conf目录
        修改azkaban.properties文件
        命令vi azkaban.properties
    

    内容说明如下:

    *Azkaban Personalization Settings
    azkaban.name=Test                           #服务器UI名称,用于服务器上方显示的名字
    azkaban.label=My Local Azkaban                               #描述
    azkaban.color=#FF3601                                                 #UI颜色
    azkaban.default.servlet.path=/index                         #
    web.resource.dir=web/                                                 #默认根web目录
    default.timezone.id=Asia/Shanghai                           #默认时区,已改为亚洲/上海 默认为美国
    
    *Azkaban UserManager class
    user.manager.class=azkaban.user.XmlUserManager   #用户权限管理默认类
    user.manager.xml.file=conf/azkaban-users.xml              #用户配置,具体配置参加下文
    
    *Loader for projects
    executor.global.properties=conf/global.properties    # global配置文件所在位置
    azkaban.project.dir=projects                                                #
    
    database.type=mysql                                                              #数据库类型
    mysql.port=3306                                                                       #端口号
    mysql.host=localhost                                                      #数据库连接IP
    mysql.database=azkaban                                                       #数据库实例名
    mysql.user=root                                                                 #数据库用户名
    mysql.password=Root123456                                                        #数据库密码
    mysql.numconnections=100                                                  #最大连接数
    
    * Velocity dev mode
    velocity.dev.mode=false
    * Jetty服务器属性.
    jetty.maxThreads=25                                                               #最大线程数
    jetty.ssl.port=8443                                                                   #Jetty SSL端口
    jetty.port=8081                                                                         #Jetty端口
    jetty.keystore=keystore                                                          #SSL文件名
    jetty.password=123456                                                             #SSL文件密码
    jetty.keypassword=123456                                                      #Jetty主密码 与 keystore文件相同
    jetty.truststore=keystore                                                                #SSL文件名
    jetty.trustpassword=123456                                                   # SSL文件密码
    
    * 执行服务器属性
    executor.port=12321                                                               #执行服务器端
    
    *邮件设置
    mail.sender=xxxxxxxx@163.com                                       #发送邮箱
    mail.host=smtp.163.com                                                       #发送邮箱smtp地址
    mail.user=xxxxxxxx                                       #发送邮件时显示的名称
    mail.password=**********                                                 #邮箱密码
    job.failure.email=xxxxxxxx@163.com                              #任务失败时发送邮件的地址
    job.success.email=xxxxxxxx@163.com                            #任务成功时发送邮件的地址
    lockdown.create.projects=false                                           #
    cache.directory=cache                                                            #缓存目录
    
             3.7.7azkaban 执行服务器executor配置
             进入执行服务器安装目录conf,修改azkaban.properties
             vi azkaban.properties
    *Azkaban
    default.timezone.id=Asia/Shanghai                                              #时区
    
    * Azkaban JobTypes 插件配置
    azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置
    
    *Loader for projects
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
    
    *数据库设置
    database.type=mysql                                                                       #数据库类型(目前只支持mysql)
    mysql.port=3306                                                                                #数据库端口号
    mysql.host=192.168.20.200                                                           #数据库IP地址
    mysql.database=azkaban                                                                #数据库实例名
    mysql.user=root                                                                       #数据库用户名
    mysql.password=Root23456                                #数据库密码
    mysql.numconnections=100                                                           #最大连接数
    
    *执行服务器配置
    executor.maxThreads=50                                                                #最大线程数
    executor.port=12321                                                               #端口号(如修改,请与web服务中一致)
    executor.flow.threads=30                                                                #线程数
        3.7.8用户配置
        进入azkaban web服务器conf目录,修改azkaban-users.xml
        vi azkaban-users.xml 增加 管理员用户
    

    enter image description here

        3.7.9 web服务器启动
        在azkaban web服务器目录下执行启动命令
        bin/azkaban-web-start.sh
        注:在web服务器根目录运行
        或者启动到后台
        nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &
    
        3.7.10执行服务器启动
    
        在执行服务器目录下执行启动命令
        bin/azkaban-executor-start.sh
        注:只能要执行服务器根目录运行
    
        启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login
    
    3.8 Zeppelin
    参照如下文件:
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915817
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915962
    
    3.9 HBase
        3.9.1解压
        tar –zxvf  /usr/local/ys/soft/hbase-0.99.2-bin.tar.gz  -C /usr/local/ys/app
    
        3.9.2重命名
        cd  /usr/local/ys/app
        mv hbase-0.99.2 hbase
    
        3.9.3修改配置文件
         每个文件的解释如下:
        hbase-env.sh
        export JAVA_HOME=/usr/local/ys/app/jdk1.7.0_80   //jdk安装目录
        export HBASE_CLASSPATH=/usr/local/ys/app/hadoop-2.6.4/etc/hadoop  //hadoop配置文件的位置
        export HBASE_MANAGES_ZK=false #如果使用独立安装的zookeeper这个地方就是false(此处使用自己的zookeeper)
    
    hbase-site.xml
    

    enter image description here

    enter image description here

    Regionservers    //是从机器的域名
    Ys02
    ys03
    ys04
    
    注:此处HBase配置是针对HA模式的hdfs
    
        3.9.4将Hadoop的配置文件hdfs-site.xml和core-site.xml拷贝到HBase配置文件中
        cp /usr/local/ys/app/Hadoop-2.6.4/etc/hadoop/hdfs-site.xml /usr/local/ys/app/hbase/conf
        cp /usr/local/ys/app/hadoop-2.6.4/etc/hadoop/core-site.xml /usr/local/ys/app/hbase/conf
    
        3.9.5发放到其他机器
        scp –r /usr/local/ys/app/hbase ys02: /usr/local/ys/app
        scp –r /usr/local/ys/app/hbase ys03: /usr/local/ys/app
        scp –r /usr/local/ys/app/hbase ys04: /usr/local/ys/app
    
        3.9.6启动
        cd  /usr/local/ys/app/hbase/bin
        ./ start-hbase.sh
    
        3.9.7查看
        进程:jps
        进入hbase的shell:hbase shell
        退出hbase的shell:quit
        页面:http://master:60010/ 
    
    3.10KAfkaOffsetMonitor(Kafka集群的监控程序,本质就是一个jar包)
    
        3.10.1上传jar包
        略
    
    3.10.2 运行jar包
    nohup java -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk ys01,ys02,ys04 --refresh 5.minutes --retain 1.day --port 8089 $
    

    4. 集群调优

    4.1 辅助工具尽量不安装到数据或者运算节点,避免占用过多计算或内存资源。
    
    4.2 dataNode和spark的slave节点尽量在一起;这样运算的时候就可以避免通过网络拉取数据,加快运算速度。
    
    4.3 Hadoop集群机架感知配置,配置之后可以使得数据在同机架的不同机器2份,然后其他机架机器1份,可是两台机器四台虚机没有必要配感知个人感觉。
    
    4.4 配置参数调优
    可以参考http://blog.csdn.net/chndata/article/details/46003399
    

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

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

    enter image description here

    1. 数据导出概念介绍
    2. Sqoop基础知识
    3. Sqoop原理及配置说明
    4. Sqoop数据导入实战
    5. Sqoop数据导出实战、
    6. Sqoop批量作业操作

    推荐学习博客:http://student-lp.iteye.com/blog/2157983 
    官网:http://sqoop.apache.org/

    12)Flume(CSDN,51CTO ,以及官网)—20小时

    enter image description here

    1. FLUME日志采集框架介绍。
    2. FLUME工作机制。
    3. FLUME核心组件。
    4. FLUME参数配置说明。
    5. FLUME采集nginx日志案例(案例一定要实践一下)

    推荐学习博客:http://www.aboutyun.com/thread-8917-1-1.html 
    官网:http://flume.apache.org

    13)Oozie(CSDN,51CTO ,以及官网)–20小时

    enter image description here

    1. 任务调度系统概念介绍。
    2. 常用任务调度工具比较。
    3. Oozie介绍。
    4. Oozie核心概念。
    5. Oozie的配置说明。
    6. Oozie实现mapreduce/hive等任务调度实战案例。

    推荐学习博客:http://www.infoq.com/cn/articles/introductionOozie 
    官网:http://oozie.apache.org/

    14)Hue(CSDN,51CTO ,以及官网)–20小时

    推荐学习博客:http://ju.outofmemory.cn/entry/105162 
    官网:http://gethue.com/

    第四阶段(不断学习阶段)

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

    备注

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

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

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

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

    5)视频课程推荐:

    可以去万能的淘宝购买一些视频课程,你输入“大数据视频课程”,会出现很多,多购买几份(100块以内可以搞定),然后选择一个适合自己的。个人认为小象学院的董西成和陈超的课程含金量会比较高。

    四、持续学习资源推荐

    1. Apache 官网(http://apache.org/
    2. Stackoverflow(https://stackoverflow.com/
    3. Github(https://github.com/)
    4. Cloudra官网(https://www.cloudera.com/)
    5. Databrick官网(https://databricks.com/)
    6. About 云 :http://www.aboutyun.com/
    7. CSDN,51CTO (http://www.csdn.net/http://www.51cto.com/
    8. 至于书籍当当一搜会有很多,其实内容都差不多。

    五、项目案例分析

    1)点击流日志项目分析(此处借鉴CSDN博主的文章,由于没有授权,所以就没有贴过来,下面附上链接)—-批处理

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

    2)Spark Streaming在京东的项目实战(京东的实战案例值得好好研究一下,由于没有授权,所以就没有贴过来,下面附上链接)—实时处理 
    http://download.csdn.net/download/csdndataid_123/8079233

    最后但却很重要一点:每天都会有新的技术出现,要多关注技术动向,持续学习。

    以上内容不保证一年以后仍适用。

    【GitChat达人课】

    1. 前端恶棍 · 大漠穷秋 :《Angular 初学者快速上手教程 
    2. Python 中文社区联合创始人 · Zoom.Quiet :《GitQ: GitHub 入味儿 
    3. 前端颜值担当 · 余博伦:《如何从零学习 React 技术栈 
    4. GA 最早期使用者 · GordonChoi:《GA 电商数据分析实践课
    5. 技术总监及合伙人 · 杨彪:《Gradle 从入门到实战
    6. 混元霹雳手 · 江湖前端:《Vue 组件通信全揭秘
    7. 知名互联网公司安卓工程师 · 张拭心:《安卓工程师跳槽面试全指南

    展开全文
  • java转大数据方向学习路线

    万次阅读 多人点赞 2018-11-02 16:07:41
    本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。 目录 前言 一、背景介绍 二、大数据介绍 正文 一、大数据相关...

    申明:

    本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。


    目录

    前言

    一、背景介绍

    二、大数据介绍

    正文

    一、大数据相关工作介绍

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

    必须掌握的技能11条

    高阶技能6条

    三、大数据学习规划

    第一阶段(基础阶段)

    第二阶段(攻坚阶段)

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

    第四阶段(不断学习阶段)

    四、持续学习资源推荐

    五、项目案例分析


    前言

    一、背景介绍

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

    二、大数据介绍

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

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

    1. 数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。
    2. 数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。
    3. 由于数据增长速度快,数据存储就必须可以水平扩展。
    4. 数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果

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

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

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

    1. 而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。
    2. 为了提高工作效率,加快运速度,出现了一些辅助工具:

      1. Ozzie,azkaban:定时任务调度的工具。
      2. Hue,Zepplin:图形化任务执行管理,结果查看工具。
      3. Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
      4. Python语言:编写一些脚本时会用到。
      5. Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

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

    正文

    一、大数据相关工作介绍

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

    1. 大数据工程师
    2. 数据分析师
    3. 大数据科学家
    4. 其他(数据挖掘等)

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

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

    enter image description here

    必须掌握的技能11条

    1. Java高级(虚拟机、并发)
    2. Linux 基本操作
    3. Hadoop(HDFS+MapReduce+Yarn )
    4. HBase(JavaAPI操作+Phoenix )
    5. Hive(Hql基本操作和原理理解)
    6. Kafka
    7. Storm/JStorm
    8. Scala
    9. Python
    10. Spark (Core+sparksql+Spark streaming )
    11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

    高阶技能6条

    1. 机器学习算法以及mahout库加MLlib
    2. R语言
    3. Lambda 架构
    4. Kappa架构
    5. Kylin
    6. Alluxio

    三、大数据学习规划

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

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

    第一阶段(基础阶段)

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

    1. Linux操作系统介绍与安装。
    2. Linux常用命令。
    3. Linux常用软件安装。
    4. Linux网络。
    5. 防火墙。
    6. Shell编程等。

    官网:https://www.centos.org/download/
    中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

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

    1. 掌握多线程。
    2. 掌握并发包下的队列。
    3. 了解JMS。
    4. 掌握JVM技术。
    5. 掌握反射和动态代理。

    官网:https://www.java.com/zh_CN/
    中文社区:http://www.java-cn.com/index.html

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

    1. Zookeeper分布式协调服务介绍。
    2. Zookeeper集群的安装部署。
    3. Zookeeper数据结构、命令。
    4. Zookeeper的原理以及选举机制。

    官网:http://zookeeper.apache.org/
    中文社区:http://www.aboutyun.com/forum-149-1.html

    第二阶段(攻坚阶段)

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

    1、HDFS

    1. HDFS的概念和特性。
    2. HDFS的shell操作。
    3. HDFS的工作机制。
    4. HDFS的Java应用开发。

    2、MapReduce

    1. 运行WordCount示例程序。
    2. 了解MapReduce内部的运行机制。 
      1. MapReduce程序运行流程解析。
      2. MapTask并发数的决定机制。
      3. MapReduce中的combiner组件应用。
      4. MapReduce中的序列化框架及应用。
      5. MapReduce中的排序。
      6. MapReduce中的自定义分区实现。
      7. MapReduce的shuffle机制。
      8. MapReduce利用数据压缩进行优化。
      9. MapReduce程序与YARN之间的关系。
      10. MapReduce参数优化。

    3、MapReduce的Java应用开发

    官网:http://hadoop.apache.org/
    中文文档:http://hadoop.apache.org/docs/r1.0.4/cn/
    中文社区:http://www.aboutyun.com/forum-143-1.html

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

    1. Hive 基本概念
      1. Hive 应用场景。
      2. Hive 与hadoop的关系。
      3. Hive 与传统数据库对比。
      4. Hive 的数据存储机制。
    2. Hive 基本操作
      1. Hive 中的DDL操作。
      2. 在Hive 中如何实现高效的JOIN查询。
      3. Hive 的内置函数应用。
      4. Hive shell的高级使用方式。
      5. Hive 常用参数配置。
      6. Hive 自定义函数和Transform的使用技巧。
      7. Hive UDF/UDAF开发实例。
    3. Hive 执行过程分析及优化策略

    官网:https://hive.apache.org/
    中文入门文档:http://www.aboutyun.com/thread-11873-1-1.html
    中文社区:http://www.aboutyun.com/thread-7598-1-1.html

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

    1. hbase简介。
    2. habse安装。
    3. hbase数据模型。
    4. hbase命令。
    5. hbase开发。
    6. hbase原理。

    官网:http://hbase.apache.org/
    中文文档:http://abloz.com/hbase/book.html
    中文社区:http://www.aboutyun.com/forum-142-1.html

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

    1. Scala概述。
    2. Scala编译器安装。
    3. Scala基础。
    4. 数组、映射、元组、集合。
    5. 类、对象、继承、特质。
    6. 模式匹配和样例类。
    7. 了解Scala Actor并发编程。
    8. 理解Akka。
    9. 理解Scala高阶函数。
    10. 理解Scala隐式转换。

    官网:http://www.scala-lang.org/
    初级中文教程:http://www.runoob.com/scala/scala-tutorial.html

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

    enter image description here

    1. Spark core
      1. Spark概述。
      2. Spark集群安装。
      3. 执行第一个Spark案例程序(求PI)。
    2. RDD
      1. RDD概述。
      2. 创建RDD。
      3. RDD编程API(Transformation 和 Action Operations)。
      4. RDD的依赖关系
      5. RDD的缓存
      6. DAG(有向无环图)
    3. Spark SQL and DataFrame/DataSet
      1. Spark SQL概述。
      2. DataFrames。
      3. DataFrame常用操作。
      4. 编写Spark SQL查询程序。
    4. Spark Streaming
      1. park Streaming概述。
      2. 理解DStream。
      3. DStream相关操作(Transformations 和 Output Operations)。
    5. Structured Streaming
    6. 其他(MLlib and GraphX )

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

    官网:http://spark.apache.org
    中文文档(但是版本有点老):https://www.gitbook.com/book/aiyanbo/spark-programming-guide-zh-cn/details
    中文社区:http://www.aboutyun.com/forum-146-1.html

    9)Python (推荐廖雪峰的博客—30小时

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

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

    集群搭建文档1.0版本

    1. 集群规划

    enter image description here

    2. 前期准备

    2.0 系统安装
    
    2.1 主机名配置
    
        2.1.0 vi /etc/sysconfig/network
            NETWORKING=yes
    
        2.1.1 vi /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=ys02
    
        2.1.2 vi /etc/sysconfig/network
            NETWORKING=yes
    
        2.1.3 vi /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=ys04
    
    2.2 host文件修改
        2.2.0 vi /etc/hosts
            10.1.1.149 ys01
            10.1.1.148 ys02
            10.1.1.146 ys03
            10.1.1.145 ys04
    2.3 关闭防火墙(centos 7默认使用的是firewall,centos 6 默认是iptables)
    
        2.3.0 systemctl stop firewalld.service (停止firewall)
    
        2.3.1 systemctl disable firewalld.service (禁止firewall开机启动)
    
        2.3.2 firewall-cmd --state (查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    
    2.4 免密登录(ys01 ->ys02,03,04)
        ssh-keygen -t rsa
        ssh-copy-id ys02(随后输入密码)
        ssh-copy-id ys03(随后输入密码)
        ssh-copy-id ys04(随后输入密码)
        ssh ys02(测试是否成功)
        ssh ys03(测试是否成功)
        ssh ys04(测试是否成功)
    
    2.5 系统时区与时间同步
        tzselect(生成日期文件)
        cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(将日期文件copy到本地时间中)

    3. 软件安装

    3.0 安装目录规划(软件为所有用户公用)
    
        3.0.0所有软件的安装放到/usr/local/ys/soft目录下(mkdir /usr/local/ys/soft)
    
        3.0.1所有软件安装到/usr/local/ys/app目录下(mkdir /usr/local/ys/app)
    
     3.1 JDK(jdk1.7)安装
    
        3.1.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.1.2解压jdk
          cd /usr/local/ys/soft
            #解压
            tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/ys/app
    
        3.1.3将java添加到环境变量中
        vim /etc/profile
        #在文件最后添加
        export JAVA_HOME= /usr/local/ys/app/ jdk-7u80
        export PATH=$PATH:$JAVA_HOME/bin
    
        3.1.4 刷新配置
        source /etc/profile
    
    3.2 Zookeeper安装
    
        3.2.0解压
        tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ys/app(解压)
    
        3.2.1 重命名
        mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)
    
        3.2.2修改环境变量
        vi /etc/profile(修改文件)
        添加内容:
        export ZOOKEEPER_HOME=/usr/local/ys/app/zookeeper
        export PATH=$PATH:$ZOOKEEPER_HOME/bin
    
        3.2.3 重新编译文件:
        source /etc/profile
        注意:3台zookeeper都需要修改
    
        3.2.4修改配置文件
        cd zookeeper/conf
        cp zoo_sample.cfg zoo.cfg
        vi zoo.cfg
        添加内容:
        dataDir=/usr/local/ys/app/zookeeper/data
        dataLogDir=/usr/local/ys/app/zookeeper/log
        server.1=ys01:2888:3888 (主机名, 心跳端口、数据端口)
        server.2=ys02:2888:3888
        server.3=ys04:2888:3888
    
        3.2.5 创建文件夹
        cd /usr/local/ys/app/zookeeper/
        mkdir -m 755 data
        mkdir -m 755 log
    
        3.2.6 在data文件夹下新建myid文件,myid的文件内容为:
        cd data
        vi myid
        添加内容:
            1
        将集群下发到其他机器上
        scp -r /usr/local/ys/app/zookeeper ys02:/usr/local/ys/app/
        scp -r /usr/local/ys/app/zookeeper ys04:/usr/local/ys/app/
    
        3.2.7修改其他机器的配置文件
        到ys02上:修改myid为:2
        到ys02上:修改myid为:3
    
        3.2.8启动(每台机器)
        zkServer.sh start
        查看集群状态
        jps(查看进程)
        zkServer.sh status(查看集群状态,主从信息)
    
    3.3 Hadoop(HDFS+Yarn)
    
        3.3.0 alt+p 后出现sftp窗口,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
        3.3.1 解压jdk
          cd /usr/local/ys/soft
            #解压
            tar -zxvf cenos-7-hadoop-2.6.4.tar.gz -C /usr/local/ys/app
    
        3.3.2 修改配置文件
    
    core-site.xml

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

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

    1. 数据导出概念介绍
    2. Sqoop基础知识
    3. Sqoop原理及配置说明
    4. Sqoop数据导入实战
    5. Sqoop数据导出实战、
    6. Sqoop批量作业操作

    推荐学习博客:http://student-lp.iteye.com/blog/2157983
    官网:http://sqoop.apache.org/

    12)Flume(CSDN,51CTO ,以及官网)—20小时

    enter image description here

    1. FLUME日志采集框架介绍。
    2. FLUME工作机制。
    3. FLUME核心组件。
    4. FLUME参数配置说明。
    5. FLUME采集nginx日志案例(案例一定要实践一下)
    6. 推荐学习博客:http://www.aboutyun.com/thread-8917-1-1.html

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

    13)Oozie(CSDN,51CTO ,以及官网)–20小时

    1. 任务调度系统概念介绍。
    2. 常用任务调度工具比较。
    3. Oozie介绍。
    4. Oozie核心概念。
    5. Oozie的配置说明。
    6. Oozie实现mapreduce/hive等任务调度实战案例。

    推荐学习博客:http://www.infoq.com/cn/articles/introductionOozie
    官网:http://oozie.apache.org/

    14)Hue(CSDN,51CTO ,以及官网)–20小时

    推荐学习博客:http://ju.outofmemory.cn/entry/105162
    官网:http://gethue.com/

    第四阶段(不断学习阶段)

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

    备注

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

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

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

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

    5)视频课程推荐:

    可以去万能的淘宝购买一些视频课程,你输入“大数据视频课程”,会出现很多,多购买几份(100块以内可以搞定),然后选择一个适合自己的。个人认为小象学院的董西成和陈超的课程含金量会比较高。

    四、持续学习资源推荐

    1. Apache 官网(http://apache.org/
    2. Stackoverflow(https://stackoverflow.com/
    3. Github(https://github.com/)
    4. Cloudra官网(https://www.cloudera.com/)
    5. Databrick官网(https://databricks.com/)
    6. About 云 :(http://www.aboutyun.com/)
    7. CSDN,51CTO (http://www.csdn.net/,http://www.51cto.com/
    8. 至于书籍当当一搜会有很多,其实内容都差不多。

    五、项目案例分析

    1)点击流日志项目分析(此处借鉴CSDN博主的文章,由于没有授权,所以就没有贴过来,下面附上链接)—-批处理

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

    2)Spark Streaming在京东的项目实战(京东的实战案例值得好好研究一下,由于没有授权,所以就没有贴过来,下面附上链接)—实时处理 

    http://download.csdn.net/download/csdndataid_123/8079233

    最后但却很重要一点:每天都会有新的技术出现,要多关注技术动向,持续学习。

    以上内容不保证一年以后仍适用。

    【GitChat达人课】
    前端恶棍 · 大漠穷秋 :《Angular 初学者快速上手教程 》
    Python 中文社区联合创始人 · Zoom.Quiet :《GitQ: GitHub 入味儿 》
    前端颜值担当 · 余博伦:《如何从零学习 React 技术栈 》
    GA 最早期使用者 · GordonChoi:《GA 电商数据分析实践课》
    技术总监及合伙人 · 杨彪:《Gradle 从入门到实战》
    混元霹雳手 · 江湖前端:《Vue 组件通信全揭秘》
    知名互联网公司安卓工程师 · 张拭心:《安卓工程师跳槽面试全指南》
    --------------------- 
    作者:GitChat技术杂谈 
    来源:CSDN 
    原文:https://blog.csdn.net/gitchat/article/details/78341484 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 在未来10年肯定是大数据的天下,人工智能的爆发,将会有大量企业会进入大数据领域,而从Java程序员转Java大数据就会有天然的优势,因为目前大数据的架构基本都是用Java语言完成,未来10年,Java大数据的需求量会...

    在未来10年肯定是大数据的天下,人工智能的爆发,将会有大量企业会进入大数据领域,而从Java程序员转Java大数据就会有天然的优势,因为目前大数据的架构基本都是用Java语言完成,未来10年,Java大数据的需求量会越来越大。

    现在学习Java的小伙伴,如果想以后不被淘汰,将来势必会进军大数据行列,根据目前的行业动态,Java程序员由于发展的局限性以及随着年龄增长,在竞争方面也越来越容易被年轻一代赶超,因为Java程序员的加班时间过长导致,所以大批Java工程师前辈已经先一步进军大数据了。本文,就来说下大数据的就业岗位有哪些?Java程序员转行大数据需要掌握哪些知识?
    在这里插入图片描述
    一、热门工作岗位

    1、Hadoop开发工程师

    Hadoop是一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop是一个能够对大量数据进行分布式处理的软件框架, 以一种可靠、高效、可伸缩的方式进行数据处理。所以说Hadoop解决了大数据如何存储的问题,因而在大数据学习中是必须学习的知识。

    2、数据分析师

    数据分析师是数据师的一种,指的是不同行业中,专门从事行业数据搜集、整理、分析,并依据数据做出行业研究、评估和预测的专业人员。在工作中通过运用工具,提取、分析、呈现数据,实现数据的商业意义。

    作为一名数据分析师、至少需要熟练SPSS、STATISTIC、Eviews、SAS、大数据魔镜等数据分析软件中的一门,至少能用Acess等进行数据库开发,至少掌握一门数学软件如matalab、mathmatics进行新模型的构建,至少掌握一门编程语言。总之,一个优秀的数据分析师,应该业务、管理、分析、工具、设计都不落下。

    3、数据挖掘工程师

    做数据挖掘要从海量数据中发现规律,这就需要一定的数学知识,最基本的比如线性代数、高等代数、凸优化、概率论等。

    经常会用到的语言包括Python、Java、C或者C++,我自己用Python或者Java比较多。有时用MapReduce写程序,再用Hadoop或者Hyp来处理数据,如果用Python的话会和Spark相结合。

    4、大数据可视化工程师

    随着大数据在人们工作及日常生活中的应用,大数据可视化也改变着人类的对信息的阅读和理解方式。从百度迁徙到谷歌流感趋势,再到阿里云推出县域经济可视化产品,大数据技术和大数据可视化都是幕后的英雄。

    大数据可视化工程师岗位职责:1、依据产品业务功能,设计符合需求的可视化方案。2、 依据可视化场景不同及性能要求,选择合适的可视化技术。3、依据方案和技术选型制作可视化样例。4、配合视觉设计人员完善可视化样例。5、配合前端开发人员将样例组件化。

    很多Java程序员也想转入大数据行业,但是很多Java程序员有一个共同困惑不知道掌握Java那些知识才能很好的转型大数据。

    二、Java程序员转型大数据需要掌握的知识点

    Java程序员想转型大数据其实只需会以下两大知识点即可。

    1、Linux。Linux知识是一个后端开发程序员必备的知识。在大数据领域,服务器环境往往是集群形式,多台服务器。通常会在多台服务器上部署大数据分布式开发环境。因此对Linux基本命令、软件安装以及会写shell脚本来提交大数据作业等知识有一定要求。

    2、Javase。大数据很多技术都是用Java语言编写的。如hadoop。一些大型的大数据项目主要开发语言也是Java。懂Java知识学习大数据很有优势

    Java程序员转型大数据是一个非常好的选择方向。大数据发展方向众多。有大数据开发工程师、数据挖掘分析工程师、大数据运维工程师等。

    所以Java转行大数据是具有很大的优势,好好利用这个优势吧!

    展开全文
  • java转大数据方向如何走?

    千次阅读 2019-04-02 23:48:01
    大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。 先扯一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化、...
  • 做了几年JAVA了,前端后端都做过些项目,最近公司准备上马一个大数据项目,让我来负责,一方面因为我对大数据正好有兴趣,一直找不到机会学习(没有动力啊~),这次机会算是撞上了。 但另一方面,其实我的大数据经验...
  • 如今使用了 23 年的 Java不再免费了,Java程序员是时候该转移了,现在大数据的时代下,更是Java程序员们转型可遇而不可求的机遇。为什么要这么说呢? 因为Java程序员转型大数据工程师有着天然进阶优势,不仅仅是...
  • 个人情况我是本硕机械专业,毕业半年,最初接触java是由于研二的时候,看到了实验室师兄们找工作那个艰难啊,硕士毕业最少的拿了5k的薪水,还是深圳,不由得心里一凉。那时候我开始寻求一丝转机...
  • 1. 大数据离线计算架构 Hadoop , 基于Java开发的,只需要掌握JavaSE基础即可学习大数据; 2. 大数据实时计算架构 Storm , 基于Java开发的,只需要掌握JavaSE基础即可学习大数据; 3. 大数据内存计算架构 Spark , ...
  • java开发转型大数据开发之路(转岗必读)

    千次阅读 多人点赞 2018-10-21 18:57:32
    我从16年的时候从java开发岗位学习之后学习大数据然后跳槽,算是比较早学习大数据的一批了。 所以经常有同学问我关于大数据如何自学,有什么高效的学习线路,从java转大数据,初期如何找工作,这里我就说一下我...
  • java大数据类型

    2021-02-04 10:09:02
    java大数据类型java大数据类型 java大数据类型
  • 那么,Java程序员转大数据工程师容易吗?该如何学习呢? Java程序员转大数据工程师有很好的基础条件 对于Java程序员,大数据的主流平台hadoop是基于Java开发的,所以Java程序员往大数据开发方向转行从语言环境上...
  • 我从16年的时候从java开发岗位学习之后学习大数据然后跳槽,算是比较早学习大数据的一批了。 所以经常有同学问我关于大数据如何自学,有什么高效的学习线路,从java转大数据,初期如何找工作,这里我就说一下我...
  • 大数据一定要学Java吗,Java大数据什么关系?当你迈入大数据的领域,首先必要接受的是大数据开发的洗礼,编程语言作为大数据的基础方向是你入门的突破口,一定要仔细学习。在这里很多同学都会有一个疑问:编程语言...
  • Java写入大数据文件

    热门讨论 2012-03-31 13:49:56
    使用Java写入大数据文件的方法,分文件写入。
  • 大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇。国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发。开发程序员的工作...
  • java大数据编程

    2018-07-21 09:56:28
    java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程java大数据编程
  • Java程序员想转大数据可行吗? Java是全世界使用人数最多的编程语言。不少程序员选择Java作为编程第一语言,随之而来的是Java程序员接近饱和的人才市场。由此,随着大数据时代的到来,有很多Java程序员想要转行...
  • 今天在知乎上看到一个问题,问:你为什么从java开发转大数据方向?大数据方向能走的更远吗?我是从java开发大数据开发的。看到这个问题,想到了几年前,学校刚毕业时,在传统行业做ja...
  • Java开发转大数据开发要做到几点?假设你有Java基础选择了自学大数据,而对于完全没有编程和Java基础的人来说,自学绝对是浪费时间和精力的事情。Java开发转大数据开发要做到几点? 现在已经从之前的java后端开发正式...
  • 大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇。 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发。开发程序员的...
  • Java大数据如何选   大数据方向有很多,目前我们经常说的大数据学习,其实指的是大数据开发! 大数据开发顾名思义学习的主要技术就是编程技术,零基础学习大数据是需要从java和linux学起的。当然,学习...
  • 为什么越来越多的Java工程师转向大数据Java语言在编程中的地位不言而喻,本文分析一下为什么越来越多的java工程师开始转向hadoop? Hadoop是Apache软件基金会的顶级开源项目,是由原雅虎公司Doug Cutting根据Google...
  • java+大数据

    千次阅读 2018-03-31 22:05:45
    java+大数据计划 javaEE项目: 1) 支付宝内部OA系统 (大概15天) 2)阿里菜鸟物流项目 (20天) 3)淘宝商城 项目 (千牛客户端部分)(实现典型的几个模块) (20天) 大数据+人工智能项目 1) 支付宝...
  • Java程序员想转大数据可行吗?Java是全世界使用人数最多的编程语言。不少程序员选择Java做为了自己的编程第一语言,但随之而来的是Java程序员接近饱和的人才市场。由此,随着大数据时代的到来,有很多Java程序员想要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 280,569
精华内容 112,227
关键字:

java转大数据

java 订阅