3 オンプレミスOracle DatabaseへのOracle Machine Learning for RのRのインストール

この章では、オンプレミスOracle DatabaseにOML4RのRをインストールする方法について説明します。

この章には次のトピックが含まれます:

3.1 オンプレミス・データベースの場合のRおよびOracle Machine Learning for Rについて

OML4Rを使用するには、サーバー・コンピュータおよびサーバーと対話する各クライアント・コンピュータにRがインストールされている必要があります。

Rは、サード・パーティのオープン・ソース・ソフトウェアです。オープン・ソースRは、OracleライセンスではなくGNU General Public License (GPL)で管理されています。

ノート:

Rのバージョンは、サーバーと各クライアント・コンピュータで同じである必要があります。また、OML4Rのバージョンは、サーバーと各クライアント・コンピュータで同じである必要があります。

3.1.1 ROracleについて

ROracleは、RとOracle Databaseとの相互作用を可能にするオープン・ソースRパッケージです。

ROracleはオラクル社が保守およびサポートしています。

ROracleは、Oracle Machine Learning for Rで使用されるオープン・ソースのSupporting Packagesの1つです。Supporting Packagesについては、「オンプレミス・データベースの場合のOracle Machine Learning for Rのクライアントおよびサーバー・コンポーネント」で概要が示されており、表6-2に説明が示されています。

3.1.2 Oracle R DistributionとOML4R

OML4Rは、オラクル社のRの無償版ディストリビューションであるOracle R Distributionと組み合せて使用することをお薦めします。

OML4RでOracle R Distributionを使用すると、大きなメリットがあります。

Oracle R Distributionを使用するメリット

  • Oracle R Distributionは、OML4R向けのRのインストールを簡略化します。

  • Oracle R Distributionは、Oracle Machine Learning、Oracle LinuxおよびOracle Big Data Applianceのお客様に対してサポートされています。

  • Linuxでは、Oracle R Distributionにより、Intel Math Kernel Library (MKL)との統合が簡略化されます。MKLによってRの数学的計算の多く(高度にベクトル化およびスレッド化された線形代数、高速フーリエ変換(FFT)、ベクトル演算関数、統計関数)のパフォーマンスが大幅に向上します。(「Linuxクライアント上のOracle R DistributionでのMKLサポートの有効化」を参照してください。)

3.2 LinuxへのOracle R Distributionのインストール

Oracle R DistributionをOracle LinuxおよびRedhat Enterprise Linuxにインストールする手順。

インストールを開始する前に、ご使用のLinuxのバージョンがOracle Machine Learning for Rでサポートされていることを確認してください(「オンプレミス・データベースの場合のOracle Machine Learning for Rのシステム要件」にあるプラットフォーム要件の表を参照)。次のコマンドを使用してLinuxのバージョンを確認できます。

# uname -r

ノート:

インターネットにアクセスできるOracle Linuxシステムでは、Oracle Linux Yum ServerからOracle R Distributionをインストールすることをお薦めします。

次の各項では、Oracle R Distributionのインストールについて説明します。

3.2.1 YumまたはDnfを使用したOracle Linux 8へのOracle R Distributionのインストール

Oracleでは、Linux 8にdnfを使用してOracle R Distributionをインストールすることをお薦めします。

Yumを使用するとRPM依存性が自動的に解決されるため、Oracle R Distributionのインストールが簡略になります。RPMを直接インストールする場合、手動で依存性を解決する必要があります。

