EC2でHadoop環境構築できなかった話
下記記事で作成したAmazon EC2インスタンスにHadoop環境を構築していきたかった.この記事を見てもEC2インスタンスにHadoop環境は構築できません.せいぜいSFTPコマンド表とかSSHのホスト名バージョンとかしか情報ないです.それでも良ければ読んでください.というかアドバイスくれたらうれしいです
結構な時間の奮闘記なので記しておきます
JDKのダウンロード,インストール
OracleのサイトからJDKをダウンロードします
※OpenJDKをyumで持ってきてもダメって書いてある記事を見かけましたが,公式はOpenJDKでもテストしてると言っている?
参考
- 作成したインスタンスの「プロセッサのアーキテクチャー」を調べます.
64bit ARMらしいですだまされました(だまされたわけではないかもですが) - Oracleのサイトで対応するJDKをダウンロード
ダウンロードしたrpmファイルは,またパスがわかる場所に置きましょう.後ほどEC2インスタンスに送ります.
JDKインストール
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
Hadoopインストール
ここで詰まりました.とりあえずEMR先にやってみます.
インスタンス作り直して,再度試してみます
エラーログもコマンドラインフリーズして消えたという,,
Appendix
試行錯誤しているうち,昔インプットしたLinuxコマンドが浮かんできたので使ってみた記録
sftpプロトコルを使用してJDKをEC2に送る方法
今回コマンドラインでやりますが,GUIツールもあります.FFFTP,FileZillaなどで検索してみてください
sshでいちいちユーザー名@ホストアドレスを入力するのがめんどくさいので
設定で
ssh ~
だけで接続できるようにします.
.ssh/config
に下記を追記(なかったら作る)
Host aws-hadoop
Hostname ec2-3-16-38-216.us-east-2.compute.amazonaws.com
User ec2-user
Port 22
IdentityFile C:\Users\rilak\SAMPLE_KEY.pem
書き方
Host [接続に使いたい名前]
パラメータ | 説明 |
---|---|
Host | 任意の接続名(接続するsshのエイリアス名) |
Hostname | 接続するサーバーのIPアドレスまたはドメイン |
User | 接続するユーザー名 |
Port | 接続するポート番号 |
IdentityFile | 秘密鍵のファイルパス |
以降,ssh aws-hadoop だけで接続ができます. |
|
stfpで送ってみる
ssh接続した後でしたらexit
しておいてください.
- aws-hadoopにsftp接続します
コマンドラインに以下を入力します
sftp aws-hadoop
Connect to AWS Hadoopと出ます
2. JDKのファイルを送ります
put jdk-15.0.1_linux-x64_bin.rpm
sftpコマンド一覧
「サーバー側の」と書いてあるものは,頭に「!」をつければ「ローカル側の」操作になります.
今回サーバーとなるのはEC2インスタンス.ローカルとなるのは自分のコマンドプロンプト・ターミナルです
コマンド | 説明 |
---|---|
! [コマンド] | ローカル側のシェルでコマンドを実行 |
bye | sftpを終了する(exitでも可) |
cd [パス] | サーバー側のカレントディレクトリを変更 |
get [ファイル] | サーバー上のファイルをローカルにダウンロード |
help | ヘルプを表示(「?」でも可) |
lcd [パス] | ローカル側のカレントディレクトリを変更 |
lls | ローカル側のファイルリストを表示 |
ln | シンボリックリンクを作成 |
lpwd | ローカル側のカレントディレクトリを表示 |
ls | サーバー側のファイルリストを表示 |
mkdir ディレクトリ | サーバー側にディレクトリを作成 |
put [ファイル] | ローカルのファイルをサーバーへアップロード |
pwd | サーバー側のカレントディレクトリを表示 |
rename [旧ファイル] [新ファイル] | サーバー側のファイルを新しい名前に変更 |
rm [ファイル] | サーバー側のファイルを削除 |
AWSのインスタンスを作成したリージョンに注意
ファイルを送る際,外国リージョンにインスタンスがあったりすると,廉価なインスタンスは回線がとても細いので,送るのに時間がかかります.インスタンス作成時には自分の住んでる地域に一番近いところにしましょう(複数のインスタンスが無駄に遠いリージョンをまたいでいるのも要注意です.多分無駄にお金と時間がかかります).
裏技
裏技というか,踏んだらダウンロードされるリンクを知っていれば,Linuxにはwgetというコマンドがあるので,インスタンスからそれをたたくのも手です(たぶんOracleのサイトは外国にあるので,そのほうが速い説あります)
wget https://download.oracle.com/otn-pub/java/jdk/15.0.1%2B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_linux-x64_bin.rpm
Discussion