イタリア旅行
9月下旬にリフレッシュ休暇でイタリアに行ってきました。
ネット環境はいままではWifiルーター使ってたんですが、繋がらないことも多かったので今回はSIM買いました。
値段も安いし、ちゃんと繋がるし良いですね。
AIS プリペイドSIMカード データ通信 15日 4G/3G
- 出版社/メーカー: AIS
- メディア: エレクトロニクス
- この商品を含むブログを見る
機内ではFire HD 10にNetflixでダウンロードしたテラスハウスをずっと見てました。
普段はkindle使いなのですが、こういう動画視聴デバイスを何にするか出発前に考えていて、最初はiPadにしようかと思ったんですが、値段高いのでFire HDへ。Fire HDは雑誌読む時にカラーなのが良いのと動画見るのには向いてます。
フライトは成田からデュッセルドルフ経由でミラノに入りました。帰りは逆になります。
ミラノのマルペンサ空港からミラノ中央駅へはシャトルバスを使いましたが、これは楽でいいです。
スーツケースを持ち運ばなくていいし、空港からバス乗り場も近い。
僕は マルペンサ空港からミラノ市内へのアクセスまとめ を参考にTerravision社のバスを使いました。
ミラノカードなるものを事前に購入してこれを現地で受け取ってそれを使って地下鉄でDuomoへ
ガッレリア
ブレラ絵画館は僕のような美術全く興味無い人間でも結構楽しめます。
死せるキリスト
イタロでベネチアへ。
電車は日本でレイルヨーロッパで全部予約しました。イタロ良いです。座席のグレードが3つあって僕は真ん中のPrimaにしました。
参考 イタロの予約と座席、サービスについて - 乗車レビュー
ベネチアは特別な街でミラノのような都会ではないですが、駅でてすぐ下記のように川と橋が見えて良い感じです。
サン・マルコ広場へ行き鐘楼に登ってそこからの眺め
他は ヴェネチアの勧め - Chikirinの日記 を参考に僕はサン・ロッコとドガーナに行きました。
ベネチアは道が狭くしかも橋を渡らないといけない箇所もあってGoogle Map使っていてもちょいちょい迷いましたが、広くは無いので徒歩で割となんとかなります。水上バスのヴァポレットも使いましたが、遅いので1回乗れば十分な気がします。
ベネチアのレストランはここがお勧めです。ネット予約もできます。
Hostaria Osottoosopra (ベネチア) の口コミ675件 - トリップアドバイザー
フィオレンティーナの試合も見てきました。
電車でピサにも行ってきた。
フィレンツェ観光後はミラノに戻ってサッカー観戦。サン・シーロスタジアムです。
ローマへ移動
トレビの泉
スペイン広場
ローマのレストランはここがお勧めです。
Ristorante Nerone (ローマ) の口コミ694件 - トリップアドバイザー
ナポリへ移動して観光
地下鉄の1日券買ったのに乗り場行こうとしたらその日は閉鎖されていたので徒歩で、ヌオーヴォ城の方へ行きました。
ローマに戻って観光してたら、ローマのユニフォームきたお姉さんが観光地でローマダービーのチケット売ってたのでうっかり購入して試合見てきました。
お姉さんに中田英寿知ってるか?って聞いたら知らんとのこと。まあ20代っぽかったしな。
そういえば旅行来る前に
Number PLUS 中田英寿 20年目のイタリア (Sports Graphic Number PLUS(スポーツ・グラフィック ナンバープラス)) (文春e-book)
- 作者: 文・金子達仁
- 出版社/メーカー: 文藝春秋
- 発売日: 2018/09/05
- メディア: Kindle版
- この商品を含むブログを見る
ローマ時代の思い出のところの記事が良いです。もちろんあのユベントス戦のこともかかれているし、なによりもモンテッラのくだりが熱い。
プロフェッショナルとはこうなんだなという。
そんなわけで約二週間のイタリア旅行でしたが、天気がずっとよくて、昼間は暑かったです。
心配してた治安も問題なく、不満といえばホテルがしょぼいぐらいですね。狭いし朝食の種類が少ない。ここに関してはイギリスの方がはるかに上。
これでイギリス、フランス、ベルギー、ドイツ、イタリアに行ったので次はスペインに行きたいなあ。
Hadoopのworker系nodeでのkernel panic
6月ごろからHadoopのworker系nodeつまりdatanode, nodemanager, presto workerが動いているnodeでkernel panicが多発するようになって困っていてまだ解決はしていないのですが、メモっておきます。
ログ分析基盤として使っているHadoopクラスタで深夜帯にバッチを動かします。
load averageは100を超えることもあり、マシンスペックはメモリ256GB、CPUは40プロセッサ、HDDは3TBが12本ささってます。
OSはCentOS 7.2.1511です。
データ量が増えてきたこともあり、ディスクだけじゃなくコンピューティングリソースももりもり使ってます。
だいたい午前6時から8時にkernel panic起こることが多くて、ひどいときは短い時間に3台kernel panicが起きて、マシン再起動、サービス起動が間に合わずmissing blockになってjobが失敗することもありました。
負荷がピークの時に起きているわけではないのがちょっと不思議なのですが、別の負荷がそんなに高くないHadoopクラスタでは全く起きてないので負荷が原因のひとつではありそう。
この状況はさすがに辛いので、ジョブのスケジューリングを変えて負荷を平準化するとともに、インフラチームから提案のあったkernelアップグレードをやったところ回数こそ減ったもののまだ週一回程度起きます。
さらに仮にkernel panicしても、マシン再起動したらdatanode, nodemanager, presto workerが自動起動するようにsystemctlにType=oneshotで仕込みました。
ただ
Wants=network-online.target After=network-online.target
とかやっても期待通りに動かなかったので、
After=network.target remote-fs.target nss-lookup.target ambari-agent.service
とかしてさらにsleep 45してマシン再起動時にambari apiをたたいてdatanode, nodemanagerを起動するようにしました。
kernelは3.10.0-514.2.2から3.10.0-862.9.1にあげました。
マシン再起動が必要で3台同時にやるとmissing blockになってジョブがこけるので多くても2台まで同時に作業しました。ここは完全に手動で温かみのある作業です。40台でだいたい4時間かかりました。
その後まだkernel panicが起きたのでkdumpを仕込みました。元々kdump自体はインストール済みだったので設定だけ少し変えて起動しときました。
どこを変えたかというとvmcoreはそれなりの容量になる気がしたので、OSとは別のパーティションに出力するように変更しました。
そしてkernel panicがまた起きてcrashコマンドでの解析を試みましたが、よくわからずcentosにissue登録しました。
0015216: 3.10.0-862.9.1.el7.x86_64 kernel panic and crash under hadoop environment - CentOS Bug Tracker
メッセージに
[exception RIP: find_busiest_group+869]
とあったのでfind_busiest_groupでググると
https://qiita.com/nhiroki/items/2fa7bb048118145b00cd
が見つかりずいぶん参考になりました。
負荷が高いときにスケジューラ周りのバグを踏んだんじゃないかという気がしますが、その後centos teamから返信がきて、最新のkernel 3.10-862.11.6を試してくれない?って言われます。
タイミング悪く3.10.0-862.9.1にあげた後にすぐ3.10-862.11.6が出たようです。
cpu hot plug関連でcpu core数が正しく表示されないbug 0015108: cpu core counts change unexpectedly - CentOS Bug Trackerが関係してそうでそれがkernel 3.10-862.11.6でfixされているとのことでした。
バージョン一覧がどこにあるのかよくわからんですが、例えば下記で見れるようです。
ftp://ftp.riken.jp/Linux/cern/centos/7/updates/x86_64/repoview/kernel-devel.html
3.10.0-862.9.1と3.10-862.11.6の差分は下記で見れます。
https://git.centos.org/compare/rpms!kernel.git/refs!tags!imports!c7!kernel-3.10.0-862.11.6.el7..refs!tags!imports!c7!kernel-3.10.0-862.9.1.el7
kernel upgradeのansible playbookはこんな感じで作りました。
- name: chattr -i command: chattr -i /boot/grub2/grub.cfg - name: upgrade kernel yum: name=kernel state=latest - name: chattr +i command: chattr +i /boot/grub2/grub.cfg
3.10.0-862.11.6にあげても残念ながらkernel panicは起きました。ただメッセージは違いました。
[exception RIP: __hrtimer_get_next_event+52]
その旨を報告すると、関連しそうな部分を直したものが含まれる3.10.0-862.11.6.el7.centos.plus.2を試してくれと言われます。
plus.1だったら
yum install --enablerepo=centosplus kernel-plus
とかすれば入りましたが、plus.2はkernel-plusにはないようなのでrpmで入れます。playbookはこんな感じ。
- name: chattr -i command: chattr -i /boot/grub2/grub.cfg - name: install kernel-plus yum: name=http://.../kernel-plus-3.10.0-862.11.6.el7.centos.plus.2.x86_64.rpm state=present - name: grubby --set-default command: grubby --set-default=/boot/vmlinuz-3.10.0-862.11.6.el7.centos.plus.2.x86_64 - name: chattr +i command: chattr +i /boot/grub2/grub.cfg
で、今は様子見中です。今までの頻度を考えると1週間何も起きなかったら解決したと思っていい気がします。
yanagishimaとElasticsearch
Elasticsearch 6.3になってSQLがサポートされたのですが、KibanaからだとDiscoverからはクエリ投入できなくてDev Toolsから実行するしかないです。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/xpack-sql.html
そのうちDiscoverからはクエリ投入できるようになりそうですけど、yanagishimaでサポートしても悪くあるまいということで進めてます。
Elasticsearch JDBC Driverを自前で実装してyanagishimaから使っています。
https://github.com/wyukawa/elasticsearch-jdbc-driver
自前実装といっても下記を参考にしてますし、全メソッドを実装しているわけではなくyanagishimaで使うものだけ実装しています。
https://github.com/tokuhirom/unofficial-elasticsearch-jdbc-driver
SQLからLuceneクエリに変換するAPIも用意されていたので、それも別途取り込んでます。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/sql-translate.html
maven repoにjar登録するの面倒かなと思ったんですが、調べつつやったらそんなに大変でもなかった。下記がプロジェクト申請時のissueです。
https://issues.sonatype.org/browse/OSSRH-41141
社内で軽く使い始めてみましたが、group byに1つしかかけない、case/union allをサポートしてない、sum(if())みたいにifを関数として使えない、などまだ機能が足りてない感じなので今後に期待といったところです。
関数も少ないですね。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/sql-syntax-show-functions.html
個人的にはyanagishimaでsqlからtranslateしてそこからkibanaにリンクできると面白いかなと思ってます。
yanagishimaのバージョンは今14.0ですが、15.0で正式にElasticsearch SQLをサポートしようと思ってます。
ディス・イズ・ザ・デイ
- 作者: 津村記久子
- 出版社/メーカー: 朝日新聞出版
- 発売日: 2018/06/07
- メディア: 単行本
- この商品を含むブログ (4件) を見る
全22チームある架空のJ2の最終節を舞台とした連作短編集です。
11試合+プレーオフの合計12編あって、それぞれホーム側、アウェー側のサポーターの視点から話が進んでいきます。
個人的には4話目が熱い。どちらかというと重苦しいトーンなのだが抜群に良い。
僕はFootのファンなのですが、津村さんはそこから知っていろんな小説、たとえば、この世にたやすい仕事はない なんかは好きです。作者は僕と同年代で、主人公は働く独身女性というパターンが多い気がします。
http://www.youtube.com/watch?v=O0iOY1hIJ6U
で、このディス・イズ・ザ・デイは僕が思うに津村さんの最高傑作なのではと思いました。
サッカー好きな人はもちろんそうでない人も楽しめるんじゃないかと。
Elasticsearch/Kibanaを6.2.2から6.3.0にupgradeした
6.3.0のrelease blogはこちら
https://www.elastic.co/blog/elasticsearch-6-3-0-released
https://www.elastic.co/blog/kibana-6-3-0-released
6.3.0からX-Packが標準で含まれるようになったのでインストールは不要で、最初からBasic Licenseが適用されています。
SQLもBasicに含まれていますが、JDBCは有償です。
https://www.elastic.co/subscriptions
なので
https://github.com/tokuhirom/unofficial-elasticsearch-jdbc-driver
をコピペして軽くJDBC Driverを作り始めましたが、進捗0です。
https://github.com/wyukawa/elasticsearch-jdbc-driver
他に良さそうなやつがあれば捨てて乗り換えます。
upgradeのやり方は
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/rolling-upgrades.html
にある通りですが、注意点として古いバージョンのx-packをremoveする必要があります。
https://github.com/elastic/elasticsearch/issues/31465
https://github.com/elastic/kibana/issues/19957
で、上げた翌日にはKibanaのグラフが自動更新の際にチカチカするんだけど、、、という話があり、どうも下記を踏んだ模様。criticalなものではないと思うけど、気になる人は次のバージョンを待った方がいいかも。
https://github.com/elastic/kibana/issues/20240
Kibana 6.3.0からインデックス管理もできるようになったのですが、index templateの更新はできなそうなのでcerebroは依然として使う予定です。
今日cerebroを0.8.1にupgradeしたらクラスタ設定もいじれるようになっており進化を感じます。
Elasticsearch実践ガイドを読んでみた
Elasticsearch実践ガイド impress top gearシリーズ
- 作者: 惣道哲也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/15
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
目次
第 1 章 Elasticsearch とは 1-1 Elasticsearch が登場した背景 1-2 Elasticsearch の特徴 1-3 Elastic Stack について 1-4 Elasticsearch のユースケース 1-5 Elasticsearch の導入事例 1-6 まとめ 第 2 章 Elasticsearch の基礎 2-1 用語と概念 2-2 システム構成 2-3 REST API による操作 2-4 Elasticsearch の導入方法 2-5 まとめ 第 3 章 ドキュメント/インデックス/クエリの基本操作 3-1 ドキュメントの基本操作 3-2 インデックスとドキュメントタイプの管理 3-3 さまざまなクエリ 3-4 まとめ 第 4 章 Analyzer/Aggregation/スクリプティングによる高度なデータ分析 4-1 全文検索と Analyzer 4-2 Aggregation 4-3 スクリプティング 4-4 まとめ 第 5 章 システム運用とクラスタの管理 5-1 運用監視と設定変更 5-2 クラスタの管理 5-3 スナップショットとリストア 5-4 インデックスの管理とメンテナンス 5-5 refresh とflush 5-6 まとめ 第 6 章 Elastic Stack インテグレーション 6-1 Elastic Stack 6-2 X-Pack の活用 6-3 まとめ 索引
僕は管理者、ログ分析の文脈でElasticsearchを使っていて、検索エンジンとしてはあまり使っていません。
Analyzerとかクエリの書き方とかは全然わかってなくて本当に雰囲気で触っているのだが、
そういう人にとっては、もちろん普通にElasticsearchに入門する人でも、本書は役立つと思う。特に3,4章とか
運用管理者の視点からも5章はアップグレード方法だったり、Luceneのインデックスファイル構造まで書かれていて参考になった。
Elasticsearch絡みの日本語書籍は結構古くなっていて、最近で本書以前では下記があったのだが、こちらはFluentdも含めたログ分析基盤の観点から書かれた本なのでElasticsearch自体にはあまり踏み込んでいなかった。
データ分析基盤構築入門[Fluentd,Elasticsearch,Kibanaによるログ収集と可視化]
- 作者: 鈴木健太,吉田健太郎,大谷純,道井俊介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/21
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
Elasticsearch実践ガイドは逆にFluentdのような周辺システムにはあまり触れずにElasticsearchについて必要なことが書かれている。ただ本書が対象としているElasticsearchのバージョンが6.2だが、最近6.3が出たのはちょっとタイミングが悪かったかもしれない。6.3からX Packは別途インストールする必要なくなったしね。とはいえ本書はElasticsearchについて学ぶのに良書だと思う。