YumまたはDnfを使用してOracle Linux 8にOracle R Distributionをインストールするには:

  1. rootでLinuxサーバーにログインして、/etc/yum.repos.dディレクトリに変更します。

    # cd /etc/yum.repos.d
  2. dnfを使用して、Oracle Linux 8 yumリポジトリをインストールします。

    dnf install oraclelinux-release-el8

    リポジトリoracle-linux-ol8.repoは/etc/yum.repos.dに保存されます。

  3. Oracle Linux 8では、Oracle Linux 8のメイン・リポジトリに加えて、appstream、codereadybuilderおよびアドオンのリポジトリが必要です。テキスト・エディタでoracle-linux-ol8.repoを開き、ol8_baseos_latesto18_appstreamo18_ codereadybuilderおよびol8_addonsenabled=1を指定します。
    • baseos_latestリポジトリのセクションを見つけて、enabled=0enabled=1に変更します。

      [ol8_baseos_latest]
      enabled=1

      次のような結果が表示されます。

      [ol8_baseos_latest]
      name=Oracle Linux $releasever BaseOS ($basearch)
      baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/$basearch
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
    • appstreamリポジトリのセクションを見つけて、enabled=0enabled=1に変更します。

      [ol8_appstream]
      enabled=1

      次のような結果が表示されます。

      [ol8_appstream]
      name=Oracle Linux $releasever Application Stream ($basearch)
      baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/appstream/$basearch
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
    • codereadybuilderリポジトリのセクションを見つけて、enabled=0enabled=1に変更します。

      [ol8_codereadybuilder]
      enabled=1

      次のような結果が表示されます。

      [ol8_codereadybuilder]
      name=Oracle Linux $releasever Code Ready Builder ($basearch)
      baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/$basearch
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
    • addonsリポジトリのセクションを見つけて、enabled=0enabled=1に変更します。

      [ol8_addons]
      enabled=1

      次のような結果が表示されます。

      [ol8_addons]
      name=Oracle Linux $releasever Add ons ($basearch)
      baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/addons/$basearch/
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
  4. rootとして、dnfコマンドを使用してLinux 8用のR-4.0.5をインストールします。dnfコマンドを実行してRをインストールします。
    # dnf install R-4.0.5
    .

ノート:

新しいOracle Linuxバージョンでは、yumパッケージ・マネージャがdnfパッケージ・マネージャに置き換えられました。

3.2.2 Yumを使用したOracle Linux 7へのOracle R Distributionのインストール

Linux 7へのOracle R Distributionのインストールには、yumを使用してください。

Yumを使用するとRPM依存性が自動的に解決されるため、Oracle R Distributionのインストールが簡略になります。RPMを直接インストールする場合、手動で依存性を解決する必要があります。

Yumを使用してOracle Linux 7にOracle R Distributionをインストールするには:

  1. rootでLinuxサーバーにログインして、/etc/yum.repos.dディレクトリに変更します。

    # cd /etc/yum.repos.d
  2. ディレクトリの内容をリストして、Oracle Linux 7のyumの構成ファイルが存在するかどうかを確認します。その構成ファイルの名前はpublic-yum-ol7.repoです。

    Oracle Linux 7のyumの構成ファイルが存在しない場合は、Linuxプラットフォームでwgetコマンドを実行することで、Oracle Public Yumからそれをダウンロードします。

    # wget https://public-yum.oracle.com/public-yum-ol7.repo
  3. テキスト・エディタでpublic-yum-ol7.repoを開き、ol7_latestol7_addonsおよびol7_optional_latestenabled=1を指定します。

    [ol7_latest]
    enabled=1
    
    [ol7_addons]
    enabled=1
    
    [ol7_optional_latest]
    enabled = 1

    Oracle R Distributionパッケージの場所は、ol7_addonsで示されます。Oracle R Distribution RPMの依存性の場所はol7_latestで示され、いくつかの依存性はoptional_latestにあります。

    addonsリポジトリ内のOracle R Distribution RPMのURLは、このトピックの最後にある例で示されています。

    ノート:

    最新バージョンのOracle Linuxを使用しておらず、使用しているバージョン固有の依存パッケージをインストールする場合は、該当するOracle Linuxリポジトリを有効にする必要があります。

    たとえば、Oracle Linux 7ベース・リポジトリを有効にするには、テキスト・エディタでpublic-yum-ol7.repoを開き、ol7_latestenabled=1を指定します。

    
    [ol7_base]
    enabled=1

    出力は次のようになります:

    [ol7_base]
    name=Oracle Linux $releasever installation media copy ($basearch)
    baseurl=https://public-yum.oracle.com/repo/OracleLinux/OL7/
    base/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1
    enabled=1
  4. yum installコマンドを実行してRをインストールします。インストールするバージョン番号を、Rversionに指定します。たとえば、R-3.6.1をインストールするには、コマンドyum install R-3.6.1を使用します。

    # yum install R-Rversion

    Oracle Public Yumで入手可能な最新バージョンのRをインストールするには:

    # yum install R.x86_64

    ノート:

    Oracle Public Yumの最新バージョンのRが、ご使用のOracle Machine Learning for Rのバージョンではサポートされていない場合があります。「オンプレミス・データベースの場合のOracle Machine Learning for Rのシステム要件」にある構成要件およびサーバー・サポートの表を参考にして、使用するRのバージョンを判断します。

