搭建未开启Kerberos认证的Hadoop Yarn集群

发送反馈


SuperMap iServer 分布式分析支持使用Hadoop Yarn集群,您可以参照以下流程自行搭建。本章主要介绍如何搭建未开启Kerberos认证的Hadoop Yarn集群。

软件要求

搭建 Hadoop Yarn集群环境需要配置 Java 环境(JDK 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk,建议使用 JDK 8及以上版本)、配置SSH以及 Hadoop。

本例使用的软件为:

Hadoop安装包:hadoop-2.7.3.tar.gz 存放路径:/home/iserver

JDK安装包:jdk-8u131-linux-x64.tar.gz

搭建流程

本例主要是在两台ubuntu(内存均为12g上搭建1master1workerHadoop Yarn集群,以下是搭建步骤:

  1. 准备两台虚拟机(master、worker)分别在/etc/profile中按如下配置JAVA_HOME:

export JAVA_HOME=/home/supermap/java/jdk1.8.0_131

export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile使环境变量生效。

  1. 在master和worker用户下配置免密登录

别在masterworker上执行ssh-keygen -t rsa -P’’(-P表示密码,可以忽略,默认需要三次回车)  执行完命令后 在/home/hdfs/.ssh目录下生成 私钥文件(id_rsa)、公钥文件(id_rsa.pub)。然后分别在masterworker上执行以下命令

ssh-copy-id -i /home/hdfs/.ssh/id_rsa.pub ip

中,如果在master上执行,则写worker节点对应的ipmasterworker上执行ssh worker/master,验证是否配置成功

  1.  配置Hadoop

一个完整的hadoop包,放在在master的目录中并进行以下配置:

入/home/supermap/hadoop-2.7.6/etc/hadoop目录

    1. hadoop-env.sh增加:

export JAVA_HOME=/home/supermap/java/jdk1.8.0_131

    1. 在yarn-env.sh增加:

export JAVA_HOME=/home/supermap/java/jdk1.8.0_131

    1. yarn-site.xml中增加如下配置:

<configuration>

<property>

  <name>yarn.nodemanager.aux-services</name>

  <value>mapreduce_shuffle</value>

 </property>

 <property>

   <name>yarn.resourcemanager.hostname</name>

   <value>192.168.112.131</value>

 </property>

 <property>

  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

  <value>org.apache.hadoop.mapred.ShuffleHandler</value>

 </property>

<property>

   <name>yarn.resourcemanager.address</name>

   <value>192.168.112.131:8032</value>

</property>

<property>

   <name>yarn.resourcemanager.scheduler.address</name>

   <value>192.168.112.131:8030</value>

</property>

<property>

   <name>yarn.resourcemanager.resource-tracker.address</name>

   <value>192.168.112.131:8031</value>

</property>

<property>

   <name>yarn.resourcemanager.admin.address</name>

   <value>192.168.112.131:8033</value>

</property>

<property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>192.168.112.131:8088</value>

</property>

<!--<property>

   <name>yarn.nodemanager.resource.memory-mb</name>

   <value>8192</value>

</property>-->

<property>

   <name>yarn.scheduler.maximum-allocation-mb</name>

   <value>4096</value>

</property>

</configuration>

    1. core-site.xml中增加如下配置:

<configuration>

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://192.168.112.131:9000</value>

 </property>

<!-- <property>

  <name>io.file.buffer.size</name>

  <value>131072</value>

 </property>-->

 <property>

  <name>hadoop.tmp.dir</name>

  <value>file:/home/supermap/hadoop/tmp</value>

  <description>Abasefor other temporary directories.</description>

 </property>

</configuration>

    1. hdfs-site.xml中增加如下配置:

<configuration>

<property>

   <name>dfs.namenode.http-address</name>

   <value>192.168.112.131:50070</value>

 </property>

<property>

  <name>dfs.namenode.secondary.http-address</name>

  <value>192.168.112.131:9001</value>

 </property>

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:/home/supermap/hadoop/hdfs/name</value>

 </property>

 <property>

  <name>dfs.datanode.data.dir</name>

  <value>file:/home/supermap/hadoop/hdfs/data</value>

  </property>

 <property>

  <name>dfs.replication</name>

  <value>2</value>

 </property>

 <property>

  <name>dfs.webhdfs.enabled</name>

  <value>true</value>

 </property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

    1. mapred-site.xml中增加如下配置:

<configuration>

 <property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.address</name>

  <value>192.168.112.131:10020</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.webapp.address</name>

  <value>192.168.112.131:19888</value>

 </property>

</configuration>

    1. master文件中配置主节点的主机名例如:master;在slaves文件中配置子节点的主机名例如:worker。主节点配置完成后,执行以下命令将配置拷贝到worker上:

Scp –r /home/supermap/hadoop-2.7.6/etc/hadoop root@worker:/home/supermap/hadoop-2.7.6/etc/hadoop

worker就变成yarn集群的一个子节点了,同样在子节点中修改masterslaves文件。 这样就搭建好了一个简单的yarn集群。  

  1.  
  1. 搭建成功后进入/home/supermap/hadoop-2.7.6/bin/下执行./hadoop namenode -format 进行格式化。格式化成功后进入sbin目录下执行./start-all.sh同时启动yarnhdfs,也可以分别执行start-yarn.shstart-   dfs.sh启动yarnhdfs。启动成功后访问yarnweb地址如:http://master:8088  成功后的界面如下:

  1. 在Hadoop Yarn集群的各个子节点下需要配置UGO。具体配置可参见ugo配置