首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

hadoop坚持“运行作业”

Hadoop是一个开源的分布式计算框架,旨在处理大规模数据集的存储和处理。它采用了分布式存储和计算的方式,可以在集群中的多台计算机上并行处理数据。

Hadoop的核心组件包括Hadoop分布式文件系统(HDFS)和Hadoop分布式计算框架(MapReduce)。HDFS是一个可靠且高容错性的分布式文件系统,用于存储大规模数据集。MapReduce是一种并行计算模型,用于将数据分割成小块并在集群中的多台计算机上进行处理。

Hadoop的优势包括:

  1. 可扩展性:Hadoop可以轻松地扩展到数千台服务器,处理大规模数据集。
  2. 容错性:Hadoop具有高度容错性,即使在某些节点发生故障时,数据仍然可以可靠地存储和处理。
  3. 成本效益:Hadoop是开源的,可以在廉价的硬件上运行,降低了成本。
  4. 处理多种数据类型:Hadoop可以处理结构化数据和非结构化数据,包括文本、图像、音频和视频等。
  5. 并行处理:Hadoop使用MapReduce模型进行并行处理,可以加快数据处理速度。

Hadoop的应用场景包括:

  1. 大数据分析:Hadoop适用于处理大规模数据集的分析任务,如数据挖掘、机器学习和统计分析等。
  2. 日志处理:Hadoop可以处理大量的日志数据,用于监控和故障排除。
  3. 图像和视频处理:Hadoop可以用于处理图像和视频数据,如图像识别、视频编码和视频分析等。
  4. 搜索引擎:Hadoop可以用于构建分布式搜索引擎,加快搜索速度和提高搜索结果的准确性。

腾讯云提供了一系列与Hadoop相关的产品和服务,包括云服务器、云存储、云数据库、云监控等。您可以访问腾讯云官方网站了解更多详情:腾讯云Hadoop产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Hadoop】17-在集群上运行MapRedece

本地作业运行器使用单JVM运行一个作业,只要作业需要的所有类都在类路径(classpath)上,那么作业就可以正常执行。在分布式的环境中,情况稍微复杂一些。开始的时候作业的类必须打包成一个作业JAR文件并发送给集群。Hadoop通过搜索驱动程序的类路径自动找到该作业JAR文件,该类路径包含JonfConf或Job上的setJarByClass()方法中设置的类。另一种方法,如果你想通过文件路径设置一个指定的JAR文件,可以使用setJar()方法。JAR文件路径可以是本地的,也可以是一个HDFS文件路径。通过使用像Ant或Maven的构建工具可以方便地创建作业的JAR文件。当给定范例所示的POM时,下面的Maven命令将在包含所有已编译的类的工程目录中创建一个名为hadoop-example.jar的JAR文件:

04

Spark on YARN 部署实验

以前的Spark部署都是使用的standalone方式,集群中的每台机器都安装部署Spark,然后启动Master和Worker进程运行Spark。今天尝试一下Spark on YARN的部署方式。 一、实验目的 1. 只在一台机器上安装Spark,基于已有的Hadoop集群,使用YARN调度资源。 2. 不启动Master和Worker进程提交Spark作业。 3. 通过YARN的WebUI查看Spark作业的执行情况。 二、实验环境: 4台CentOS release 6.4虚拟机,IP地址为 192.168.56.101 192.168.56.102 192.168.56.103 192.168.56.104 192.168.56.101是Hadoop集群的主,运行NameNode和ResourceManager进程。 192.168.56.102、192.168.56.103是Hadoop的从,运行DataNode和NodeManager进程。 192.168.56.104安装Pentaho的PDI,安装目录为/home/grid/data-integration。 Hadoop版本:2.7.2 Spark版本:1.5.0 PDI版本:6.0 Hadoop集群的安装配置参考 http://blog.csdn.net/wzy0623/article/details/50681554 三、安装Spark 只在192.168.56.101一台机器上上安装Spark,具体安装步骤参考 http://blog.csdn.net/wzy0623/article/details/50946766 四、配置步骤 1. 启动Hadoop集群 # 启动hdfs /home/grid/hadoop-2.7.2/sbin/start-dfs.sh # 启动yarn /home/grid/hadoop-2.7.2/sbin/start-yarn.sh 2. 将spark自带的与Hadoop集成的jar包上传到hdfs hadoop fs -put /home/grid/spark/lib/spark-assembly-1.5.0-hadoop2.6.0.jar /user/ 3. 编辑spark-defaults.conf文件,添加如下一行 spark.yarn.jar=hdfs://master:9000/user/spark-assembly-1.5.0-hadoop2.6.0.jar 修改后的spark-defaults.conf文件如图1所示

