在Mesos上运行Hadoop,需要对代码进行修改。在Mesos-0.9.0中,带有Hadoop-0.20.205.0,并有patch。我们将在Mesos上,运行Hadoop-0.20.205.0。
1、部署环境
master: blade6
slaves: blade10 blade13
2、安装hadoop
这一步骤需保证服务器联通外网。我们假设Mesos的安装目录是<mesos>,进入<mesos>/hadoop目录下,运行./TUTORIAL.sh,一直回车。
执行之后,在<mesos>目录下找到两个文件<mesos>/protobuf-2.4.1.jar、<mesos>/src/mesos-0.9.0.jar,然后执行
cp <mesos>/protobuf-2.4.1.jar<mesos>/hadoop/hadoop-0.20.205.0 cp<mesos>/src/mesos-0.9.0.jar <mesos>/hadoop/hadoop-0.20.205.0
3、修改配置文件
大部分配置文件与hadoop配置相同,可参见《Hadoop部署运行》 http://speakingbaicai.blog.51cto.com/5667326/1221932,区别主要在mapred-site.xml,hadoop-env.sh两个文件。
(1) mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>blade6:19101</value> <!--<value>localhost:54311</value>--> <!-- Default Port: 9001. --> </property> <property> <name>mapred.jobtracker.taskScheduler</name> <value>org.apache.hadoop.mapred.MesosScheduler</value> </property> <property> <name>mapred.mesos.master</name> <value>blade6:5050</value> </property> </configuration>
(2) conf/hadoop-env.sh
exportHADOOP_HOME=/home/wangmin/mesos/mesos-0.9.0/hadoop/hadoop-0.20.205.0/ # Google protobuf (necessary for runningthe MesosScheduler). exportPROTOBUF_JAR=${HADOOP_HOME}/protobuf-2.4.1.jar # Mesos. exportMESOS_JAR=${HADOOP_HOME}/mesos-0.9.0.jar # Native Mesos library. exportMESOS_NATIVE_LIBRARY=/home/wangmin/mesos/mesos-0.9.0/src/.libs/libmesos.so # The java implementation to use. Required. # export JAVA_HOME=/usr/lib/j2sdk1.5-sun exportJAVA_HOME=/etc/alternatives/java_sdk_1.6.0 # Extra Java CLASSPATH elements. Optional. exportHADOOP_CLASSPATH=${HADOOP_HOME}/build/contrib/mesos/classes:${MESOS_JAR}:${PROTOBUF_JAR} export HADOOP_HOME_WARN_SUPPRESS=TRUE
4、启动Hadoop
(1) 启动hdfs
bin/start-dfs.sh
(2) 启动jobtracker(不需要启动tasktracker)
bin/hadoop jobtracker
之后可以像使用hadoop一样,提交作业
转载于:https://blog.51cto.com/speakingbaicai/1221961