www.gusucode.com > datastoreio工具箱 matlab源码程序 > datastoreio/+matlab/+io/+datastore/+internal/discoverHadoopVersion.m
function [versionString, majorVersionNumber] = discoverHadoopVersion(hadoopInstallFolder) % discoverHadoopVersion attempts to discover the hadoop version given an installation path % using the available sources of information. % Copyright 2014-2015 The MathWorks, Inc. % From v2 files files = dir(fullfile(hadoopInstallFolder, 'share', 'hadoop', 'common', 'hadoop-common*.jar')); if ~isempty(files) for ii = 1:numel(files) name = files(ii).name; versionString = regexp(name, '^hadoop-common-(\d\.\d\.\d)\.jar$', 'tokens', 'once'); if ~isempty(versionString) versionString = versionString{1}; majorVersionNumber = iExtractMajorVersionNumber(versionString); return; end end end % From v1 files files = dir(fullfile(hadoopInstallFolder, 'hadoop-core*.jar')); if ~isempty(files) for ii = 1:numel(files) name = files(1).name; versionString = regexp(name, '^hadoop-core-(\d\.\d\.\d)\.jar$', 'tokens', 'once'); if ~isempty(versionString) versionString = versionString{1}; majorVersionNumber = iExtractMajorVersionNumber(versionString); return; end end end % From 'hadoop version' system call [status, versionMsg] = matlab.io.datastore.internal.callHadoop(hadoopInstallFolder, 'version'); if status == 0 versionString = regexp(versionMsg, 'Hadoop\s+(\d\.\d\.\d)', 'tokens', 'once'); if ~isempty(versionString) versionString = versionString{1}; majorVersionNumber = iExtractMajorVersionNumber(versionString); return; end end error(message('MATLAB:datastoreio:hadooploader:indeterminateHadoopVer')); end function majorVersionNumber = iExtractMajorVersionNumber(versionString) majorVersionNumber = str2double(regexp(versionString, '^\d', 'match', 'once')); end