大数据基础(六) Matlab R2015b MDCE分布式计算环境搭建

环境:
ubuntu desktop 14.04.04 x64
jdk 1.7
安装步骤如下:
参考:http://www.jianshu.com/p/f0cefc737dda1.
sudo mkdir -p /mnt/tmp
sudo mount -t iso9660 -o loop /server/matlab/R2015b_glnxa64.iso /mnt/tmp
2.
cd /mnt/tmp
sudo  ./install
3.
弹出图形界面,选择输入license number不联网,输入standalone的序列号
安装全部
finish
rm -rf /mnt/tmp
sudo umount umount /mnt/tmp
4.
copy所有xx文件覆盖到安装目录
http://www.linuxidc.com/Linux/2015-11/125153.htm
R2015b/bin拷贝到相应的目录下
copy license_standalone.lic到安装根目录

5.
vi ~/.bashrc
export PATH=/server/matlab/bin:$PATH
source ~/.bashrc

6.
$bash activate_matlab.sh
在图形界面下选择lic文件,激活matlab


7.
copy xx\MATLAB_Production_Server\R2015b\bin\libmwservices.so /server/matlab/bin/glnxa64


完成。

#matlab打开图形界面
root@matlab-server:/projects/eastmoney/logs# matlab -nodesktop


8.mdce
http://blog.sina.com.cn/s/blog_740773f40100yqg3.html
root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./mdce start

WARNING: The mdce script detected that the number of processes allowed
is limited by ulimit. Be sure that the limit of processes for the ROOT user
(or the user running the mdce service) is set to either "unlimited"
or at least 128 * W, where W is the maximum number of MATLAB Distributed
Computing Server workers that will run on this machine.


Creating LOGBASE directory (/var/log/mdce).
Creating CHECKPOINTBASE directory (/var/lib/mdce).
Creating SECURITY_DIR directory (/var/lib/mdce/security).
Starting the MATLAB Distributed Computing Server in the background.
root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./mdce start


root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./admincenter 
add and find
添加192.168.10.13-192.168.10.14 2台
start mdce on hosts
next
输入host密码
一路next
start所有的host完成。
点击Test connectivity 并查看测试结果。
注意所有机的/etc/hosts要包含所有节点的ip和host
127.0.0.1 localhost
192.168.10.6 matlab-server
192.168.10.11 matlab-11
192.168.10.12 matlab-12
192.168.10.13 matlab-13
192.168.10.14 matlab-14
参考下边注释
【http://blog.csdn.net/huntstart/article/details/51124889
如果用matlab做分布式计算,在其admin……工具中,寻找主机这一步必不可少。


一开始只接用hostname可能找不到,我用ip地址可以找到,但是测试连接性的时候有太多错误。


仔细看了错误,多数是hostname找不到导致的,有的则是hostname映射为本地地址,就是那个127.0.0.1。


一开始觉得可能要配置dns,其实不用。

ubuntu系统中,/etc/hosts中记录的就是hostname和ip地址的映射表。


sudo vi /etc/hosts进去后,参照localhost的写法,添加本地网络中所有主机名和ip地址。


记得将其中本机的主机名和127.0.0.1这条中的IP地址改成真实的地址,不然连接性测试还要出错。


每台机子都要改,其实可以写好一个文本,完了拷贝到各台机子就好。


这样做好后,虽然连接性测试还是有错,但是client测试是通过的,实测分布式计算可以正常工作。

sudo /etc/init.d/networking restart
http://www.cnblogs.com/niocai/archive/2011/07/16/2107981.html
passed表示通过
matlab job schedular输入一个job,比如myjob
 创建worker,selectAll,为每台主机创建2个workers,总共6个workers,ok!


使用--命令行方法:
linux下无需 mdce install
shell
mdce start %启动引擎
执行上面两条命令后,分布式计算引擎服务程序就安装完毕了。MDCE就是一个服务进程,在使用MDCE 之前需要首先启动它。
root@matlab-13:~# /server/matlab/toolbox/distcomp/bin/nodestatus
Summary:
The mdce service on matlab-13 manages the following processes:
     Job manager lookup processes  0
     Job managers                  0
     Workers                       0


root@matlab-13:~# /server/matlab/toolbox/distcomp/bin/startjobmanager -name matlabsky-v


使用--窗口方法:
========================
以下是正常运行过的方法:
http://wenku.baidu.com/link?url=Ce8Ze_6txOdDmnLzhfCLTRDNQiNO0jdKGM4BJfSQHMAYdk-0Gltn5nvbn1tFvjGndKnetyvhJHollV7JzIc5oNZTfhHyFP6FyEKdnKoVUcm
配置节点admincenter
添加ip,job,work然后都start,方法如上。
matlab window
选job
matlab>>parallel>>discover cluster,选择已创建的job。
配置文件
matlab>>parallel>>cluster profile manager>>properties点edit,输入参数,比如在files and folders下的manually specify files...add需要并行的m文件,在其他框设定共享目录输出。参考:http://blog.csdn.net/marvin521/article/details/16918919
然后valide,pass则可以运行。
运行
matlab>>parallel>>job monitor
matlab弹出的下边的命令框运行:
>> parpool
Starting parallel pool (parpool) using the 'matlabskyv' profile ... connected to 10 workers.
结果在右侧的导航框里
关闭pool
delete(gcp('nocreate'))
http://blog.sina.com.cn/s/blog_9444ed240102vrma.html
=============================
以下是单机并行pool,不是集群
开关可以在左侧的按钮选择start parallel pool或者shutdown parallel pool
例子

tic
sums=0
for a=1:5000000
sums=sums+a
disp(sums)
end
toc
sums =

   1.2500e+13

   1.2500e+13

时间已过 381.425190 秒。


sums =


   1.2500e+11

   1.2500e+11


时间已过 29.581380 秒。
====================
旧版方法2012新版2015b不支持
例子
clear all;
% 寻找资源。
jm = findResource('scheduler', 'type', 'jobmanager', 'name', 'myJM', 'LookupURL', '192.168.0.100');
% 使用刚才找到的资源建立一个工作
job = createJob(jm);
% 设置该工作的文件关联,让所有workers都可以找到原程序文件,需要在Client上设置共享文件夹。
set(job, 'PathDependencies', {'\\192.168.0.101\matlab_code\', '/mnt/'})
% 另一种方法,把用到的原程序文件传给所有workers。
% set(job, 'FileDependencies', {'hm.m'});
N = 5;
M = 4;
% 建立4个任务,每任务都是算hp(M, N)。
createTask(job, @hp, 1, {{M, N}, {M, N}, {M, N}, {M, N}});
% 提交工作给jobmanager。
submit(job)
% 等待所有workers都把任务做完。
waitForState(job, 'finished')
% 取出计算结果。
results = getAllOutputArguments(job);
% 销毁Job,释放资源
destroy(job);
其他参考:
http://my.oschina.net/alphajay/blog/102208
http://blog.csdn.net/wenyusuran/article/details/38312677
http://blog.sina.com.cn/s/blog_740773f40100yqg3.html
http://wenku.baidu.com/link?url=Ce8Ze_6txOdDmnLzhfCLTRDNQiNO0jdKGM4BJfSQHMAYdk-0Gltn5nvbn1tFvjGndKnetyvhJHollV7JzIc5oNZTfhHyFP6FyEKdnKoVUcm

你可能感兴趣的:(大数据开发基础)