mesos上安装hadoop过程简介

转载 2015年11月19日 12:33:14
有关于mesos的安装过程,可以参见上一篇文章。本文假设mesos的运行环境已经配置、部署成功。mesos-0.9.0中集成了hadoop-0.20.205.0这个版本的hadoop,是否对于其他版本的hadoop支持,本文没有验证。
1、进入安装时编译mesos的目录:mesos-0.9.0,然后执行make hadoop命令,假如没有发生任何异常,可以直接进入下一步,假如出现这样的错误:
[javac] /home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java:399: 错误: 类型参数? extends T不在类型变量E的范围内 [javac] /home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java:396: 错误: 类型参数? extends T不在类型变量E的范围内 BUILD FAILED
/home/mesos/mesos-0.9.0/build/hadoop/hadoop-0.20.205.0/build.xml:659:
The following error occurred while executing this line: /home/mesos/mesos-0.9.0/build/hadoop/hadoop-0.20.205.0/src/contrib/build.xml:30:
The following error occurred while executing this line: /home/mesos/mesos-0.9.0/build/hadoop/hadoop-0.20.205.0/src/contrib/build-contrib.xml:193:
Compile failed; see the compiler error output for details.
Total time: 10 seconds Oh no! We failed to run 'MESOS_JAR=/home/mesos/mesos-0.9.0/build/src/mesos-0.9.0.jar ant'. If you need help try emailing:
我们应该进入 /home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java
将解决方法是把Enum改成Enum,两处都要改动,重新make hadoop,就可以执行成功。
这一步其实很关键,因为假如没有成功的话,在后面启动jobtracker的时候会爆出一些莫名其妙的错误,让人很是头疼,至于错误的原因我目前也是不是很清楚,可能是jdk版本不同造成的!


2、make hadoop执行完毕之后会在mesos-0.9.0的目录中生成一个hadoop/hadoop-0.20.205.0的目录,有关于hadoop的所有东西,这下面都有了。
这个时候我们要将编译生成的两个jar包拷贝到hadoop的目录下(其实这一步不是必须的,这样做主要为了后面指明这个两个jar包的位置的时候比较的方便),分别是:/home/ddx/mesos-0.9.0/protobuf-2.4.1.jar和/home/ddx/mesos-0.9.0/src/mesos-0.9.0.jar:
cp /home/ddx/mesos-0.9.0/protobuf-2.4.1.jar /home/ddx/mesos-0.9.0/hadoop/
cp /home/ddx/mesos-0.9.0/src/mesos-0.9.0.jar /home/ddx/mesos-0.9.0/hadoop/


3、然后进入/home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/conf/目录下,配置:mapred-site.xml,core-site.xml,hdfs-site.xml,hadoop-env.sh,masters,slaves这六个文件,如下:
(1)core-site.xml


<configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://master:54310</value>
  <description>The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.</description>
</property>
</configuration>
~


(2)hdfs-site.xml


<configuration>
<property>
  <name>dfs.replication</name>
  <value>3</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>
</configuration>
~


(3)mapred-site.xml


<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>master:54311</value>
  </property>
  <property>
    <name>mapred.jobtracker.taskScheduler</name>
    <value>org.apache.hadoop.mapred.MesosScheduler</value>
  </property>
  <property>
    <name>mapred.mesos.master</name>
    <value>master:5050</value>
  </property>
</configuration>
~


(4)hadoop-env.sh在其中追加一下内容:


export PROTOBUF_JAR=/home/ddx/mesos-0.9.0/hadoop/protobuf-2.4.1.jar


# Mesos.
export MESOS_JAR=/home/ddx/mesos-0.9.0/hadoop/mesos-0.9.0.jar


# Native Mesos library.
export MESOS_NATIVE_LIBRARY=/home/ddx/mesos/lib/libmesos.so


# The java implementation to use.  Required.
export JAVA_HOME=/usr/local/jdk1.7.0_09/


# Extra Java CLASSPATH elements.  Optional.
export HADOOP_CLASSPATH=/home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/build/contrib/mesos/classes:${MESOS_JAR}:${PROTOBUF_JAR}
(5)masters
master


(6)slaves
slave1
slave2
其中master和slave的关系与上文中mesos的配置时一样的。


4、将编译配置好的文件/home/ddx/mesos-0.9.0/hadoop/拷贝到slave1和slave2的相同路径下。
scp -r /home/ddx/mesos-0.9.0/hadoop slave1:/home/ddx/mesos-0.9.0/
scp -r /home/ddx/mesos-0.9.0/hadoop slave2:/home/ddx/mesos-0.9.0/


