よし、仮想マシンにクラスターを実装したので、私が行ったことをすべて共有したいと思いました。私のクラスターでは、1 つのマネージャー ノード (cloudera マネージャーのみ)、1 つのネームノード、2 つのデータノードを作成しました。これにより、クラスターへの新しいノードの追加が簡単になり、問題も発生しなくなりました。簡単な説明書も用意しました。少し夏っぽいかもしれませんが、問題なく動作しています。ほとんどのコードはさまざまなサイトから取得したものなので、理解できる限りシンプルに保つようにしました。私の実装にはクラスターへの新しいホストの追加も含まれているため、この回答をここに追加しました。
注:私はLinux環境に非常に慣れていません。最善を尽くしました。使用法や説明に関する私のコメントを修正できる人を期待しています。
================================================== ================================
これらの手順は、centOS 6.2 x64 (非ライブ デスクトップ バージョン) に実装されています。サーバー版を使用している場合、ネットワーク構成を自分で構成する必要がある場合があります。
できるだけすべてのマシンで同じバージョンを使用してください。マシンの IP 値が重要であると言う人もいますが、1 つのマシンが 192.168.12.13 を使用し、もう 1 つのマシンが 192.168.13.144 を使用するように、異なる IP 範囲で実装しました。問題を引き起こしているわけではありません。
また、Windows 7 Enterprise の仮想マシン環境には Oracle VirtualBox を使用しました。
提案 : 共通の cenTOS インストールを 1 つ作成する場合、間違った構成が発生した場合はクローンを作成する必要があります。常にバックアップ クローンを保持します。
最初にこれらのファイルを手動でダウンロードします。
cloudera manager (コミュニティ版をダウンロードできます) . これはマスター ノードに必要ですが、マスター ノードがクラスターの一部であるという意味ではありません。私
namenode またはジョブ トラッカーを持たず、mamanger アプリケーションだけのマシンでマネージャーを使用しました。
オラクルJDK . Oracle Web サイトから適切なものをダウンロードできます。そこにアクセスしてブラウザからダウンロードするか、リンクをコピーして wget を使用してダウンロードします。それはあなたの選択です。
「open jdk」を必ずアンインストールしてください。
yum remove java-1.6.0-openjdk
install "oracle jdk" manualy wget 行は変更できることに注意してください。ブラウザからファイルをダウンロードできます。
wget http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jdk-6u27-linux-x64-rpm.bin
chmod u+x jdk-6u27-linux-x64-rpm.bin
./jdk-6u27-linux-x64-rpm.bin
システムとブラウザで新しい Java を使用するようにする
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000
/usr/sbin/alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/default/jre/lib/i386/libnpjp2.so 20000
ユーザーをsudoersとして追加
nano /etc/sudoers
「root ALL=(ALL) ALL」という行を見つけて、この行を下に追加します
username ALL=(ALL) ALL
//この行は、ユーザー root がすべてのターミナルから実行でき、//すべての (任意の) ユーザーとして機能し、すべての (任意の) コマンドを実行できることを意味します。
「sshサーバー」をインストール
sudo yum install openssh-server
sshサーバーのステータスをチェックして、実行中であることを確認してください
/sbin/service sshd status
sshd サービスが開始されていない場合は開始します
/sbin/service sshd start
または、単にsshをテストできます
ssh localhost
テストが成功したら、終了できます
exit
これらの手順は、cloudera Web サイトでも定義されています。/var/log/cloudera-scm-agent/cloudera-scm-agent-log または .out ファイルを確認して、永続化または休止状態に関する問題があることを確認できる場合
問題がpostgresqlデータベースに関するものであることを意味する例外/エラー。おそらくデータベースがまだ設定されていません。あとは設定するだけです。
注: postgresql はマネージャー (マスター) ノードにのみ必要です。奴隷はいらない。
サービスのステータスを確認して、postgresql インスタンスがインストールされていることを確認します
/etc/init.d/postgresql status
ではありません:以下の手順にはレポ設定が必要です!!! 方法がわからない場合は、スクリプト ファイルの使用にスキップしてください。
組み込みの PostgreSQL データベース パッケージを Cloudera Manager Server ホストにインストールします。
sudo yum install cloudera-manager-server-db
このコマンドを実行して、組み込みの PostgreSQL データベースを Cloudera Manager Server で使用できるように準備します。
sudo /sbin/service cloudera-scm-server-db initdb
次のコマンドを実行して、組み込みの PostgreSQL データベースを起動します。
sudo /sbin/service cloudera-scm-server-db start
スクリプトファイルの使い方: 以下はスクリプトファイルを使ったpostgresqlの手動設定です
/usr/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password
必須パラメータと説明
database-type MySQL データベースに接続するには、データベース タイプとして mysql を指定するか、postgresql を指定して外部 PostgreSQL データベースに接続します。
database-name 作成する Cloudera Manager Server データベースの名前。
username 作成する Cloudera Manager Server データベースのユーザー名。
password 作成する Cloudera Manager Server データベースのパスワード。コマンド ラインでパスワードを指定しない場合、スクリプトはパスワードの入力を求めます。
詳細については、このページを確認してください: https://ccp.cloudera.com/display/ENT/Installation+Path+B+-+Installation+Using+Your+Own+Method#InstallationPathB-InstallationUsingYourOwnMethod-Step5%3A
開始されていない場合はpostgresqlを開始します(ステータスを確認して、必ず再起動してください)
/etc/init.d/postgresql start
Linux にルート化/ファイアウォールの制限がある場合、エージェントのハートビートがマスター ノード (マネージャー) に到達しないため、セキュリティを排除する必要があります。
懸念。この場合、問題を引き起こす可能性のある Selinux と iptables があります。Clouderaはiptablesを完全に無効にすると言いますが、経験がある場合
iptables の設定については、次のようなルールを追加できます。
iptables を開き、7180 のポート アクセスのルールを設定します。
nano /etc/sysconfig/iptables
この行を追加:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 7180 -j ACCEPT
または単に (cloudera の方法で) iptables を完全に無効にします。すべてのノードで同じであることを確認してください
sudo /etc/init.d/iptables stop
status パラメータで iptables のステータスを確認する
/etc/init.d/iptables status
注: マシンが再起動するたびに iptables が再びアクティブになるため、自動的に停止する方法が必要になる場合があります。iptables と selinuxun が原因で問題が発生すると、ログ ファイル "cloudera-scm-agent.log" に記録されます。「非推奨」の警告が表示される場合があります
フィトンコード、無視してください。エラー/例外は通常、「ホストへのルートがありません」またはそのようなものです。
selinux を無効にします。ただし、上記の多くの操作の前にこれを行う必要がある場合があります。特に、cloudera manager をインストールしようとすると。linux は、selinux に関する警告を表示します。
sudo nano /etc/selinux/config
(selinux=disabled)
マシンごとに一意のホスト名を設定します。したがって、各マシンでこのファイルを編集し、そのマシンに名前を付けます。この名前を hosts ファイルで使用します。
sudo nano /etc/sysconfig/network
ノードのすべての IP 値とホスト名を使用して、ホスト ファイルを再変更します。これをすべてのノードで行います。他のノードにも簡単にコピーできます。すべてのホスト ファイルは同じになります
sudo nano /etc/hosts
例: 127.0.0.1 localhost 192.168.1.2 masternode 192.168.1.3 namenode 192.168.1.4 datanode1 192.168.1.5 datanode2
Cloudera Manager のステータスを確認し、必要に応じて再起動できます
sudo /sbin/service cloudera-scm-server start
インターネット接続がすべてのノードに対して十分であることを確認してください。マネージャーがそれらを接続し、それぞれで一連のダウンロード操作を開始するためです。マネージャーが問題に遭遇した場合、すべてをロールバックするため、すべてを再起動する必要があります。この部分は時間がかかりすぎていると信じてください!
仮想マシンをノードとして使用している場合(私はそうです)、ブリッジネットワークモードを選択できます。そのため、すべてのノードにインターネット接続を提供できますが、これには 1 つの欠点があります。物理マシンを再起動すると、IP 値が失われ、新しい値が自動的に取得される場合があります。これにより、各ノードのホスト ファイルを再変更する必要が生じる可能性があります。ただし、NAT や内部ネットワークのようなものを使用する場合は、ノードに静的 IP 値を与えることができるため、再構成の必要はありません。ただし、すべてのマシンにインターネット アクセス ゲートウェイの IP を提供する必要があります。マネージャーだけでなく、エージェントもファイルをダウンロードするためにインターネットにアクセスする必要があるためです。もちろん、クラスターのセットアップが完了したら、エージェント (スレーブ) ノードのインターネット アクセスの必要性をなくすことができます。
仮想マシンを起動するときに ifconfig を試して、ネットワークから IP 値を取得しているかどうかを確認する必要があります。そうでない場合は、VM アプリケーションの仮想マシン構成を変更する必要があります。ケーブルおよびワイヤレス接続を備えた物理マシンで作業している場合は、複数のイーサネット アダプターを選択できます。必ず正しいものを選択してください。間違ったものはあなたにIPアドレスを与えません。
必ず oracle JDK を使用してください。
Cloudera scm のステータスを時々確認してください。
sudo /sbin/service cloudera-scm-server status
7180 を確認し、他の Cloudera Manager の割り当てられたポートがリッスンされていることを確認します。「nmap」または「netstat --listen」を使用できます
Cloudera Manager をマスター ノードにインストールできない場合 (おそらく selinux、postgresql、またはダウンロードの問題です。ちなみに、ダウンロードが切断できないことを確認してください)、クリーンアップと再起動が必要になる場合があります。
この行により、cloudera の関連ファイルが削除され、再起動できるようになります。
sudo rm -Rf /usr/share/{cmf,hue} /var/lib/cloudera* /var/cache/yum/cloudera*
何かを変更した場合は、スレーブ ノードで cloudera-scm-agent を再起動して、プロセスが正しく機能していることを確認できます。ログ ファイルは、何がうまくいかないかを確認するために重要です。
cd /var/log/cloudera-scm-agent
sudo rm *
次のステップは、includera manager の Web インターフェイスからホストを追加することです。
マネージャー マシンでは、「localhost:7180」を使用して mamanger gui に接続しました。ホストの部分では、クラスターに新しいホストを追加します。ノードの名前をテストボックスに追加し、「ホストの検索」ボタンを押すだけです。覚えていれば、ホストの名前は /etc/hosts ファイルで既に定義されています。したがって、テキストボックスで ip またはホスト名のいずれかを使用できます。それらが正しく設定されていれば、mamanger は適切なものを見つけて上記のリストにリストします。それらがまだ管理されていない場合 (まだ何もインストールされていないことを意味します)、「現在管理されている」列には「いいえ」と表示されます。それ以外の場合は、「はい」と表示されます。
その後、引き続き選択したホストに cloudera エージェントと hadoop ファイルをインストールできます。ただし、既にそれらをインストールしている場合 (管理されている場合)、それらにサービスを追加することができます。「サービス」ページに移動して、プロセスを続行してください。ホストを正しくセットアップし、それらが管理されていることを確認できれば、サービスの追加は非常に簡単で、問題はありません (少なくとも私にとっては)。
私の答えについてコメントを送ってください。ちょっと長いです。不必要かもしれません。しかし、私はすべての詳細を追加しようとしました.