安装之前要在服务器之间建立ssh互信连接。
安装mesos成功之后,在安装hadoop(建议使用 Hadoop-*-cdh版,我采用的是hadoop-2.6.0cdh5.7.2)。当然这两者的安装并没有先后关系。
我的建议是一步一步来,特别是对于初学者。
这里指的一步一步就是mesos可以正常运行。Hadoop可以独立正常运行在改到hadoop on mesos(要让hadoop以MR1的版本运行,可以参考hadoop1.2.1的配置,当然配置之前要有一些额外的工作)。
1. mesos。
我是参照这篇博客完成安装配置的
http://frankhinek.com/setup-mesos-multi-node-cluster-on-ubuntu/
当然也可以参照官方网站
http://mesos.apache.org/gettingstarted/
或者这篇博客
http://www.litrin.net/2015/08/20/mesos%E5%AE%9E%E6%88%98/
我的建议是按照第一个安装,因为后两个都比较耗时。还有就是把官方文档里面要求的库尽量都安装上。
2. hadoop-2.6.0.
因为mesos只支持MR1所以在配置之前我们要:
cd hadaoop-*
mv bin bin-mapredue2
ln –s bin-mapredue1 bin
cd etc
mv hadoop hadoop-mapreduce2
ln –s hadoop Hadoop-mapreduce1
cd ..
mv examples examples-mapreduce2
mv examples-mapreduce1 examples
就是把执行文件指向MR1。
剩下的建议你按照hadoop 1.2.1或者其他MR1版本hadoop的官方文件进行配置
https://hadoop.apache.org/docs/r1.2.1/single_node_setup.html 也可以结合
http://wenku.baidu.com/link?url=VZoap_UAA1FnmKqqhdX7z0tFkkPQeMA0zdqTZfIc48ngCIkSXlEeJtt0pE5yA1RhQbc11tGg7hdhIpfyk599MF14QsbebVUzIShXAhtrAIa
从singlenode开始到cluster
这样也有助于理解那些配置参数是什么。
一切还是以官方网站为主。
主要是hdfs运行成功之后,跑一个简单地wordcount。
之后把后台运行的hadoop都关掉。
接下来就可以参照
https://github.com/mesos/hadoop
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.jobtracker.taskScheduler</name>
<value>org.apache.hadoop.mapred.MesosScheduler</value>
</property>
<property>
<name>mapred.mesos.taskScheduler</name>
<value>org.apache.hadoop.mapred.JobQueueTaskScheduler</value>
</property>
<property>
<name>mapred.mesos.master</name>
<value>localhost:5050</value>
</property>
<property>
<name>mapred.mesos.executor.uri</name>
<value>hdfs://localhost:9000/hadoop-2.5.0-cdh5.2.0.tar.gz</value>
</property>
这里面有两点要注意,就是最后两点。
如果按照我说第一种方式安装的mesos那么
<property>
<name>mapred.mesos.master</name>
<value>zk://master:2181/mesos</value>
</property>
具体的master名字以你配置的host的名字为准。
还有就是executor.uri这里,我也是把文件放到hdfs上面结果,在运行的时候会有说找不到executor的提示。(这个提示我是从log中看出来的 /var/logs/mesos/)
所以在
<property>
<name>mapred.mesos.executor.uri</name>
<value>hdfs://localhost:9000/hadoop-2.5.0-cdh5.2.0.tar.gz</value>
</property>
我把压缩包放在了本地文件,这意味这么每一个slave的相同路径下都要有压缩包。这个压缩包是你在配置完成之后打包的hadoop。
这个问题我在spark on mesos 上也遇到了相同的问题。正在找解决办法。怀疑是权限问题。
这样就完成了配置。
Mesos不用启动一直会在后台运行。
hadoop启动方式
1. hdfs开启 都是先开启本机上的守护进程。之后再master上hadoopnamenode –format
a) master:Hadoop-daemon.sh start namenode
b) slave: Hadoop-daemon.sh start datanode
c) master:Hadoop namenode –format
2. master:Hadoop-daemon.sh start jobtracker开启jobtracker注册framework 如果有web界面就能看见注册结果
执行hadoop程序(这是我用一个笔记本加一台普通台式机的结果,之后以相同的方式配置到了三台实验用的服务器上面)