上云无忧 > 文档中心 > 百度智能云MapReduce集群 - 使用OpenVPN提交Hadoop作业
百度智能云MapReduce集群 - 使用OpenVPN提交Hadoop作业

文档简介:
本章介绍如何使用OpenVPN在Linux、Windows和Mac OS X操作系统中提交Hadoop作业。 使用客户端提交作业时,需在系统中设置环境变量,即“HADOOP_USER_NAME=hdfs”,或在MapReduce作业中配置,即在程序第一行加上“System.setProperty("HADOOP_USER_NAME","hdfs")”,可实现以hdfs用户的身份提交作业。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本章介绍如何使用OpenVPN在Linux、Windows和Mac OS X操作系统中提交Hadoop作业。

使用客户端提交作业时,需在系统中设置环境变量,即“HADOOP_USER_NAME=hdfs”,或在MapReduce作业中配置,即在程序第一行加上“System.setProperty("HADOOP_USER_NAME","hdfs")”,可实现以hdfs用户的身份提交作业。

Linux

在Linux操作系统下通过OpenVPN提交Hadoop作业。

  1. 下载Hadoop Client。下载地址:http://bmr.bj.bcebos.com/tools/hadoop/hadoop-2.6.0-SNAPSHOT.tar.gz。
  2. 下载Hadoop配置文件。登录控制台,选择“产品服务->MapReduce-集群列表”,进入集群列表页,点击集群名称进入集群详情页,在“工具下载”区点击下载“hadoop-conf.zip”。
  3. 解压“hadoop-conf.zip”。替换“hadoop-2.6.0-SNAPSHOT/etc/hadoop/”下的所有文件为“conf”中的配置文件。
  4. 由于hadoop脚本中使用了配置文件中的java路径,可能和客户端机器不一致。如果客户端机器已经将java加入过path中,请修改bin/hadoop文件:cd至目录hadoop-2.6.0-SNAPSHOT/bin执行命令vi hadoop,修改exec $JAVA $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"为exec java $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"。
  5. 提交hadoop作业。 cd至目录hadoop-2.6.0-SNAPSHOT/bin执行hadoop jar {jar file} {main class path} {parameters}。如提示文件压缩的类找不到,是指镜像缺少这个类,则需在core-site.xml中的“io.compression.codecs”找到该类,并去掉该异常类。

Windows

使用Eclipse在Windows操作系统通过OpenVPN中提交Hadoop作业的过程如下:

  1. 配置Hadoop Client。

    1. Hadoop Client下载地址:http://bmr.bj.bcebos.com/tools/hadoop/hadoop-2.6.0-SNAPSHOT.tar.gz。下载后解压。
    2. 点击下载:https://github.com/srccodes/hadoop-common-2.2.0-bin/archive/master.zip。下载后解压,替换“\hadoop-2.6.0-SNAPSHOT\bin\”中的文件为“\hadoop-common-2.2.0-bin-master\bin\”中的文件。

    注意: 如果系统的jdk是1.8,而集群是1.7,作业打包提交后,可能会出现版本冲突的异常,必须卸载java1.8,重新下载1.7版本安装。

  2. 配置Hadoop配置文件。

    1. 登录控制台,选择“产品服务->MapReduce-集群列表”,进入集群列表页,点击集群名称进入集群详情页,在“工具下载区”点击下载“hadoop-conf.zip”。
    2. 解压后在mapred-site.xml中加入如下代码确保系统一致:

      <property>
          <name>mapred.remote.os</name>
          <value>Linux</value>
      </property>
      <property>
          <name>mapreduce.app-submission.cross-platform</name>
          <value>true</value>
      </property>
  3. 从下列中选择一种方式创建工程。

    • 创建普通java工程:

      1. 复制配置文件“conf”中的所有文件至“src”下。
      2. 添加Hadoop Client的“etc/share”目录下的如下文件至依赖中:mapreduce/*.jar;mapreduce/lib/*.jar;hdfs/*.jar;hdfs/lib/*.jar;yarn/*.jar;yarn/lib/*.jar;common/*.jar;
        common/lib/*.jar。 
    • 创建Maven项目:

      1. 复制配置文件“conf”中的所有文件至“/main/resources”下。
      2. 在pom.xml中配置hadoop-hdfs,hadoop-common,hadoop-mapreduce-client-core,hadoop-mapreduce-client-common,hadoop-mapreduce-client-jobclient。版本须与集群保持一致。
  4. 编写主函数。主函数中需要增加hadoop镜像路径的配置以及作业文件位置的配置。main函数可参考如下代码:

    public static void main(String[] args) throws Exception {
    String hadoop_home = “”;//hadoop mirror path
    String jar_path = “”;
    String input_path = “”;
    String output_path = “”;
    String job_name = “”;
    
    System.setProperty("hadoop.home.dir", hadoop_home);
    
    Configuration conf = new Configuration();
    conf.set("mapreduce.job.jar", jar_path);
    
    Job job = new Job(conf, job_name);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    
    job.setMapperClass(Map.class);
    job.setReducerClass(Reduce.class);
    
    job.setInputFormatClass(TextInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);
    
    FileInputFormat.addInputPath(job, new Path(input_path));
    FileOutputFormat.setOutputPath(job, new Path(output_path));
    
    job.waitForCompletion(true);
    }
  5. 编译提交。

    • 编译提交普通java工程:

      1. 右键点击项目选择“export jar”使用普通打包方式即可。

      2. 右键点击项目选择run as java application,即可向集群提交作业。
    • 编译提交Maven项目:

      1. 右键点击项目选择run as maven install,生成的jar文件会存放在Maven项目包所在目录的target文件夹中。
      2. 复制target中的jar包以备引用,否则会出现文件正在被占用的异常。

Mac

与Linux相同,请参考Linux。

相似文档
  • 访问集群Hadoop Yarn服务页面: 通过Web UI可访问Hadoop Yarn,具体操作如下: 打开“产品服务>MapReduce>MapReduce-集群列表”,点击已创建的集群,进入实例详情页面。 点击“服务页面”栏中的“Hadoop Yarn”对应的链接。 在弹出的认证页面中输入创建集群时设置的用户名和密码即可访问集群服务页面。
  • 建立SSH Tunnel: 集群创建成功后,集群创建成功后,请至“站内信”中获取Master节点的公网IP和SSH端口号,并通过如下配置在Linux环境或Windows环境下建立SSH Tunnel连接集群:
  • 使用hadoop镜像的集群可添加的作业类型是:java,streaming。使用spark镜像的集群可添加作业类型:spark,java,streaming。集群中添加了应用后便可添加该应用的作业,即创建集群时添加了hive应用,则可创建hive作业,添加了pig应用,则可创建pig作业。
  • 在“产品服务>MapReduce>MapReduce-作业列表”中,点击作业名称,可查看作业基本信息。 Hadoop将job分成若干个task进行处理,共有两种类型的task,分别为map task和reduce task。点击下拉尖括号,查看各task的任务处理情形。
  • 目的: 诊断运行失败的作业,在日志中定位失败的原因,精确定位到您的程序中错误的位置。 调优运行成功的作业,基于经验评价作业的配置和参数的合理性,给予您调优的建议。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部