精华内容
下载资源
问答
  • Java开发大数据开发要做到几点?假设你有Java基础选择了自学大数据,而对于完全没有编程Java基础的人来说,自学绝对是浪费时间精力的事情。Java开发大数据开发要做到几点? 现在已经从之前的java后端开发正式...

    Java开发转大数据开发要做到几点?假设你有Java基础选择了自学大数据,而对于完全没有编程和Java基础的人来说,自学绝对是浪费时间和精力的事情。Java开发转大数据开发要做到几点?

    Java开发转行大数据,需要做到哪几点?


    现在已经从之前的java后端开发正式转大数据开发,项目数据50T,日均数据增长20G左右,大概是需求问题吧,工资待遇较上一份翻了一倍(这是重点)。

    当然,我的分享不是能让各位升职加薪跳槽,只是对于技术人来说,技多不压身,以下为个人经验分享,不喜勿喷。主要讲大数据的职业规划方向、大数据开发工程师需get技能、如何系统的学习。

    一、大数据的职业规划方向

    学习目的在于工作上的运用,大数据工程师需get技能总结如下:

    01.Linux 基本操作

    02.python&爬虫介绍

    03.hadoop分布式集中

    04.离线数据处理

    05.实时数据处理

    06.ETL与环境相关

    07.大数据应用与数据挖掘

    08.java高级(虚拟机、并发)

    09..HBase(JavaAPI操作+Phoenix )

    10. Kafka

    11. Spark (Core+sparksql+Spark streaming )

    12.CDH集群

    二、如何系统的学习

    我本人是17年年初开始自学,自学了Linux 基本操作,这个很好学,领悟能力还可以就看书,不行就看视频重复看,大概一周可以搞定。

    然后就学习了CDH集群搭建,Python爬虫,我是java后端开发,这些网上找点资料看点书,很好学,上手也很快。

    这里重点推荐《深入理解Java虚拟机》、《Java高并发实战》必看书籍。

    然后我就停留在这一阶段,停了1个多月的学习计划,后面公司同事离职跳槽跟女友吵架分手等等遇到一些事情,我又想起还是要规划下自己的职业生涯,顺手报了个培训班,遇到了还算不错的老师,这个学习周期3个月就算结业了。计划是想熬完过年再跳,跳槽的人都知道的,金三银四~

    这里提醒一下,如果你觉得自己看书效率太慢,或者容易思维不通的情况,你可以在网上搜集一些课程,跟着课程走也OK 。这个完全根据自己情况决定。如果看书效率不高就很网课,相反的话就自己看书。自制力不强的人就没什么好推荐的,你什么都不适合学。

    展开全文
  • Java开发大数据开发要做到几点?假设你有Java基础选择了自学大数据,而对于完全没有编程Java基础的人来说,自学绝对是浪费时间精力的事情。 现在已经从之前的java后端开发正式转大数据开发,项目数据50T,日均...

    Java开发转大数据开发要做到几点?假设你有Java基础选择了自学大数据,而对于完全没有编程和Java基础的人来说,自学绝对是浪费时间和精力的事情。

    现在已经从之前的java后端开发正式转大数据开发,项目数据50T,日均数据增长20G左右,大概是需求问题吧,工资待遇较上一份翻了一倍(这是重点)。

    当然,我的分享不是能让各位升职加薪跳槽,只是对于技术人来说,技多不压身,以下为个人经验分享,不喜勿喷。主要讲大数据的职业规划方向、大数据开发工程师需get技能、如何系统的学习。

    一、大数据的职业规划方向

    学习目的在于工作上的运用,大数据工程师需get技能总结如下:

    01.Linux基本操作

    02.python&爬虫介绍

    03.hadoop分布式集中

    04.离线数据处理

    05.实时数据处理

    06.ETL与环境相关

    07.大数据应用与数据挖掘

    08.java高级(虚拟机、并发)

    09…HBase(JavaAPI操作+Phoenix)

    10.Kafka

    11.Spark(Core+sparksql+Sparkstreaming)

    12.CDH集群

    二、如何系统的学习

    我本人是17年年初开始自学,自学了Linux基本操作,这个很好学,领悟能力还可以就看书,不行就看视频重复看,大概一周可以搞定。

    然后就学习了CDH集群搭建,Python爬虫,我是java后端开发,这些网上找点资料看点书,很好学,上手也很快。

    这里重点推荐《深入理解Java虚拟机》、《Java高并发实战》必看书籍。

    然后我就停留在这一阶段,停了1个多月的学习计划,后面公司同事离职跳槽跟女友吵架分手等等遇到一些事情,我又想起还是要规划下自己的职业生涯,顺手报了个培训班,遇到了还算不错的老师,这个学习周期3个月就算结业了。计划是想熬完过年再跳,跳槽的人都知道的,金三银四~

    这里提醒一下,如果你觉得自己看书效率太慢,或者容易思维不通的情况,你可以在网上搜集一些课程,跟着课程走也OK。这个完全根据自己情况决定。如果看书效率不高就很网课,相反的话就自己看书。自制力不强的人就没什么好推荐的,你什么都不适合学。
       人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    1.在学习大数据之前,需要具备什么基础
    http://www.duozhishidai.com/article-12916-1.html
    2.大数据工程师培训,需要学习的有哪些课程?
    http://www.duozhishidai.com/article-15081-1.html
    3.大数据的特点是什么,大数据与Hadoop有什么关系?
    http://www.duozhishidai.com/article-13276-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台

    展开全文
  • (a)校验:Hadoop在写入数据到HDFS上时,会为每一个固定长度(默认是512字节)的数据执行一次“校验”,“校验”的值数据一起保存起来。在传输前传输后分别计算一个校验,比较两者之间的值,常采用32...

    1、HDFS数据完整性校验

        (a)校验和:Hadoop在写入数据到HDFS上时,会为每一个固定长度(默认是512字节)的数据执行一次“校验和”,“校验和”的值和数据一起保存起来。在传输前和传输后分别计算一个校验和,比较两者之间的值,常采用32位循环校验码的方式(CRC32)。

        (b)数据块检测程序DataBlockScanner:DataNode运行着一个后台进程(DataBlockScanner),定期对存储在其上面的block进行检测“检验和”,然后将检测结果向NameNode报告。

    注:检查到坏数据如何处理?
            1)客户端在发现坏数据后,会把坏的block和block所在的datanode报告给Namenode;
            2)NameNode会把这个block标记为“已损坏”,NameNode就不会为客户端指向这个block,也不会用这个block去复制到其他DataNode;
            3)NameNode会把一个好的block复制到另一个DataNode上;
            4)NameNode删除掉坏的block。

    2、HDFS上传数据的block与HDFS存储的block关系

          一致的,都是128M,在hadoop2.7.3之前是64M。

    3、Java的同步机制

    4、Synchronized静态方法、非静态方法和代码块的区别

          同步非静态方法时,锁是对象实例本身,即this被系统隐式处理;

          同步静态方法Static时,锁是本类class;

          同步代码块时,需要传递锁对象,表示该对象正为我服务(可以为Object,Integer,String等)

    5、Synchronize的缺陷,它与Lock区别

         1)Synchronize关键词获取锁的线程由于IO或者其他原因被阻塞,又没有释放锁,其他线程将会无限期等待,影响效率,通过Lock可以办到;

         2)多线程读写文件时,read-write和write-write会发生冲突,read-read不会发送冲突,采用Synchronize就不能read-read同时进行,通过Lock可以办到;

         3)Synchronize不能查看线程是否获取到锁,通过Lock可以办到,holdLock()方法。

         4)Lock是一个接口,Synchronize是内置关键字。Lock需要手动释放锁,Synchronize自动释放锁。

     6、Lock接口的实现子类常见的有哪些

         Lock接口提供了多种方法:lock(普通加锁,类似于Synchronize)、unlock(释放锁)、tryLock(尝试获取锁,不会阻塞)、lockInterruptibly(中断锁,未获取到锁的线程可以被中断)。

         1)ReentrantLock(排他锁):采用非公平锁

         2)ReentrantReadWriteLock(读写锁):分为读锁(共享锁)与写锁(独占锁)

    7、Thread.join()的作用

         1)让主线程将锁让给从线程

         2)将并发线程变为串行线程

    8、wait()/notify()与suspend()/resume()区别

        wait()/notify()阻塞时不会释放占用锁,该方法属于Object类,可以在任何位置使用;

        suspend()/resume()阻塞时会释放占用锁,该方法属于Thread类,在Synchronize修饰的方法或代码块中使用(才会有锁释放的意义)。

    9、ThreadLocal为何会导致内存泄漏

        ThreadLocal为每个线程创建一个单独的变量副本,每个线程可以访问自己内部的副本变量。对外提供四种方法:set()、get()、remove()、initialValue()。通过取出Thread中ThreadLocals引用的map,然后从这个map中根据当前ThreadLocal作为参数,取出数据,只是借助ThreadLocal去获取,不是存放与ThreadLocal。

        ThreadLocal实现:每个Thread维护一个ThreadLocalMap映射表,映射表key是ThreadLocal示例本身,value是真正需要存储的Object。而ThreadLocalMap使用ThreadLocal的弱引用来作为key,当把ThreadLocal实例置为null以后,没有任何强引用指向ThreadLocal实例,所以key将会被gc回收。但是,我们的value却不能回收,因为存在一条从CurrentThread连接过来的强引用。因此出现内存溢出。

    10、除了锁,其他保障线程安全的方式

          CAS(compare and swap)实现的volatile关键词

    11、什么是事务,其具备什么特性

          事务是有一步或多步数据库操作序列组成的逻辑执行单元,一个最小的不可再分的工作单元,这系列操作要么全部执行,要么全部放弃执行。具备四个特性:原子性、一致性、持久性、隔离性。

    12、MyISAM和InnoDB的区别

         1)MyIASM是非事务安全的,而InnoDB是事务安全的;

         2)MyIASM锁的粒度是表级的,而InnoDB支持行级锁;

         3)MyIASM支持全文类型索引,而InnoDB不支持;

         4)MyIASM的Select性能更好,InnoDB的Insert和Update性能更好;

         5)MyIASM表保存为文件形式,跨平台使用更加方便。

    13、死锁的四个条件

          请求与保持、互斥、不可抢占、循环等待。

    14、什么是间隙锁

          间隙锁是一个在索引记录之间的间隙上的锁,保证摸个间隙内的数据在锁定情况下不会发生任何改变。如查找时,使用唯一索引搜索唯一行时,不需要间隙锁定;没建立索引、非唯一索引、多个查询条件都会产生间隙锁。

    15、实现多线程的集中方式

          1)实现Runnable接口,实现其中run方法;

          2)继承Thread类,实现其中run方法;

          3)实现Callable接口,重写call方法,通过Submit交给线程池运行。

    其中,Runnable方式与Callable类似,但是Callable具有返回值、可以抛出异常、Future对象监测计算是否完成。

    16、Java线程池种类,核心线程与非核心线程区别

          1)newCacheThreadPool:创建一个可缓存线程池(线程数量不定)

          2)newFixedThreadPool:创建一个定长的线程池(只有核心线程)

          3)newScheduleThreadPool:创建一个定长线程池(包含核心线程与非核心线程)

          4)newSingleThreadPool:只有一个核心线程的线程池(非同步线程池)

    核心线程:固定线程数,可闲置,不会被销毁;非核心线程:闲置超时,会被回收。

    17、Java如何终止一个正在运行的线程

          stop(非安全)、Interrupt(终止阻塞线程、不会终止运行线程)、标志位

    18、Sql优化

          1)Sql尽量使用索引,通过索引查询

          2)子查询通过left join

    19、从输入URL到页面显示的过程

          1)浏览器解析URL:解析网络协议、地址、路径资源

          2)DNS域名解析:URL——>IP地址(迭代、递归寻找)

          3)浏览器获取端口号:http默认80

          4)建立TCP/IP连接,发送HTTP请求:TCP3次握手、Nginx反向代理

          5)服务器重定向响应,返回结果:301永久重定向,302暂时重定向

          6)浏览器渲染解析:HTML与CSS解析

    20、OSI七层网络协议的各自功能、职责

          1)应用层:针对特定应用规定各层协议、时序、表示等、进行封装,如HTTP。

          2)表示层:规定数据的格式化表示、数据格式的转换。

          3)会话层:规定通信时序;数据交换的定界、同步、创建检查点等。

          4)传输层:节点之间可靠地分发数据包。

          5)网络层:路由( IP寻址)、拥塞控制。

          6)数据链接层:检错与纠错(CRC码)、多路访问、寻址。

          7)物理层:定义机械特性,电气特性。

    21、RDD的五大特性

          1)A list of partitions:RDD由许多partition组成

          2)A function for computing each split:对RDD做计算,相当于对RDD的每个split或partition做计算

          3)A list of dependencies on other RDDs:RDD之间有依赖关系

          4)Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned):可为key-value数据自定义分区函数

          5)Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file):运算向数据靠拢

    22、堆和栈的区别

          从两个方面进行回答,内存分区和数据结构两部分。

          内存分区:堆属于线程共享部分,栈属于线程独享部分;堆由系统自动释放,栈需要手动释放和分配;堆的大小大于栈,一般堆可以分配整个内存,栈在win64为1M,Lunix为10M;堆内存地址由低到高,栈地址由高到低。

          数据结构:堆属于非线性结构,是一种特殊的完全二叉树,节点大小大于或小于父节点,即大根堆与小根堆;栈属于操作受限的线性结构,只能在一端插入删除,属于先进后出。

    23、线程池任务拒绝策略

          当线程池的任务缓存队列已满并且线程吃中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务决绝策略,通常包括如下四种:
          1)ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常;

          2)ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常;

          3)ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程);

          4)ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务。

    24、动态规划与递归的区别与关系

          递归:自己调用自己,问题由上至下解决

          动态规划:把问题划分为更小规模的子问题,通过寻找局部最优解得到全局最优解,实际是记忆性的递归,问题自底向上解决。

          引申:递归与迭代的区别:迭代是A不停调用B,利用变量原值推算变量的一个新值。

    展开全文
  • Java和Java大数据有什么区别?

    千次阅读 2020-04-02 15:25:57
    单单提起java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑。...Java和大数据的关系: java是计算机的一门编程语言;可以用来做很多工作,大数据开发属于其中一种;大数据...

    单单提起java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑。那java和java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从java和java大数据的以下方面谈谈两者的区别。

     

     

    Java和Java大数据有什么区别

    Java和大数据的关系:

     

    java是计算机的一门编程语言;可以用来做很多工作,大数据开发属于其中一种;大数据属于互联网方向,就像现在建立在大数据基础上的AI方向一样,他两不是一个同类,但是属于包含和被包含的关系;

     

    java可以用来做大数据工作,大数据开发或者应用不必要用java,可以Python,Scala,go语言等。

     

     

    目前最火的大数据开发平台是Hadoop,而Hadoop则是采用java语言编写。一方面由于hadoop的历史原因,Hadoop的项目诞生于一个java高手;另一方面,也有Java跨平台方面的优势;基于这两个方面的原因,所以Hadoop采用了Java语言。但是也因为Hadoop使用了java所以就出现了“Java大数据”

    Java是我们耳熟能详的编程语言,大数据更是当今科技的明星技术。而java大数据则是java和大数据的结合产物,也可以说是java程序员向大数据程序员的过渡阶段。

    Java和大数据课程区别

    课程方面来看,java和java大数据的区别:

    Java学习课程:Java基础(Java面向对象,常用基础类,线程I/O,异常处理等),javaWeb(HTML5,CSS3,javascript,jQuery,JDBC连接池,servlet等),Java框架(Struts2,Hibernate5,JPA,Spring4,BootStrap,svn & git & Jenkins持续集成等)。

    Java大数据学习课程:是在java课程的基础上加上了部分初级大数据的技术知识,就是让你在精通java之余,还能掌握一些大数据的技术知识。比如说亿级并发架构演进、Linux基础、搭建tomcat环境以及大数据开发云计算等高级Java教程,是Java技术的高端知识。

    从以后的就业薪资待遇来看,java和java大数据的区别:

    Java以后的就业方向单一,薪资就是java程序员的基本水平;java大数据工程师,以后的就业可以从事java方面的工作,也可以涉猎大数据方面的工作,因为对大数据技术知识有所涉猎,所以谈薪资的资本会高一些,但终究高不过大数据的薪资待遇。

    Java开发薪资:

    可以看到,Java薪资处在10-30K的为普遍情况。

     

    Java大数据薪资:

     

    由于大数据产业的火爆,相关职位的待遇也是水涨船高。可以看到,大数据相关职位的平均薪资已经超过月薪20K。

    Java和大数据职业发展区别

    从以后的发展来看,java和java大数据的区别:

    Java工程师的发展:初级java工程师、中级java工程师、高级java工程师;而java大数据工程师以后的发展,相比于java而言,多了一个大数据的方向,利于想向大数据工程师转型的学习者。

    因为想要成为大数据工程师,需要一定的编程基础,而java语言又是现在大数据技术常用的开发语言,所以java大数据是向大数据学习的奠基课程。如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣君羊:522189307

    综上所述,java大数据就是升级版的java,学习大数据一定要有Java基础。如果你是0基础,那么也可以从Java开始学习,逐渐做到大数据,薪资会更高。

    展开全文
  • 毕业以来,还算顺利的进入一家互联网公司,从事Java后端的开发。一路走来将近八年的光景,期间经历过刚毕业工作的狂喜,也遇到过因工作失误而受到的打击。我觉得这都是一种历练,经过这些磨砺,算是学到了不少东西,...
  • Java开发 有关大数据和数据库方面的有什么好一点的书 求推荐 大谢!!!!!!!!!
  • 今天我们来讲讲Java大数据开发当中,必须掌握的四种数据库。 大数据时代的数据,我们可以大致分为结构化数据非结构化数据。其中,结构化数据,主要是依靠传统的关系型数据库去存储,比如说Oracle、MySQL、...
  • 大数据一定要学Java吗,Java和大数据什么关系?当你迈入大数据的领域,首先必要接受的是大数据开发的洗礼,编程语言作为大数据的基础方向是你入门的突破口,一定要仔细学习。在这里很多同学都会有一个疑问:编程语言...
  • Java开发是IT行业的经典岗位,行业当中存在普遍的需求,Web开发、Android开发、游戏开发等岗位,基本上Java语言是主力队伍。而进入大数据时代,Java又在大数据方向上有了用武之地。今天我们主要来讲讲Java大数据开发...
  • 近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注热议。 2017年,Java 程序员面临更加激烈的竞争。 不得不承认,经历过行业...
  • 【此文章转自乐字节】 提起Java或大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑。...Java可以用来做大数据工作,大数据开发或者应用不必要用Java,也可以用Python,Scala.
  • 近年来,微服务架构(Microservices Architecture)已经成为一种主流的软件开发方法论,所谓微服务( Microservices ),就是一些具有足够小的粒度、能够相互协作且自治的服务体系。 微服务架构基于分布式系统,同时借助...
  • 大数据框架的编写支持很多开发语言,目前流行的大数据Hadoop框架,很多部分都是用开源的Java语言编写。Hadoop 的创始人 Doug Cutting 曾说过:Java 在开发者的生产率运行效率之间取得很好的权衡。开发者可以使用...
  • 从工作内容上来说,大数据开发主要是负责大数据挖掘,大数据清洗处理,大数据建模等工作,主要是负责大规模数据的处理应用,工作主要以开发为主,与大数据可视化分析工程师相互配合,从数据中挖掘出价值,为企业...
  • 架构不是一个职业而是一种能力,每一种架构师只不过是在不同的领域里面使用不同的技术,没有什么可对比,就好比如你问一个篮球...架构确定以后,有能力去指导开发去继续设计演化,如果开发设计演化出来的东西架构不...
  • 现在很多学习大数据技术的人会选择学习Java,大数据和Java有什么关系呢,零基础小白怎么...学习期间建议使用Linux操作系统开展实验,未来很多Java开发都离不开Linux操作系统,比如大数据应用开发。 Java是目前使用最
  • 架构师不是一个职业工种,而是一种能力,而且架构师也分很多种,不同领域的架构师是不一样的.比如互联网架构师物联网架构师,没有什么可对比的....架构确定以后要能够指导开发人员根据架构思想去设计演化,...
  • 最近发现有些同学并不太了解大数据开发工程师这个职位,所以想简单介绍一下什么是大数据开发工程师,当前互联网公司的数据开发到底是什么样子的?一般的Java或者PHP工程师在工作上有什么区别? 什么不是大数据开发...
  • Java和大数据的关系

    2020-03-20 21:01:10
    看到很多人都选择学习JavaJava和大数据的关系是怎样的? 诚然,很多Java程序员都纷纷转型大数据,不是因为Java行业饱和,而是想更大程度上突破自己的技术,来获得更多高的成就,当然了还有基本的工资待遇...
  • 简单的说Java语言是做大数据研发的工具之一,不少早期做大数据平台开发的程序员都是做Java开发出身,而且Hadoop平台本身就是采用Java语言开发的,所以很多做大数据开发的程序员第一个排序实验都是使用Java语言开发的...
  • 看到很多人都选择学习JavaJava和大数据的关系是怎样的?诚然,很多Java程序员都纷纷转型大数据,不是因为Java行业饱和,而是想更大程度上突破自己的技术,来获得更多高的成就,当然了还有基本的工资待遇!...
  • 现在已经从之前的java后端开发正式转大数据开发,项目数据50T,日均数据增长20G左右,大概是需求问题吧,工资待遇较上一份翻了一倍(这是重点)。当然,我的分享不是能让各位升职加薪跳槽,只是对于技术人来说,技.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,188
精华内容 1,275
关键字:

java开发和大数据开发

java 订阅