SpringBootでJDBCサンプル

まずはこの手順にしたがって環境作成
Getting Started · Managing Transactions

ログの設定を変更したいので
83. Logging

$mkdir -p src/main/resources/
$gedit src/main/resources/application.properties

application.propertiesの中に追記

logging.level.org.springframework.web: DEBUG
logging.level.hello: ERROR
logging.level.org.hibernate: ERROR

INFOログがでなくなったことが確認できる

フォーマットを変えたいのでlogback.xmlを置く

$gedit src/main/resources/logback.xml

logback.xmlの中身




%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n








フォーマットは変わった。起動時のSpringのロゴは消えない。

VirtualBox上のOracleXEを外部から繋げるように修正

やったこと

  • oracleサーバのhostsに固定IPを指定
  • iptablesを無効にした
  • listener.oraのホスト名を確認
  • oracleの再起動

oracleサーバのhostsに固定IPを指定

$gedit /etc/hosts

例えばこんな感じ

192.168.0.23 centos66 centos66.localdomain


iptablesを無効にした
無効にしないでポートを開けるだけ良いはずだけど面倒だったのでstop

#service iptables stop

iptablesはchkconfigでoffにせずに使うときにiptabesをstopすることにした


listener.oraのホスト名を確認

#gedit /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora

listener.oraの内容

# listener.ora Network Configuration File:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = centos66.localdomain)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

念のためoracleを再起動

# /etc/init.d/oracle-xe restart
Shutting down Oracle Database 11g Express Edition instance.
Stopping Oracle Net Listener.

Starting Oracle Net Listener.
Starting Oracle Database 11g Express Edition instance.

SQLDeveloperをUbuntuにインストールする

UbuntuへのSQLDeveloperのインストール手順はすべてこれ
oracle - How to install SQL Developer on Ubuntu 14.04? - Ask Ubuntu


Install Java:

sudo apt-get install openjdk-7-jdk openjdk-7-jre icedtea-7-plugin
sudo update-alternatives --config java
Download SQL Developer from Oracle website (I chose Other Platforms download).

Extract file to /opt:

sudo unzip sqldeveloper-*-no-jre.zip -d /opt/
sudo chmod +x /opt/sqldeveloper/sqldeveloper.sh

Linking over an in-path launcher for Oracle SQL Developer:

sudo ln -s /opt/sqldeveloper/sqldeveloper.sh /usr/local/bin/sqldeveloper

Edit /opt/sqldeveloper/sqldeveloper.sh and replace it's content to:

#!/bin/bash
unset -v GNOME_DESKTOP_SESSION_ID
cd /opt/sqldeveloper/sqldeveloper/bin
./sqldeveloper "$@"

or (to prevent error: ./sqldeveloper: Permission denied)

#!/bin/bash
unset -v GNOME_DESKTOP_SESSION_ID
cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

Run SQL Developer:

sqldeveloper

Note: When you run Sql Developer at the first time, you need to specify the path of JDK's folder. In my computer, JDK stored at /usr/lib/jvm/java-1.7.0-openjdk-amd64

Finally, create desktop application for easy to use:

cd /usr/share/applications/
sudo vim sqldeveloper.desktop

add this lines:

[Desktop Entry]
Exec=sqldeveloper
Terminal=false
StartupNotify=true
Categories=GNOME;Oracle;
Type=Application
Icon=/opt/sqldeveloper/icon.png
Name=Oracle SQL Developer

then type:

sudo update-desktop-database

HadoopコマンドのHDFS操作のおさらい

HadoopコマンドでHDFSを触る

ここを見ればOK
Apache Hadoop 2.9.2 – Overview

ls

hadoop 2.6.0では-rも-uも-sも使えない。

hadoop fs -ls
hadoop fs -lsr
hadoop fs -ls
hadoop fs -ls -R

touchz

hadoop fs -touchz hoge


mkdir

hadoop fs -mkdir foo
hadoop fs -mkdir foo/bar # これはエラー
hadoop fs -mkdir /user/hadoop/foo/bar # これもエラー
hadoop fs -mkdir -p foo/bar # pオプションをつければOK。Linuxと同じ。

put

hadoop fs -put hoge.txt /user/hadoop/hogehoge.txt


appendToFile

hadoop fs -appendToFile hoge.txt /user/hadoop/hogehoge.txt # putだと上書きできない。appendだと追記される。

rm

hadoop fs -rm -f hogehoge.txt # -fならファイルが無くてもexitstatusがエラーにならない。

find
hadoop 2.6.0では使えなかった。2.7.0以降のようだ。

test

hadoop fs -rm -f hogehoge.txt
echo $?
0