04

hadoop中的一些概念——数据流

数据流   首先定义一些属于。MapReduce作业(job)是客户端需要执行的一个工作单元:它包括输入数据、MapReduce程序和配置信息。Hadoop将作业分成若干个小任务(task)来执行,其中包括两类任务,map任务和reduce任务。   有两类节点控制着作业执行过程,:一个jobtracker以及一系列tasktracker。jobtracker通过调度tasktracker上运行的任务,来协调所有运行在系统上的作业。tasktracker在运行任务的同时,将运行进度报告发送给jobtracker,jobtracker由此记录每项作业任务的整体进度情况。如果其中一个任务失败,jobtracker可以再另外衣tasktracker节点上重新调度该任务。   Hadoop将MapReduce的输入数据划分成等长的小数据块,称为输入分片(input split)或简称分片。Hadoop为每个分片构建一个map任务,并由该任务来运行用户自定义的map函数从而处理分片中的每条记录。   拥有许多分片,意味着处理每个分片所需要的时间少于处理整个输入数据所花的时间。因此,如果我们并行处理每个分片,且每个分片数据比较小,那么整个处理过程将获得更好的负载平衡,因为一台较快的计算机能够处理的数据分片比一台较慢的计算机更多,且成一定比例。即使使用相同的机器,处理失败的作业或其他同时运行的作业也能够实现负载平衡,并且如果分片被切分的更细,负载平衡的质量会更好。   另一方面,如果分片切分的太小,那么管理分片的总时间和构建map任务的总时间将决定着作业的整个执行时间。对于大多数作业来说,一个合理的分片大小趋向于HDFS的一个块的大小,默认是64MB,不过可以针对集群调整这个默认值,在新建所有文件或新建每个文件时具体致死那个即可。   Hadoop在存储有输入数据(Hdfs中的数据)的节点上运行map任务,可以获得最佳性能。这就是所谓的数据本地化优化。现在我们应该清楚为什么最佳分片大小应该与块大小相同:因为它是确保可以存储在单个节点上的最大输入块的大小。如果分片跨越这两个数据块,那么对于任何一个HDFS节点,基本上不可能同时存储这两个数据块,因此分片中的部分数据需要通过网络传输到map任务节点。与使用本地数据运行整个map任务相比,这种方法显然效率更低。   map任务将其输出写入本地硬盘,而非HDFS,这是为什么?因为map的输出是中间结果:该中间结果由reduce任务处理后才能产生最终输出结果,而且一旦作业完成,map的输出结果可以被删除。因此,如果把它存储在HDFS中并实现备份,难免有些小题大做。如果该节点上运行的map任务在将map中间结果传送给reduece任务之前失败,Hadoop将在另一个节点上重新运行这个map任务以再次构建map中间结果。   reduce任务并不具备数据本地化的优势——单个reduce任务的输入通常来自于所有mapper的输出。在下面的李宗中,我们仅有一个reduce任务,其输入是所有map任务的输出。因此,排过序的map输出需要通过网络传输发送到运行reduce任务的节点。数据在reduce端合并,然后由用户定义的reduce函数处理。reduce的输出通常存储在HDFS中以实现可靠存储。对于每个reduce输出的HDFS块,第一个副本存储在本地节点上,其他副本存储在其他机架节点中。因此,reduce的输出写入HDFS确实需要占用网络带宽,但这与正常的HDFS流水线写入的消耗一样。   一个reduce任务的完成数据流如下:虚线框表示节点,虚线箭头表示节点内部数据传输,实线箭头表示节点之间的数据传输。

02
领券