5、在master节点上了的/home/ddx/mesos-0.9.0/hadoop/hadoop-0.20.205.0/目录下:
bin/hadoop namenode -format
对了这里还有一点需要注意:就是hadoop目录的所有者问题,一定要将目录的所有者改为当前运行hadoop的用户,否则容易出现权限的错误。


6、启动hdfs
bin/start-dfs.sh


7、启动jobtracker
bin/hadoop jobtracker
执行到这一步假如没有出现错误,hadoop就已经成功和mesos对接起来了,我们此时登陆master:8080端口就可以看到,Active Framwork中出现了hadoop。


8、启动一个wordcount的测试程序:
(1)bin/hadoop dfs -mkdir /usr/hadoop/input         创建一个输入文件的存储目录。
(2)bin/hadoop dfs -copyFromLocal /home/ddx/hello.txt /usr/hadoop/input                  将测试文件拷贝到存储目录下
(3)bin/hadoop jar hadoop-examples-0.20.205.0.jar wordcount /usr/hadoop/input /usr/hadoop/output                   执行wordcount程序
(4)bin/hadoop dfs -ls /usr/hadoop/output           查看输出目录:


Found 3 items
-rw-r--r--   3 ddx supergroup          0 2013-01-23 15:17 /usr/hadoop/output/_SUCCESS
drwxr-xr-x   - ddx supergroup          0 2013-01-23 15:16 /usr/hadoop/output/_logs
-rw-r--r--   3 ddx supergroup        133 2013-01-23 15:16 /usr/hadoop/output/part-r-00000


(5)bin/hadoop dfs -cat /usr/hadoop/output/part-r-00000          查看输出结果:


boby    1
dao 1
dong    1
han 1
hello   3
husband 1
is  4
lei 1
li  1
meet    1
mei 2
my  3
name    2
name?   1
nice    1
to  1
what    1
xiang   1
you 1
your    1


9、可以再次登陆master:8080端口查看各个task的分配情况。
小结:本文主要参见其他前辈的文章进行了mesos上hadoop的部署,写这篇文章的目的:1、总结一下自己部署的过程,供大家参考,尽量少走弯路。2、对于前辈们安装过程的一个补充,毕竟大家遇到的bug有可能不完全一样。 3、希望能够跟一些志同道合的朋友共同学习,共同进步吧。

hadoop+hbase on mesos环境搭建

首先参考我的另外一篇博客搭建好mesos cluster环境 http://blog.csdn.net/github_25679381/article/details/52424022部署结构192...

ubuntu 14 mesos 集群的配置

规划     Vmware11.1          os: ubuntu-14.04.3     mesos0.26.0-0.2.145           zookeeper3.4.5    ...

搭建基于mesos的spark集群

1、准备 1)、安装scala(略) 2)、安装mesos 2、安装 # mkdir /usr/local/spark # cd /usr/local/spark # wget http://d3...

mesos和yarn区别

视频地址:Apache Mesos vs. Hadoop YARN #WhiteboardWalkthrough 总结: 1、最大的不同点在于他们所采用的scheduler:mesos让frame...

Hadoop on mesos 配置安装方法

Hadoop on mesos

Mesos实践:基于MZM的PAAS的构建(3):Marathon简介

为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一。在本文中将会对Marathon进行简单的介绍。...

Mesos的分析4 --- 支持Hadoop任务级调度

原文地址:--- 支持Hadoop任务级调度">Mesos的分析4 --- 支持Hadoop任务级调度作者:kloseHadoop的调度示意图如下所示: --- 支持Hadoop任务级调度" TIT...

Mesos实践:基于MZM的PAAS的构建(2):Zookeeper简介

为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一。在本文中将会对Zookeeper进行简单的介绍。...

mesos agent recovery 详细过程分析

mesos agent 在升级完成后,将会 start mesos agent service, 会打印出一些 (flags, resources, attributes, hostname etc)...

基于Mesos+Marathon+Zookeeper的Docker集群管理环境搭建过程分享

前言本文为搭建高可用的基于Mesos+Marathon+Zookeeper管理Docker集群的环境,资源有限仅使用两台服务器进行环境搭建(多台同理)。 系统环境:Ubuntu 14.04、JDK1....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mesos上安装hadoop过程简介
举报原因:
原因补充:

(最多只允许输入30个字)