ambariでhadoopクラスタインストールができない
[調査中]
事象
Confirm Hostsの画面にて、全ホストのstatusが問題なくSuccessとなった後、
"Please wait while the hosts are being checked for potential problems..."
の状態から先に進まなくなる。
ambari serverのログには以下のようなメッセージ出力があるが、これの意味するところがわからず調査中。
$ less /var/log/ambari-server/ambari-server.log
WARN [ambari-action-scheduler] ExecutionCommandWrapper:225 - Unable to lookup the cluster by ID; assuming that there is no cluster and therefore no configs for this execution command: Cluster not found, clusterName=clusterID=-1
環境
- OS: CentOS Linux release 7.4.1708
- HDP version: 2.6.3.0 Automated (with Ambari 2.6.0) https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.0.0/bk_ambari-installation/content/ch_Getting_Ready.html
- 構成:
確認事項
- Network Settings
参考情報
同じ境遇の人がいた。(未解決で進行中) Ambari setup stuck at step 3 - Hortonworks
Disable SELinux and PackageKit and check the umask Value - Hortonworks Data Platform
sudo sh -c "echo umask 0022 >> /etc/profile"
mac ターミナルのプロンプト「ユーザ名noMacBook-Pro」を消す
OS Xのターミナルのプロンプトは、デフォルトでは「ユーザ名noMacBook-Pro」などというダサくて長い表記になっているのでこれを修正したい。
macOS Catalina以降のバージョンの場合(bash)
以下のように、/etc/zshrcを編集してプロンプトの表示をシンプルに「ユーザ名」のみが表示されるよう変更する。
$ sudo vim /etc/zshrc
- /etc/zshrc
#PS1="%n@%m %1~ %# " #既存の設定をコメントアウト PS1="%n@%1~ %# "
:wq!で変更を保存
ファイルを修正後、ターミナルを起動し直すかsource /etc/zshrc
を実行すると設定変更が反映される。
macOS Mojave以前のバージョンの場合(bash)
以下のように、/etc/bashrcを編集してプロンプトの表示をシンプルに「ユーザ名」のみが表示されるよう変更する。
$ sudo vim /etc/bashrc
- /etc/bashrc
#PS1='\h:\W \u\$ ' #既存の設定をコメントアウト PS1='[\u@Mac \W]$ '
:wq!で変更を保存
ファイルを修正後、ターミナルを起動し直すと設定変更が反映される。
- 補足
- \h: ホスト名
- \W: カレントディレクトリ
- \u: ユーザ名
RSR 持ち物リスト
主に前日・当日のチェックリスト用なので、詳細は割愛する。 詳しい話は別記事にて。
必須、絶対忘れるな編
まさかこれを持たずに家を出ようとはしていまいな。
チケット or リストバンド
駐車券
航空券
テント生活編
テント
寝袋
クーラーボックス
ランタン
テント内の照明として
虫除けスプレー
歯ブラシ
シャンプー、ボディーソープ
フェス参加中用、試供品なんかがちょうどいい。
ライブ観戦編
ボディバッグ・ウェストポーチ
フェス中の貴重品入れとして必須
着替え
汗を書いてすぐ不快な状態になるので、たくさんあるに越したことはない。
タオル
帽子
上着
夜間の防寒用。夜は寒いぞ。
レインコート
雨が降ったら必要。風邪を引きたくなかったら買っておこう。
サングラス
あると大分楽だし目に優しい。
懐中電灯
忘れがちだけどないと夜歩けない。
ケータイ充電器
ケータイ充電器(車用)
移動中やいざというときに車で充電できる安心感
モバイルバッテリー
コンタクトレンズ、メガネ
ホルモンなんかのモッシュに参加しようと思っているなら、メガネの1つや2つはすぐに失くなるものと思え。
日焼け止め
制汗スプレー or 汗拭きシート
ビデオカメラ
思い出を映像として残そう
カッチカチに凍らせたペットボトル
会場内のコンビニにも売っているが、売り切れ必至だ。
上級者編
これをやりだしたら上級者だ。
バーベキューセット
キャリーカート
車からテントサイトまで大きな荷物を運ぶ時に便利。
旗とかメッセージボードとか、テントに飾るやつ
自分のテントの場所をひと目で分かるように目印としての目的はもちろん、フェスの気分を盛り上げるためにも重要なアイテムだ。
現地にあるものリスト
持っていくべきものの確認も重要だが、逆に持っていかなくていいもの、つまり現地にあるものを把握しておくこともまた重要だ。
コンビニ
軽食や歯ブラシなどのちょっとした生活必需品がある。カップラーメンもお湯もある。
シャワー設備
あるけど予約制で順番待ちがえぐい。気づいたときには予約受け付け終了だ。ないものと思え。
電源
なんと充電できるように電源が置いてある。なかには炊飯器を繋いで米を炊くツワモノもいるぞ。迷惑だからやめよう。
会場内持ち込みNGリスト
以下は持ち込みNGだから要注意だ。
ビン類のお酒全般
缶ビール
ジョッキ、ガラスのコップ
基本は安全面への配慮からガラス系の物の持ち込みを禁止しているということだろう。 詳細は公式サイトの「持込禁止品」の項を参照されたし。
■持込禁止品
RULES 注意事項 - RISING SUN ROCK FESTIVAL 2016 in EZO
<余談>
説明文には「ビン・缶類の持込は禁止」とあり、缶類全般がNGと解釈できるが、一方で持込禁止リストには「缶ビール」「ビールのビン」などと「ビール」に限定されている。じゃあ缶チューハイは結局ありなのかだめなのか。なんともモヤモヤする書き方である。
テクニック
現地に郵送
テントやクーラーボックスなど、でかい荷物は現地や空港に送ろう。 帰りはフェス会場に郵便局が出張しているので、そのまま郵送できるよ。
時間制限付きの無料Wi-Fiであともう少しだけ粘りたいときのためのメモ
Mac OSの場合
接続済み端末の識別というのは大概MACアドレスでやっているので、これを変更してしまえば新規端末として認識される。 でも、コーヒー一杯で何時間も粘るのはやめましょう。
手順は以下。
1.本来のMACアドレスを控える
$ ifconfig > ifconfig_YYMMDD.txt
2.airport -zコマンドで無線LAN I/FをNWからdisassociateする
$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
3.MACアドレスをXXする
指定する値は全くテキトーで構わない。
sudo ifconfig en0 ether XX:XX:XX:XX:XX:XX
4.認識させる
$ networksetup -detectnewhardware
5.変更結果確認
$ ifconfig
6.無線LAN接続
自動的にされる。
7.元に戻す
使い終わったらもとに戻す。
ミンナニハナイショダヨ
公衆無線LAN(フリーWi-Fi)に接続できない。認証ページが表示されない件。(Mac)
最近、マックやコメダなど、飲食店で提供しているフリーWi-Fiに接続できないことに気付いた。 接続できないってのはWiFiにはつながるんだけど、最初の認証ページが表示されないって状態。
同じ境遇の人のために、原因と対策を書いた。
現象
公衆無線LAN(フリーWi-Fi)に接続できない。 認証ページが表示されない。
確認したこと
1.アクセスポイント(=無線LANルータ)には接続できている
2.IPアドレスは取得できている
3.インターネットにアクセスできない
→ブラウザを開いてテキトーなページにアクセスすると、待たされた挙句、エラーページが表示される。すなわち、インターネットアクセス時に最初に表示されるはずのページ(規約が書いてあったり、認証を求められたりする例のページ)にリダイレクトされない。
以上に当てはまれば、DNS設定に関する問題である可能性が高いので以下の「対処方法」の項を参照されたい。
原因
結論としては、DNS設定で「8.8.8.8(固定)」を指定していたことが原因だった。 この状態で任意のwebサイトにアクセスすると、そのサイトの名前解決を行うために、8.8.8.8へDNSリクエストを送ろうとする。ところがこの通信は(少なくともフリーWi-Fiのインターネットアクセス認証前には)許可されていないため、ゲートウェイで落とされる。
対処方法
固定で指定しているDNSサーバの設定を削除し、DHCPで自動的に割り当てられるDNSサーバを採用すればよい。
以下はMacの場合の手順。Windowsをご利用の方はWindows10版の記事を参照のこと。
※もともと何か事情があってDNSサーバを固定化していたのなら、公衆無線LAN利用後に本設定を戻すのを忘れずに。
以下は余談。
公衆無線LANでインターネット接続するときのポータル表示の仕組み
初回アクセス時に強制的に公衆無線LANのポータルページを表示させるこの仕組には、「Captive Portal」という名前がついているらしい。実現方法はいくつかあるが、マックのWiFiで採用されてる製品の方式は以下の通りだった。(キャプチャ結果より)
本来の動き
- クライアントはDHCPサーバからIPアドレスとDNSサーバのアドレスを受け取って設定する。
- クライアントが任意のサイトにアクセスする。(例えば http://www.yahoo.co.jp/)
- クライアントはDNSリクエストを投げてwww.yahoo.co.jpに紐づくIPアドレスを受け取る。
- クライアントはwww.yahoo.co.jpに対してGETリクエストを発行する。
- ゲートウェイはこのGETリクエストを横取りして、クライアントにステータスコード302とリダイレクト先(公衆無線LANのポータルページ)のホスト名を返す。
- クライアントは認証ページにアクセスする。
その他の方式として、上記「3.」の時点でどんなDNSリクエストが来ても認証ポータルページへのIPアドレスを返すDNSハイジャックというやり方もある。 他にもある。 Captive portal - Wikipedia
今回の動き
- クライアントはDHCPサーバからIPアドレスとDNSサーバのアドレスを受け取る。IPは受け取った値を採用するが、DNSサーバは固定の8.8.8.8を採用。
- クライアントが任意のサイトにアクセスする。(例えば http://www.yahoo.co.jp/)
- クライアントは8.8.8.8に対してDNSリクエスト
→応答なし、終わり
→URLを入力するとまずDNSリクエストを投げちゃうので、そもそも初期ページにリダイレクトされない。
※DNSリクエストが通らないのであれば…ということでテキトーなIPアドレス(XXX.XXX.XXX.XXX)をブラウザのアドレスバーに打ち込みアクセスしてみた。
この場合、DNSリクエストを投げる必要が無いので、想定通りHTTPリクエストが発行される。
GET / Host: XXX.XXX.XXX.XXX
302 Found Location: http://10.4.0.1/index.php?http://XXX.XXX.XXX.XXX/
→リダイレクト
GET /index.php?http://XXX.XXX.XXX.XXX/ Host: 10.4.0.1
302 Found Location: http://mdj-service-select.internal/ServiceSelect.html?mac=NN:NN:NN:NN:NN:NN&griffasid=XXXX-XX-XXNN
→mdi-service-select.internalをDNSリクエスト
→結局DNSリクエストが通らなくてここで止まる。
LINE Messaging API
お品書き
- LINE Business Centerアカウント作成
- LINE@アカウント作成
- LINE@Manager設定
- LINE Developper設定
- サーバ準備
使用する環境
|項目|バージョン| |OS|CentOS 7.0| |nginx|1.10|
5.1 サーバのFW設定(httpsをaccept)
$ sudo firewall-cmd --add-port=443/tcp --zone=public --permanent $ sudo firewall-cmd --reload
設定を確認。portsに443が表示されていればOK
$ firewall-cmd --list-all --zone=public
5.2 SSLリバプロ設定(nginx)
証明書の準備
nginx SSL設定
nginx+OpenSSL:SSLサーバ証明書の設定 | CSP SSL
nginx リバプロ設定
Why isn't my Sinatra app working with SSL? (Ruby) - Codedump.io
nginx で SSL解きリバースプロキシな設定のお作法 - Qiita
確認
設定値確認
$ sudo nginx -t
再起動
$ sudo systemctl restart nginx
状態確認
$ sudo systemctl status nginx
5.3 AP作成(ruby + sinatra)
bundle init vim GEMFILE
source "https://rubygems.org" gem 'sinatra' gem 'line-bot-api'
require 'sinatra' set :environment, :production get '/' do 'test' end
・サーバ起動
$ ruby main.rb
7. 動作確認
ーーー
参考
ハッカソンのスライド
Line messaging api ハンズオン資料 ver1.2