一样的Java,不一样的HDInsight大数据开发体验

news/2024/5/20 3:39:55 标签: 大数据, mapreduce, kafka, spark, hdfs

1首先开始科普

  • 什么是 HDInsight

Azure HDInsight 是 Hortonworks Data Platform (HDP) 提供的 Hadoop 组件的云发行版,适用于对计算机集群上的大数据集进行分布式处理和分析。目前 HDInsight 可提供以下集群类型:Apache Hadoop、Apache Spark、Apache HBase、Apache Storm、Apache 交互式 Hive(预览版),以及其他包含脚本操作的自定义集群。

  • 什么是 Hadoop

Hadoop 技术堆栈包括相关的软件和实用程序(Apache Hive、HBase、Spark 等),通常包含 Hadoop 分布式文件系统 (HDFS)、适用于作业计划和资源管理的 YARN、适用于并行处理的 MapReduce。Hadoop 最常用于已存储数据的批处理。

  • 什么是 MapReduce

MapReduce 是一个旧软件框架,用于编写并行批量处理大数据集的应用程序。MapReduce 作业将分割大型数据集,并将数据组织成键值对进行处理。MapReduce 作业在 YARN 上运行。

  • 什么是 Java

这个真有必要解释?

通过 Azure HDInsight 服务使用 Hadoop,可以获得很多便利,例如:减少了设置和配置工作,提高了可用性和可靠性,可在不中断作业的情况下进行动态缩放,可灵活使用组件更新和当前版本,并且能与其他Azure 服务(包括 Web 应用和 SQL 数据库)集成。

机智的你理解这些概念了么,接下来我们一起来用 Java 开发一个 MapReduce 程序,然后通过 HDInsight服务运行吧。

想系统学习大数据的话,可以加入大数据技术学习扣扣君羊:522189307

2前期准备

首先你需要准备好 Java JDK 8 或更高版本以及 Apache Maven,随后按照下列方式配置开发环境:

1设置环境变量

请在安装 Java 和 JDK 时设置以下环境变量(同时请注意检查这些环境变量是否已经存在并且包含正确的值):

  • JAVA_HOME -应该指向已安装 Java 运行时环境 (JRE)的目录。例如在 macOS、Unix 或 Linux 系统上,值应该类似于 /usr/lib/jvm/java-7-oracle;在 Windows 中,值类似于 c:\ProgramFiles (x86)\Java\jre1.7。

  • PATH - 应该包含以下路径:

JAVA_HOME(或等效路径)

JAVA_HOME\bin(或等效路径)

安装 Maven 的目录

2创建 Maven 项目

 

1、在开发环境中,通过中断会话或命令行将目录更改为要存储此项目的位置。

2、使用随同 Maven 一起安装的 mvn 命令,为项目生成基架。

 

此命令将使用 artifactID 参数指定的名称(此示例中为 wordcountjava)创建目录。此目录包含以下项:

pom.xml - 项目对象模型 (POM),其中包含用于生成项目的信息和配置详细信息。

src - 包含应用程序的目录。

3、删除 src/test/java/org/apache/hadoop/examples/apptest.java 文件,此示例不使用该文件。                                                                                                                                   添加依赖项

1、编辑 pom.xml 文件,并在<dependencies>部分中添加以下文本:    

                                                                                                                                                                       

定义具有特定版本(在<version> 中列出)的库(在<artifactId> 中列出)。编译时会从默认 Maven 存储库下载这些依赖项,此外也可使用 Maven 存储库搜索来查看详细信息。

<scope>provided</scope>会告知 Maven 这些依赖项不应与此应用程序一起打包,因为它们在运行时由HDInsight 集群提供。

 

注意:使用的版本应与集群上存在的 Hadoop 版本匹配。

2、将以下内容添加到 pom.xml 文件中。 此文本必须位于文件中的 <project>...</project>标记内;例如</dependencies>和 </project>之间。                                                               

个插件配置 Maven Shade Plugin,用于生成 uberjar(有时称为 fatjar),其中包含应用程序所需的依赖项。 它还可以防止在 jar 包中复制许可证,复制许可证在某些系统中可能会导致问题。

第二个插件配置目标 Java 版本。

 

注意:HDInsight 3.4 及更早版本使用 Java 7,HDInsight3.5 使用 Java 8。

 

3、保存 pom.xml 文件。

 

3创建 MapReduce 应用程序

1、转到 wordcountjava/src/main/java/org/apache/hadoop/examples 目录,并将 App.java 文件重命名为WordCount.java。

