高速なSQLでのデータ分析を目指す場合、Hadoop系の技術を使ってHDFSにORCやParquet形式でテーブルを格納してHive、Presto、Spark SQLでクエリーする方向と、ある意味素直にPostgresSQLで分析 (analytic use case) 向けの構成でクラスターを組む方向があるようなのだけれど、どっちが良いのかよく分からない。

何となく、それぞれの説明で出てくるクラスターノード数から憶測するに、性能のスケール具合は前者が、構築容易性は後者が優れていそうな印象ではある。確かめるのは、なかなか難しいね。さてはて、どうしたものか。

Ubuntu Server 16.04でNFSを設定する

NFS (Network File System) を設定する手順を調べたので備忘録。Ubuntu Server と題には書いているけれど、他の Linux でも同じだと思う。

要点

  • サーバー側は
    • nfs-kernel-server パッケージをインストールし、
    • /etc/exportfs で公開するディレクトリをオプションとともに宣言した後、
    • sudo exportfs -ra で設定を有効化する
  • クライアント側は
    • nfs-common パッケージをインストールし、
    • mount コマンドの -t (--type) オプションに nfs を指定しつつ、
    • マウント元として server_addr:/path/to/the/dir と指定してマウントする

設定手順例

サーバー earth/srv/nfs を、クライアントマシンの /mnt/earth にマウントする場合、次のような手順となる:

サーバー側

sudo apt install nfs-kernel-server
echo '/srv/nfs (rw,sync,no_subtree_check)' | sudo tee -a /etc/exportfs
sudo exportfs -ra

クライアント側

sudo apt install nfs-common
sudo mount -t nfs earth:/path/to/the/dir /mnt/earth

/etc/exportfs に指定するオプション(上の例でいう syncno_subtree_check など)については man exports で詳細を確認できる。

Ubuntu Server 16.04でCUIの解像度を変更する

VirtualBox + Ubuntu Server 16.04 で、X (GUI) を使わない CUI 状態での解像度を変更する方法を調べたので備忘録。

続きを読む

HDD 2台を搭載するLinux機でOSが起動せず困った話

久しぶりに Linux サーバーの構築をやることになり、ローレベルなところでハマってしまったので備忘録。

続きを読む

Golangの文字列変数のコピーはO(1)

Go 言語の string は、他の多くの言語と違って nil にできない。string の「ゼロ値」(特定の値で初期化しない場合に格納されるデフォルトの内容)は空文字列だ。これを知ったとき、つい C++std::string を連想してしまい、「すると string 変数の代入は O(n) (高コスト)だったりしないか?」と少し気になってしまった。ということで、簡単な実験で検証してみた。

続きを読む

Windowsで使える各種Vimの設定ファイル置き場

最近すっかり Vim 好きになってしまったので、コマンドラインインタフェース (CLI) 環境があれば必ず Vim をインストールするようになった。で、先日 Bash on Ubuntu on Windows を導入したことで自分の Windows 環境には 4 つもの vim が同居することになり、設定ファイル置き場について頭がこんがらがってきた。良い機会なので、Vim の設定ディレクトリの場所を調査・整理してみた。

まず前提として、使っている各種ソフトウェアのバージョンなどは以下の通り:

CLI環境 環境上でのパス 実体のパス(標準的な設定の場合)
msys2 (%HOME%未設定) ~/.vim/ C:\msys64\home\USERNAME\.vim
Git for Windows (%HOME%未設定) ~/.vim/ C:\Users\USERNAME\.vim
Bash on Ubuntu on Windows ~/.vim/ Windowsのパスではアクセス不可)
Windows版vimKaoriYa版vimも) %UserProfile%/vimfiles C:\Users\USERNAME\vimfiles

なお Windows環境変数として HOME を設定してやると、msys2 と Git for WindowsCLI 環境における ~ はそのディレクトリを参照するようになる。したがって、HOME を設定すると msys2 と Git for WindowsVim は同じ設定ディレクトリを読みに行くことになる点に注意が必要かな。とはいえ Git for WindowsCLI 環境は msys2 のサブセットなので、まず問題になることは無いだろう。

古いWindows 10でコマンドプロンプトのカラーテーマをアップグレードする

2017年8月2日にリリースされた Windows 10 の build 16257 でコマンドプロンプトがフルカラー(24ビット)に対応し、それと同時にコマンドプロンプトの標準カラーテーマ(配色)も更新された。しかしこのカラーテーマ、build 16257 以前の Windows 10 をアップグレードしても有効にならない。そこで、古い Windows 10 で新しいカラーテーマを使うための設定方法を書いてみた。

  • 新旧のカラーテーマの違い
  • カラーテーマを規定値に適用する
  • コマンドプロンプトを使う既存のショートカットは作り直す
  • 補足:「カラーテーマ」について
続きを読む