3.2.3 RPMを使用したOracle LinuxへのOracle R Distributionのインストール

インターネットへのアクセスがないためにYumが使用可能でない場合は、RPMを直接インストールして手動で依存性を解決することもできます。

ただし、YumによりRPM依存性が自動的に解決されるため、Yumを使用してOracle R Distributionをインストールすることをお薦めします。

RPMをダウンロードしインストールするには、rootとしてログインして、次の各項でリストされているRPMごとにコマンドrpm -Uvh rpm_nameを実行します。

3.2.3.1 Oracle Linux 8向けのOracle R Distribution 4.0.5 RPM

Oracle Linux 8向けのOracle R Distribution RPMをリストします。

Oracle Linux 8向けのOracle R Distribution RPMは次のようにリストされています。

https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/R-4.0.5-1.0.1.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/R-core-4.0.5-1.0.1.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/R-devel-4.0.5-1.0.1.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/libRmath-4.0.5-1.0.1.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/libRmath-devel-4.0.5-1.0.1.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/libRmath-static-4.0.5-1.0.1.el8.x86_64.rpm
3.2.3.2 Oracle Linux 7向けのOracle R Distribution 4.0.5 RPM

Oracle Linux 7向けのOracle R Distribution RPMをリストします。

Oracle Linux 7向けのOracle R Distribution RPMは次のようにリストされています。

https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-4.0.5-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-core-4.0.5-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-devel-4.0.5-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-4.0.5-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-devel-4.0.5-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-static-4.0.5-1.el7.x86_64.rpm
3.2.3.3 Oracle Linux 7向けのOracle R Distribution 3.6.1 RPM

Oracle Linux 7向けのOracle R Distribution RPMをリストします。

Oracle Linux 7向けのOracle R Distribution RPMは次のようにリストされています。

https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-3.6.1-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-core-3.6.1-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-devel-3.6.1-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-3.6.1-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-devel-3.6.1-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-static-3.6.1-1.el7.x86_64.rpm
3.2.3.4 Oracle Linux 7向けのOracle R Distribution 3.3.0 RPM

Oracle Linux 7向けのOracle R Distribution RPMをリストします。

Oracle Linux 7向けのOracle R Distribution RPMは次のようにリストされています。

https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-core-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-core-extra-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/R-devel-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-devel-3.3.0-2.el7.x86_64.rpm
https://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/getPackage/libRmath-static-3.3.0-2.el7.x86_64.rpm

3.2.4 Red Hat Enterprise LinuxへのOracle R Distributionのインストール

Red Hat LinuxシステムでOracle R Distribution RPMを再構築する手順。

Oracle Linux RPMは、Red Hat Linuxシステムにインストールできます。ただし、Red Hat LinuxシステムでOracle R Distribution RPMを再構築する場合は、次の手順に従います。

Oracle R DistributionをRed Hat Enterprise Linuxにインストールするには:

  1. RPMビルドのディレクトリ構造を作成します。

    mkdir -p /rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
    
  2. (rootを避けるため)専用のビルド・ツリーを使用するようにRPMツールを設定します。

    echo '%_topdir %(echo $HOME)/rpmbuild' > /.rpmmacros
    
  3. Oracle public yumから、ソースRPM (Rversion.olx.src.RPM (Rversionは使用しているRバージョン、xは使用しているOracle Linuxバージョン))をダウンロードします。

    ソースRPMを、rpmbuild/SRPMSディレクトリに保存します。

  4. rpmbuildを使用してRed Hat Enterprise Linuxをリビルドします。

    rpmbuild --rebuild /rpmbuild/SRPMS/R-Rversion.elx.src.rpm

    ノート:

    欠落している依存関係がある場合は、rootでインストールします。

    バイナリのRPMがビルドされて/rpmbuild/RPMSに保存されます。

  5. rootとしてログインし、次のコマンドを実行してRをインストールします:

    # rpm -i path/rpmbuild/RPMS/R-Rversion.olx.x86_64.rpm 
    # rpm -i path/rpmbuild/RPMS/R-core-Rversion.olx.x86_64.rpm 
    # rpm -i path/rpmbuild/RPMS/libRmath-Rversion.olx.x86_64.rpm 
    # rpm -i path/rpmbuild/RPMS/libRmath-devel-Rversion.olx.x86_64.rpm 
    # rpm -i path/rpmbuild/RPMS/libRmath-static-Rversion.olx.x86_64.rpm 
    # rpm -i path/rpmbuild/RPMS/R-devel-Rversion.olx.x86_64.rpm
    

    たとえば、次のコマンドでは、R-4.0.5がRed Hat Enterprise Linux x86-64バージョン7にインストールされます(ここでは、rpmbuildのパスは/user/home/)。

    rpm -i /user/home/rpmbuild/RPMS/x86_64/R-core-4.0.5-1.el7.x86_64.rpm

