Hadoop】hadoop技术如何应用到工作中?

2020-09-09 16:02发布

6条回答
敦敦宁
2楼 · 2020-09-09 16:10

Java

大家都知道Java的方向有JavaSE、JavaEE、JavaME,学习大数据要学习那个方向呢?只需要学习Java的标准版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技术在大数据技术里用到的并不多,只需要了解就可以了,当然Java怎么连接数据库还是要知道的,像JDBC一定要掌握一下。

有同学说Hibernate或Mybites也能连接数据库啊,为什么不学习一下,我这里不是说学这些不好,而是说学这些可能会用你很多时间,到最后工作中也不常用,我还没看到谁做大数据处理用到这两个东西的,当然你的精力很充足的话,可以学学Hibernate或Mybites的原理,不要只学API,这样可以增加你对Java操作数据库的理解,因为这两个技术的核心就是Java的反射加上JDBC的各种使用。


Linux

因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。


Hadoop

这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

YARN是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源比如我们就不用再单独建一个spark的集群了,让它直接跑在现有的hadoop yarn上面就可以了。


其实把Hadoop的这些组件学明白你就能做大数据的处理了,只不过你现在还可能对"大数据"到底有多大还没有个太清楚的概念,听我的别纠结这个。等以后你工作了就会有很多场景遇到几十T/几百T大规模的数据,到时候你就不会觉得数据大真好,越大越有你头疼的。当然别怕处理这么大规模的数据,因为这是你的价值所在,让那些个搞Javaee的php的html5的和DBA的羡慕去吧。


记住学到这里可以作为你学大数据的一个节点。


Zookeeper


这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

Mysql

我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。


Sqoop


这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。


Hive


这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。


Oozie


既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。


Hbase


这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。


Kafka


这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了。


因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。

Spark


它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。


会这些东西你就成为一个专业的大数据开发工程师了,月薪2W都是小毛毛雨


学习大数据的两大基础就是JAVA和Linux,学习顺序不分前后。需要同时掌握,才可以继续大数据课程的学习。

  • Java:大家都知道Java的方向有JavaSE、JavaEE、JavaME,学习大数据要学习那个方向呢?
    只需要学习Java的标准版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技术在大数据技术里用到的并不多,只需要了解就可以了,当然Java怎么连接数据库还是要知道的,像JDBC一定要掌握一下,有同学说Hibernate或Mybites也能连接数据库啊,为什么不学习一下,我这里不是说学这些不好,而是说学这些可能会用你很多时间,到最后工作中也不常用,我还没看到谁做大数据处理用到这两个东西的,当然你的精力很充足的话,可以学学Hibernate或Mybites的原理,不要只学API,这样可以增加你对Java操作数据库的理解,因为这两个技术的核心就是Java的反射加上JDBC的各种使用。

  • Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。


爱学习的小巴
3楼 · 2020-09-09 16:21

在线旅游:目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报道过的Expedia也在其中。 移动数据:Cloudera运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop来支撑的,也就是说,包括数据的存储以及无线运营商的数据处理等,都是在利用Hadoop技术。 电子商务:这一场景应该是非常确定的,eBay就是最大的实践者之一。国内的电商在Hadoop技术上也是储备颇为雄厚的。 能源开采:美国Chevron公司是全美第二大石油公司,他们的IT部门主管介绍了Chevron使用Hadoop的经验,他们利用Hadoop进行数据的收集和处理,其中这些数据是海洋的地震数据,以便于他们找到油矿的位置。节能:另外一家能源服务商Opower也在使用Hadoop,为消费者提供节约电费的服务,其中对用户电费单进行了预测分析。 基础架构管理:这是一个非常基础的应用场景,用户可以用Hadoop从服务器、交换机以及其他的设备中收集并分析数据。 图像处理:创业公司Skybox Imaging使用Hadoop来存储并处理图片数据,从卫星中拍摄的高清图像中探测地理变化。 诈骗检测:这个场景用户接触的比较少,一般金融服务或者政府机构会用到。利用Hadoop来存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。 IT安全:除企业IT基础机构的管理之外,Hadoop还可以用来处理机器生成数据以便甄别来自恶意软件或者网络中的攻击。 医疗保健:医疗行业也会用到Hadoop,像IBMWatson就会使用Hadoop集群作为其服务的基础,包括语义分析等高级分析技术等。医疗机构可以利用语义分析为患者提供医护人员,并协助医生更好地为患者进行诊断。


猜不到结尾
4楼 · 2020-09-09 16:27

第一点:

在数据仓库中,有个很重要的组成部分叫做ETL,也就是数据的抽取,清洗,装载。

每个数据仓库都会有自己的ETL工具,我们公司目前是自己开发的一套ETL工具

目的是:从各个异构的环境中抽取数据,做简单的清洗,并同步到不同的目标中

HADOOP是我们的目标之一