2、在文本编辑器中打开 WordCount.java 文件,然后将其内容替换为以下文本:  

                                                                                                                                                       

意,包名称为 org.apache.hadoop.examples,类名称为 WordCount。提交 MapReduce 作业时需要使用这些名称。

3、保存文件。

 

4构建应用程序

1、如果尚未到达此目录,请更改为 wordcountjava 目录。

2、使用以下命令生成包含该应用程序的 JAR 文件:                                                                                                                                                                                                      

此命令将清除任何以前构建的项目,下载任何尚未安装的依赖项,然后生成并打包应用程序。

3、命令完成后,wordcountjava/target 目录将包含一个名为 wordcountjava-1.0-SNAPSHOT.jar 的文件。

注意:wordcountjava-1.0-SNAPSHOT.jar 文件是一种 uberjar,其中不仅包含 WordCount 作业,还包含作业在运行时需要的依赖项。

 

5上传 jar 运行 MapReduce 作业

使用以下命令将该jar 文件上传到 HDInsight 头节点:

                                                                                                                                                                                                    

将 USERNAME 替换为集群的 SSH 用户名,将 CLUSTERNAME 替换为 HDInsight 集群名称。

此命令会将文件从本地系统复制到头节点。

随后通过下列步骤运行这个 MapReduce 作业:

1、使用 SSH 连接到 HDInsight。

2、在 SSH 会话中,使用以下命令运行 MapReduce 应用程序:                                                                                                                                                                                    

此命令将启动 WordCountMapReduce 应用程序。输入文件是 /example/data/gutenberg/davinci.txt,输出目录是/example/data/wordcountout。输入文件和输出均存储到集群的默认存储中。

3、作业完成后,请使用以下命令查看结果:          

                                                                                                                                                                                                       

用户会收到单词和计数列表,其包含的值类似于以下文本:

搞定收工!


http://www.niftyadmin.cn/n/1574149.html

相关文章

云硬盘架构升级和性能提升详解

云盘为云服务器提供高可用、高可靠、持久化的数据块级随机存储&#xff0c;其性能和数据可靠性尤为重要。UCloud根据以往的运营经验&#xff0c;在过去一年里重新设计了云盘的底层架构&#xff0c;在提升普通云盘性能的同时&#xff0c;完成了对NVME高性能存储的支持。本文从IO…

Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.

2019独角兽企业重金招聘Python工程师标准>>> Warning: Permanently added the RSA host key for IP address 192.30.253.113 to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Please make sure y 这个应…

【大数据开发】Hadoop的高级编程 (一)

第一小节&#xff1a;如何学好这一章 1.Linux基础 2.Java编程 3.大数据核心组件&#xff0c;hadoop安装&#xff0c;部署&#xff0c;配置等等 第二小节&#xff1a;构建工程 1.新建工程 2.新建工程变成maven工程 3.安装配置maven环境,编辑setting文件 4.idea工具配置maven 5.…

np.repeat函数

np.repeat用法 觉得有用的话,欢迎一起讨论相互学习~Follow Me np.repeat用于将numpy数组重复 一维数组重复三次 import numpy as np # 随机生成[0,5)之间的数&#xff0c;形状为(1,4),将此数组重复3次 pop np.random.randint(0, 5, size(1, 4)).repeat(3, axis0) print("…

【大数据开发】Hadoop的高级编程 (二)

MR模板优化 public class WordCountUpMR extends Configured implements Tool&#xff1b; int status ToolRunner.run(configuration,new WordCountUpMR(),args);import com.google.common.collect.Lists; import org.apache.hadoop.conf.Configuration;import org.apache…

Java编程新手入门要多久

1.Java是什么&#xff1f; Java是一门面向对象编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表&#xff0c;极好地实现…

意法半导体CEO:2019年半导体市场增长率4-6%,汽车和工业市场是两大重要驱动力...

雷锋网消息&#xff0c;意法半导体&#xff08;ST&#xff09;本周五在深圳举行CEO媒体见面会&#xff0c;这是Jean-Marc Chery自今年5月担任意法半导体总裁兼首席执行官以来首次与中国媒体进行深入的沟通。在沟通会上&#xff0c;Chery谈到了MCU需求的变化&#xff0c;IoT、5G…

大数据开发之入门java基础教程

什么是编程思想&#xff1f; 所谓的编程思想&#xff0c;简单的说&#xff0c;就是程序员的思考方式。程序员在编程的时候&#xff0c;需要按照一定的思考方式&#xff0c;把需求变成具体的代码&#xff0c;这种思考方式&#xff0c;就是编程思想。 如何转变思想&#xff1f;…