MapRのインストール再挑戦

前提

クイックインストーラを入手する

MapR 5.0 Documentation : Quick Installation Guide

$ su -
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release-*.rpm
# wget http://package.mapr.com/releases/v4.0.2/redhat/mapr-setup
# chmod 755 mapr-setup

/etc/hostsと/etc/sysconfig/network に自ホストの名前が設定されていることを確認する

/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=centos66.localdomain

/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.2.15 centos66 centos66.localdomain

ディスクの状態を確認

sdbがMapR用に追加したディスクイメージ。VirtualBoxでストレージを追加する。

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 55.4M 0 rom /media/VBOXADDITIONS_4.3.22_98236
sda 8:0 0 15G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 14.5G 0 part
├─vg_centos66-lv_root (dm-0) 253:0 0 13G 0 lvm /
└─vg_centos66-lv_swap (dm-1) 253:1 0 1.5G 0 lvm [SWAP]
sdb 8:16 0 24.7G 0 disk

# fdisk -l

ディスク /dev/sda: 16.1 GB, 16106119168 バイト
ヘッド 255, セクタ 63, シリンダ 1958
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00079f85

バイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 1958 15214592 8e Linux LVM

ディスク /dev/sdb: 26.5 GB, 26540687360 バイト
ヘッド 255, セクタ 63, シリンダ 3226
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000


ディスク /dev/mapper/vg_centos66-lv_root: 14.0 GB, 13971226624 バイト
ヘッド 255, セクタ 63, シリンダ 1698
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000


ディスク /dev/mapper/vg_centos66-lv_swap: 1606 MB, 1606418432 バイト
ヘッド 255, セクタ 63, シリンダ 195
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

クイックインストーラを展開する

./mapr-setup
===============================================
Self Extracting Installer for MapR Installation
===============================================

Extracting installer.......
Copying setup files to "/opt/mapr-installer"......
Installed to "/opt/mapr-installer"
====================================

Run "/opt/mapr-installer/bin/install" as super user, to begin install process

インストーラを実行
上手くいくか自身がないのでデバッグオプションをつける。

# /opt/mapr-installer/bin/install --debug new

途中の質問にいろいろ答えて以下の設定にした。

Current Information (Please verify if correct)
==============================================

Accessibility settings:

Cluster Name: "my.cluster.com"
MapR User Name: "mapr"
MapR Group Name: "mapr"
MapR User UID: "2000"
MapR User GID: "2000"
MapR User Password (Default: mapr): "****"

Functional settings:

WireLevel Security: "n"
MapReduce Services: "n"
YARN: "y"
MapR-DB: "n"

HBase: "n"
Disks to use: "/dev/sdb"
Client Nodes: ""
Control Nodes: "centos66.localdomain"
Data Nodes: ""
Repository (will download core software from here): "http://package.mapr.com/releases"
Ecosystem Repository (will download packages like Pig, Hive etc from here): "http://package.mapr.com/releases/ecosystem"

MapR Version to Install: "4.0.1"
Java Version to Install: "OpenJDK7"
Allow Control Nodes to function as Data Nodes (Not recommended for large clusters): "n"
Local Repository: "n"

Metrics settings:

Metrics DB Host and Port: ""
Metrics DB User Name: ""
Metrics DB User Password: ""
Metrics DB Schema: ""

ユーザとパスワードを求められるのでroot と rootのパスワードを指定する。
その後に必要なライブラリをインストーラyum でインストールしてくれる。
途中でエラーが起きる場合がある。たいていはyumのインストール失敗なので、
個別にyum install xxxxx を実行してパッケージを入れる。
java-1.7.0-openjdk-develがよくエラーになる。

再実行するときも同じコマンド。その後に直前の設定で再実行するか聞かれるので「y」とする。

# /opt/mapr-installer/bin/install --debug new

最終的にこのメッセージが出ればインストール完了

MapR Installation Successful on Control Nodes. Please login via the web console at https://centos66.localdomain:8443 or manage the cluster using 'maprcli' or 'hadoop' commands

メッセージにしたがってFireFoxでURLにアクセスするとエラーになる

安全な接続ができませんでした

これは
IBM Firefox 31 に更新後、自己署名証明書や IBM Domino サーバーで作成した証明書を利用した Web サイトに接続できない
っぽい
FireFoxのsecurity.use_mozillapkix_verification設定を見るとすでにfalseだったのでtrueにする。
すると

接続の安全性を確認できません

になる。
ここで例外サイトにホスト名(centos66.localdomain)を追加する。

するとログイン画面が表示される。
user/password は mapr/mapr のはずだが入れない…。