拿前台网站来说,他们的数据一般存储在oracle中,我们的ETL工具通过OCI将数据从源系统中抽取出来直接落地在HDFS上

这些数据可以同步到其他目标系统,也可以直接通过MAPRED或者HIVE进行运算


我是大脸猫
5楼 · 2020-09-09 16:47

企业一直在寻找从数据中缺德商业价值的方法。比如将重点放在分析上,将其作为获得价值的主要来源。而这正是Hadoop的用武之地,因为它不仅能够有效地处理大量数据,而且非常实惠。有了它的帮助,即使是小型企业也可以扩展其现有的IT系统。由于这个原因,预计未来几年Hadoop的使用量还将增加。事实上,根据TDWI进行的一项调查显示,在过去两年中,Hadoop集群的数量增加了60%以上。

什么是Hadoop?

Hadoop是一个软件库,它允许在分布式系统中存储大数据集,并借助简化的编程模块在集群中处理这些数据集。

Hadoop的不同模块包括:

Hadoop Common - 支持Hadoop不同组件的模块。

HDFS - 创建抽象并帮助更快地访问存储的应用程序和数据。

YARN - 帮助管理和调度集群中的资源和作业。

Map Reduce - 基于YARN系统,有助于并行处理大数据。

Hadoop对企业的好处

如果你还没将Hadoop集成到生产环境中,那么需要尽快了解一下。因为使用它的企业取得了积极的效果。预计到2020年底,全球Hadoop市场的收入将超过5000万美元。因此,企业开始使用Hadoop已经没有比现在更完美的时间了。

经济和可扩展

与其他软件解决方案相比,Hadoop非常实惠且具有成本效益。它非常具有可扩展性,因为它可以轻松地在廉价服务器上分发大型数据集。

在传统和基本的解决方案中,如果不从预算中投入一些金钱,就无法进行扩展。大多数企业删除原始数据并保留重要数据以降低处理成本。

虽然它在短期内是有益的,但如果想使用这些原始数据来实现不同的目标,你将来将面临困难。使用Hadoop,无需删除原始数据,因为它提供了一些可用于扩展业务的功能。

多面手

Hadoop允许企业访问新的数据源和其他各种数据集。各种数据集有助于企业充分利用大型数据存储库。Hadoop的灵活性和多功能性的一个例子是它能够访问社交网站,如Facebook,Instagram,Twitter等,收集大量有价值的信息。如果数据和信息得到适当使用,那么企业发挥其全部潜力将具有重要价值。

快速

Hadoop可以轻松映射企业服务器中集群上的任何数据。Hadoop存储系统使用的工具和数据在同一台服务器上;因此,它允许快速处理和检索数据和信息。

在Hadoop的帮助下,你还可以在几分钟内处理非结构化数据。Hadoop的高速处理使其成为比市场上其他选择更好的选择。

安全

Hadoop为任何企业或企业提供全面的安全性。其安全参数不允许从外部进行任何未经授权的访问。它可用作屏蔽,并在有任何不必要的系统访问时发出警告。

每当你将特定信息或数据存储到集群的特定节点时,它也会复制到其他节点中。因此,当其中一个节点崩溃或被破坏时,你始终可以从其他节点访问数据。

在企业中集成Hadoop的最佳实践

如上,你现在已经了解了Hadoop的优势,让我们来看一下将其集成到企业中应遵循的最佳实践。这些是适用于小型和大型企业的七种最佳实践。

实践1:定义用法

需要做的第一件事是定义Hadoop的初始用法。你可能已经考虑过建立一个庞大的数据库,但建议不要开始大规模,而是要实现可以帮助你进行数据处理的小型且可实现的目标。

首先定义数据访问和所需的不同类型的数据,以及访问数据的方式,如数据提取,准备报告,可视化等。你必须使用不同的数据提取方法来定义每个边界。

实践2:使用现有企业框架

关于IT的最好的事情是你不必发明新的方法和技术。有许多库和框架可以帮助你将Hadoop引入系统。因此,使用监控数据访问,通信等功能的框架。其中一些框架包括Spring,JAX-RS等。

这些类型的框架的好处是开发人员不需要将宝贵的时间花在控制过程上;相反,他们可以将其用于业务逻辑并制定新方法以制定业务规模。

实践3:数据质量

在Hadoop开发中,数据质量非常重要。如果系统正在监控管理工具,那么Hadoop开发还应该与用于在出现异常时捕获的工具一起使用。你还可以实施数据协调框架来处理任何数据质量问题。

实践4:数据建模

由于Hadoop可以存储任何类型的文件,因此许多开发人员只需向其投放数据并期望获得最佳处理性能。这不是处理数据的最佳方式;相反,你需要根据其模式定制数据建模。还需要了解数据是以数据格式还是数据访问方法来利用。

实践5:数据沿袭

