之前项目组之中一位离职的同事给我们搭建的数据平台, 用的是Suse。 后来因为计算平台需要迁移到Spark之上, 我们就需要让Spark能方便的读取到SUSE之中的数据文件。
因为之前项目组最常用的文件分享协议就是NFS了。 我们的FreeNas服务器上面, 存储了几十T的数据文件。
因此我们首先尝试的是NFS的方法。 Google之后:
尝试了以下命令:
yast2 -i nfs-kernel-server
# or zypper install -y nfs-kernel-server
但是不管上面哪个命令, 都会报错:
Warning: Legacy commandline option -y/--no-confirm detected. Please use -n/--non-interactive instead.
File '/repodata/repomd.xml' not found on medium 'http://download.opensuse.org/update/13.2/'
Abort, retry, ignore? [a/r/i/? shows all options] (a): a
ABORT request: Aborting requested by user
非常奇怪的问题, 后来又经过Google, 发现原因:
Yes, @tboerger is right. 13.2 reached EOL, this is why the repositories are no longer around. This doesn’t depend on this project.
From: https://github.com/openSUSE/docker-containers-build/issues/23
敢情是这位哥们用的SUSE版本太老了?!
正在一筹莫展甚至想把数据文件全部迁移到另外一个Ubuntu机器之时, 忽然发现这一台SUSE已经安装了Samba Server 服务, 只是没有启用而已。
现在回想起来, 这个SUSE的Samba Server的安装,也真是奇葩, 官网文档写的也很不详细。
现在总结一下:
这一个功能我猜是某些域名才能访问。 具体没有试过~
假设原来已经有一个用户账号 hadoop, 执行下面的命令, 给这个账号设置一下密码:
suse2:~ # smbpasswd -a hadoop
New SMB password:
Retype new SMB password:
Added user hadoop.
这里设置的密码,可以跟原来的SSH密码一样。
设置完成之后, 我们可以在Windows上面直接使用UNC的方式访问了:
UNC的方式: \10.206.132.119
因为我们的需求是让Spark能方便的读取SMB服务器上面的数据, 最方便的方法还是直接mount。
当然可以使用smbclient, 不过在Spark之中读取数据的时候, 就不那么友好了。
mount命令也很简单,参考下面的格式:
sudo mount //10.206.132.119/users/hadoop/airsupport_da /data/airsupport/airsupport_da -o user=hadoop,password=xxxx
SUSE的文档相比Ubuntu感觉真心很少,而且也不是很友好。
很多网友的文章, 感觉也是很久以前的东西。 特别是看到有人说某某东西EOS之后, 内心是有一些崩溃的。
后来简单调查了一下, Samba的稳定性确实要比NFS要好一些。
我们的NFS Server 经常命令行卡死。
解决方案: 不好意思, 暂时无解~ 重启服务器吧。