3.3 クライアントでMKLを使用するためのOracle R Distributionの構成

LinuxクライアントでMKLを使用するようにOracle R Distributionを構成する手順。

この簡単な構成ステップを使用すると、Oracle R Distributionは、システムにMKLがインストールされている場合は動的にMKLを使用します。

このトピックには次の項が含まれます:

3.3.1 Linuxクライアント上のOracle R DistributionでのMKLサポートの有効化

Linuxクライアント上のOracle R DistributionでMKLを有効にするには、次のステップに従います。

  1. MKLをインストールします。MKLは、Intel® Math Kernel LibraryのWebサイトからダウンロードできます。

    ノート: コンピュータにMKLをインストールするには、MKLのライセンスが必要です。

  2. LD_LIBRARY_PATHシステム環境変数に、libmkl_rt.so$RHOME/libおよび$ORACLE_HOME/libを追加します。たとえば、Bashシェルでは次のように指定します。

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:
                             /path_to/libmkl_rt.so:
                             ${RHOME}/lib:
                             ${ORACLE_HOME}/lib
    
  3. Rを起動し、次のようにSys.BlasLapack関数を実行します:

    Sys.BlasLapack()
         $vendor
         [1] "Intel Math Kernel Library (Intel MKL)"
         $nthreads
         [1] -1
    

$vendorから返された値は、MKLがRに固有のBLASおよびLAPACKを置き換えたことを示します。

nthreadsから返された値は、MKLが使用するスレッドの数を示します。デフォルトでは、使用可能なすべてのスレッドが使用されます($nthreads= -1)。

3.3.1.1 Linux上のMKLのスレッド数の変更

システム変数MKL_NUM_THREADSを編集することによって、MKLが使用するスレッドの数を変更できます。たとえば、次のBashシェルの文では、MKLは3スレッドを使用します。

export MKL_NUM_THREADS=3

MKL_NUM_THREADSを3に設定後のSys.BlasLapackの出力では、$nthreadsに3の値が示されます。

R> Sys.BlasLapack()
     $vendor
     [1] "Intel Math Kernel Library (Intel MKL)"
     $nthreads
     [1] 3

3.4 Oracle R Distributionのアンインストール

Oracle R Distributionのアンインストールの手順。

Oracle R Distributionをアンインストールするには、次の各項の手順に従います。

3.4.1 LinuxでのOracle R Distributionのアンインストール

LinuxでOracle R Distributionをアンインストールする手順。

Oracle R DistributionをLinuxからアンインストールするには、rootとしてログインし、この例のコマンドを、示されている順序で実行します。この例では、R-4.0.5をアンインストールします。異なるバージョンのRをアンインストールするには、例のRのバージョンを、アンインストールするバージョン番号に置き換えます。

例3-1 Oracle R Distributionのアンインストール用のLinuxコマンド

rpm -e rpmnameコマンドを実行します。ここでのrpmnameは、削除するRPMの名前です。

たとえば、R-4.0.5をOracle Linux 7から削除するには:

rpm -e R-4.0.5-1.el7 
rpm -e R-devel 
rpm -e R-core 
rpm -e R-core-extra 
rpm -e libRmath-devel 
rpm -e libRmath 
rpm -e libRmath-static