更新时间:2023-05-29 GMT+08:00

从零开始使用Hadoop

本章节提供从零开始使用Hadoop提交wordcount作业的操作指导,wordcount是最经典的Hadoop作业,它用来统计海量文本的单词数量。

操作步骤

  1. 准备wordcount程序。

    开源的Hadoop的样例程序包含多个例子,其中包含wordcount。可以从https://dist.apache.org/repos/dist/release/hadoop/common/中下载Hadoop的样例程序。

    例如,选择hadoop-x.x.x版本,下载“hadoop-x.x.x.tar.gz”,解压后在“hadoop-x.x.x\share\hadoop\mapreduce”路径下获取“hadoop-mapreduce-examples-x.x.x.jar”,即为Hadoop的样例程序。“hadoop-mapreduce-examples-x.x.x.jar”样例程序包含了wordcount程序。

    hadoop-x.x.x表示Hadoop的版本号,具体以实际为准。

  2. 准备数据文件。

    数据文件无格式要求,准备一个或多个txt文件即可,如下内容为txt文件样例:

    qwsdfhoedfrffrofhuncckgktpmhutopmma
    jjpsffjfjorgjgtyiuyjmhombmbogohoyhm
    jhheyeombdhuaqqiquyebchdhmamdhdemmj
    doeyhjwedcrfvtgbmojiyhhqssddddddfkf
    kjhhjkehdeiyrudjhfhfhffooqweopuyyyy

  3. 上传数据至OBS。

    1. 登录OBS控制台。
    2. 单击“并行文件系统 > 创建并行文件系统”,创建一个名称为wordcount01的文件系统。

      wordcount01仅为示例,文件系统名称必须全局唯一,否则会创建并行文件系统失败。

    3. 在OBS文件系统列表中单击文件系统名称wordcount01,选择“文件 > 新建文件夹”,分别创建program、input文件夹,创建完成后如图1所示。
      图1 wordcount01文件系统文件夹列表
      • program:存放用户程序
      • input:存放用户数据文件
    4. 进入program文件夹,选择“上传文件 > 添加文件”,从本地选择1中下载的程序包,然后单击“上传”,上传完成后如图2所示。
      图2 程序列表
    5. 进入input文件夹,将2中准备的数据文件上传到input文件夹,上传完成后如图3所示。
      图3 数据文件列表

  4. 登录MRS控制台,在左侧导航栏选择“集群列表 > 现有集群”,单击集群名称,该集群需要包含Hadoop组件,且已为MRS集群绑定具有OBS文件系统操作权限的IAM权限委托。

    查看或绑定委托的操作如下:

    1. 登录MRS集群的“概览”页面,查看“委托”参数是否有值,且绑定的委托具有OBS文件系统操作权限。

      • 是,集群已绑定委托。
      • 否,执行4.b
    2. 单击“管理委托”,为集群绑定具有OBS文件系统操作权限的委托。

      您可以直接选择系统默认的“MRS_ECS_DEFAULT_AGENCY”,也可以单击“新建委托”自行创建其他具有OBS文件系统操作权限的委托。

  5. 提交wordcount作业。

    在MRS控制台选择作业管理页签,单击“添加”,进入“添加作业”页面,具体请参见运行MapReduce作业

    图4 wordcount作业
    • 作业类型选择“MapReduce”。
    • 作业名称为“mr_01”。
    • 执行程序路径配置为OBS上存放程序的地址。例如:obs://wordcount01/program/hadoop-mapreduce-examples-x.x.x.jar。
    • 执行程序参数中填写的参数为:wordcount obs://wordcount01/input/ obs://wordcount01/output/。
      • 参数“obs://wordcount01/input/”中的OBS文件系统名需要替换为实际环境创建的文件系统名。
      • 参数“obs://wordcount01/output/”中的OBS文件系统名需要替换为实际环境创建的文件系统名,目录output为一个不存在的目录,具体以实际为准。
    • 服务配置参数无需填写。

    只有集群处于“运行中”状态时才能提交作业。

    作业提交成功后默认为“已接受”状态,不需要用户手动执行作业。

  6. 查看作业执行结果。

    1. 进入作业管理页面,查看作业是否执行完成。

      作业运行需要时间,作业运行结束后,刷新作业列表,查看作业列表如图5所示。

      图5 作业列表

      作业执行成功或失败后都不能再次执行,只能新增或者复制作业,配置作业参数后重新提交作业。

    2. 登录OBS控制台,进入OBS路径,查看作业输出信息。

      进入到5中创建的output路径查看相关的output文件,需要下载到本地以文本方式打开进行查看,如图6所示。

      图6 输出文件列表