ambariでhadoopクラスタインストールができない

[調査中]

事象

Confirm Hostsの画面にて、全ホストのstatusが問題なくSuccessとなった後、

"Please wait while the hosts are being checked for potential problems..."

の状態から先に進まなくなる。

f:id:cateching:20171201230436p:plain

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

環境

確認事項

  • Network Settings
    • selinux : Disabled
    • firewalld : inactive (dead)
    • /etc/hosts : done
    • chronyd : syncronized
    • ssh connectivity : OK (no passwd, with key)

参考情報

同じ境遇の人がいた。(未解決で進行中) 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!で変更を保存

ファイルを修正後、ターミナルを起動し直すと設定変更が反映される。

  • 補足

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.元に戻す

使い終わったらもとに戻す。

・参考 takuya-1st.hatenablog.jp

ミンナニハナイショダヨ

公衆無線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版の記事を参照のこと。

  1. 画面右上メニューの扇形をしたWi-Fiアイコンをクリック
    f:id:cateching:20170103160216p:plain

  2. 「ネットワーク環境設定を開く…」をクリック
    f:id:cateching:20170103160223p:plain

  3. Wi-Fi」を選択して「詳細」をクリック f:id:cateching:20170103160237p:plain

  4. DNS」タブをクリック f:id:cateching:20170103160515p:plain

  5. DNSサーバのIPアドレス(以下の例では8.8.8.8)を選択して、「−」ボタンをクリック。(削除) f:id:cateching:20170103160753p:plain

  6. DHCPで配布されたDNSサーバのIPアドレスが設定されていることを確認して、「OK」ボタンをクリック f:id:cateching:20170103160653p:plain

※もともと何か事情があってDNSサーバを固定化していたのなら、公衆無線LAN利用後に本設定を戻すのを忘れずに。

以下は余談。

公衆無線LANでインターネット接続するときのポータル表示の仕組み

 初回アクセス時に強制的に公衆無線LANのポータルページを表示させるこの仕組には、「Captive Portal」という名前がついているらしい。実現方法はいくつかあるが、マックのWiFiで採用されてる製品の方式は以下の通りだった。(キャプチャ結果より)

本来の動き

  1. クライアントはDHCPサーバからIPアドレスDNSサーバのアドレスを受け取って設定する。
  2. クライアントが任意のサイトにアクセスする。(例えば http://www.yahoo.co.jp/
  3. クライアントはDNSリクエストを投げてwww.yahoo.co.jpに紐づくIPアドレスを受け取る。
  4. クライアントはwww.yahoo.co.jpに対してGETリクエストを発行する。
  5. ゲートウェイはこのGETリクエストを横取りして、クライアントにステータスコード302とリダイレクト先(公衆無線LANのポータルページ)のホスト名を返す。
  6. クライアントは認証ページにアクセスする。

その他の方式として、上記「3.」の時点でどんなDNSリクエストが来ても認証ポータルページへのIPアドレスを返すDNSハイジャックというやり方もある。 他にもある。 Captive portal - Wikipedia

今回の動き

  1. クライアントはDHCPサーバからIPアドレスDNSサーバのアドレスを受け取る。IPは受け取った値を採用するが、DNSサーバは固定の8.8.8.8を採用。
  2. クライアントが任意のサイトにアクセスする。(例えば http://www.yahoo.co.jp/
  3. クライアントは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

お品書き

  1. LINE Business Centerアカウント作成
  2. LINE@アカウント作成
  3. LINE@Manager設定
  4. LINE Developper設定
  5. サーバ準備
    1. サーバのFW設定(httpsをaccept)
    2. SSLリバプロ設定(nginx)
    3. AP作成(ruby + sinatra)

使用する環境

|項目|バージョン| |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

LINE API Reference

bot sinatraの例

blog.engineer.adways.net