随着数据集的增长,你需要跟踪数据沿袭。你可以通过向传入数据添加元数据来执行此操作。Hadoop有几个优点,可帮助你直接从源到目标跟踪数据质量和元素。还可以在Hadoop集群中分配数据访问权限和目录不同的数据集。

实践6:安全

虽然Hadoop非常安全,但你需要遵循最佳使用指南。使用基于目录的安全性,例如Active Directory和LDAP,这使得它非常安全和可管理。Apache Sentry有助于在Hadoop集群中实施元数据的安全性。为了更细粒度的安全性,可以选择数据集的虚拟方法。

写在最后

随着全球的技术和业务不断发展,Hadoop的采用也在不断增加。这只是一个开始,在未来几年,小规模和大型企业都会将其纳入他们的系统。您需要做的就是遵循上面列出的最佳实践以获得最大的收益。


苏橙C
6楼 · 2020-09-09 20:55

什么是Hadoop?

Hadoop是一个软件库,它允许在分布式系统中存储大数据集,并借助简化的编程模块在集群中处理这些数据集。

Hadoop的不同模块包括:

Hadoop Common - 支持Hadoop不同组件的模块。

HDFS - 创建抽象并帮助更快地访问存储的应用程序和数据。

YARN - 帮助管理和调度集群中的资源和作业。

Map Reduce - 基于YARN系统,有助于并行处理大数据。


HARPPRTのIT
7楼 · 2020-11-09 00:08

HADOOP是我们的目标之一

拿前台网站来说,他们的数据一般存储在oracle中,我们的ETL工具通过OCI将数据从源系统中抽取出来直接落地在HDFS上

这些数据可以同步到其他目标系统,也可以直接通过MAPRED或者HIVE进行运算


相关问题推荐

  • 回答 1

    /data/hadoop-2.7.0/logsgedit hadoop-neworigin-datanode-s100.log查看clusterID发现datanode和namenode之间的ID不一致进入hdfs-site.xml 配置文件查看:[hdfs-site.xml]dfs.namenode.name.dir/home/neworigin/hadoop/hdfs/namedfs.data......

  • 回答 1

    Kafka是一个高吞吐量分布式消息系统。linkedin开源的kafka。 Kafka就跟这个名字一样,设计非常独特。首先,kafka的开发者们认为不需要在内存里缓存什么数据,操作系统的文件缓存已经足够完善和强大,只要你不搞随机写,顺序读写的性能是非常高效的。kafka的数...

  • 回答 3

    将 hadoop执行job命令写到shell脚本中。类似 hadoop jar  x.jar  ×××.MainClassName inputPath outputPath这种命令。hadoop客户机在本地,使用 Process执行shell脚本,java执行本地shell脚本的代码  1234Process process =null;String command1 ...

  • 回答 1

    1

  • 回答 1

    public static void test1(String user, String keytab, String dir) throws Exception {         Configuration conf = new Configuration();        // conf.set(fs.defaultFS, hdfs://hadoop01:8020);         c...

  • 回答 1

          Hello, world! ]]>  

  • 回答 2

    Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。       HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布...

  • 回答 2

    Hadoop的三大核心组件 分别是 :HDFS(Hadoop Distribute File System):hadoop的数据存储 工具。YARN(Yet Another Resource Negotiator,另一种 资源协调者):Hadoop 的资源管理 器。Hadoop MapReduce:分布式计算 框架...

  • 回答 8

    选择开始菜单中→程序→【managementsqlserver2008】→【sqlservermanagementstudio】命令,打开【sqlservermanagementstudio】窗口,并使用windows或sqlserver身份验证建立连接。在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点右键单击【数...

  • 回答 1

  • 回答 7

    Hadoop的三大核心组件分别是:1、HDFS(Hadoop Distribute File System):hadoop的数据存储工具。2、YARN(Yet Another Resource Negotiator,另一种资源协调者):Hadoop 的资源管理器。3、Hadoop MapReduce:分布式计算框架。HDFS是一个高度容错性的系统,适合部...

  • 回答 11

    Hadoop的三大核心组件分别是:1、HDFS(Hadoop Distribute File System):hadoop的数据存储工具。2、YARN(Yet Another Resource Negotiator,另一种资源协调者):Hadoop 的资源管理器。3、Hadoop MapReduce:分布式计算框架。...

  • 回答 4

    hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度)。

  • 回答 5

    Hadoop主要是分布式计算和存储的框架,所以Hadoop工作过程主要依赖于HDFS(Hadoop Distributed File System)分布式存储系统和Mapreduce分布式计算框架。

  • 回答 7

    1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖;2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理...

  • 回答 6

    1.Hbase即 HadoopDatabase 的简称,也就是基于Hadoop数据库,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如交易清单、日志明细、轨迹行为等。2. Hive是Hadoop的数据仓库,严格地讲并非数据库,主要是让开发人员能够通过SQL来计...

没有解决我的问题,去提问