windowsでscala開発環境を作る(IntelliJ)
環境情報
OS: Windows7 Home Premium
Java開発環境: Oracle JDK 1.8u92 64bit
Scala: 2.11.8
ビルドツール: sbt (IntelliJが自動ダウンロード)
IDE: IntelliJ IDEA
Java開発環境のインストール
下記より該当のJDKをダウンロード&インストール。193MBと重め。
Java SE Development Kit 8 - Downloads
[システムのプロパティ]→[環境変数]より環境変数のPATH設定を実施。
その後、コマンドプロンプトにてjavacをうち応答があることを確認。
Scalaのインストール
下記より最新のScalaをダウンロード&インストール。こちらも109MBで重め。
Download | The Scala Programming Language
[システムのプロパティ] → [環境変数]より環境変数のPATH設定を実施。
その後、コマンドプロンプトにてscalaをうち応答があることを確認。
IDEのインストール
以下より、IntelliJのCommunity Editionをダウンロード&インストール。253MB。
IntelliJ IDEA :: Download Latest Version of IntelliJ IDEA
[Download featured plugins]にてScalaを選択。
hadoopのビルド
hadoopというものがはやってきているらしく、ソースコードも読みだしたので
自分でビルドぐらいできるようにならねばと思い、こころみた。
環境概要
======================
Macbook Air 11インチ最小構成
java 1.7u51
git 1.7.12 (ソースコードのダウンロード)
maven-3.0.4 (手動インストール)
protocolbuffer-2.5.0 (configure -> make)
eclipse kepler
hadoop trunk
手順
======================
$ git clone git://git.apache.org/hadoop-common.git
3.eclipseをインストール
(省略)
4.protocol bufferをインストール
一部はまったが、下記により解消。
http://d.hatena.ne.jp/torazuka/20111201/protobuf
5.ビルド
BULDING.txtにしたがい、ひとまず打ってみる。
$ mvn package -DskipTests -Dtar [ERROR] Failed to execute goal on project hadoop-annotations: Could not resolve dependencies for project org.apache.hadoop:hadoop-annotations:jar:3.0.0-SNAPSHOT: Could not find artifact jdk.tools:jdk.tools:jar:1.7 at specified path /usr/java/jre1.7.0_51/../lib/tools.jar -> [Help 1]
ぬう。。。
BUINDING.txtによると、Javaディレクトリの中身にシンボリックリンクを作るらしい。
$ cd /usr/java/default $ sudo mkdir Classes $ cd Classes $ sudo ln -s ../lib/tools.jar classes.jar
続いてビルド
$ cd /path/to/hadoop-src/ $ mvn package -DskipTests -Dtar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
めでたしめでたし。
targetもできたようなので、次はeclipseでpatchでも書いてみるか。
疲れたので今日はこれでおしまい。
webコンテナ経由でjenkins起動
jenkinsというビルドを補助してくれるものに興味を持ったので作ってみた。
一部はまったのでメモ。
構成
=====================
ホスト
- MacbookAir + VMware Fusion(CentOS 6.4)
コンテナ:
- tomcat8.0.3
jenkins:
- jenkins 1.552
別段他のサービスも予定していないのでApacheなどはいれないことに。
手順
=====================
以下を参考にtomcat配備。
https://wiki.jenkins-ci.org/display/JA/Tomcat
http://www.beeete2.com/blog/?p=410
手順は以下。
1.javaインストール
$ rpm -ivh jre-7u51-linux-x64.rpm
2.tomcatダウンロード->展開
# tar zxvf apache-tomcat-8.0.3.tar.gz # mv apache-tomcat-8.0.3/ /usr/local/ # useradd -s /sbin/nologin tomcat # cd /usr/local/ # chown -R tomcat:tomcat apache-tomcat-8.0.3 # ln -s apache-tomcat-8.0.3 tomcat # vim /etc/profile (前略) export JRE_HOME=/usr/java/default export CATALINA_HOME=/usr/local/tomcat
3.tomcat起動 -> 動作確認
# sudo -u tomcat /usr/local/tomcat/bin/startup.sh
http://localhost:8080/より「Manager App」を選択、リジェクトされる。。。
再設定。
# cat /usr/local/tomcat/conf/tomcat-users.xml
中身は以下。
(略) <user username="tomcat" password="hogehoge" roles="admin-script,manager-script"/> (略)
4.jenkins.warのダウンロード -> 配置
http://localhost:8080/より「Managet App」を選択、今度はうまくいく。
「WARファイルの配備」よりjenkins.warを選択。
配備ボタンを押すも、/jenkinsが実行されず、以下のエラーが出た。
the request was rejected because its size (67098882) exceeds the configured maximum (52428800)
調べてみると、デフォルトで配備できる最大サイズが50MBらしいので、100MBに変更する。
# cat /usr/local/tomcat/webapps/manager/WEB-INF/web.xml
中身は以下。
(略) <max-file-size>104857600</max-file-size> <max-request-size>104857600</max-request-size> <file-size-threshold>0</file-size-threshold> (略)
再度起動も、以下のエラー。
Could not initialize class sun.awt.X11GraphicsEnvironment
X11?そんなの使うのか?
調べてみると、javaの起動オプションでoffにすると解決するらしいとの情報を得た。
https://sbforge.org/jira/browse/NAS-1801
startup.shにてJAVA_OPTSに「-Djava.awt.headless=true」を追加すると確かに解決できた。
おしまい。さてさて何をビルドしようかね。
vmware へのCentOS6.4の導入
バージョンは以下。
- VMホスト: Windows 7
- 仮想化ソフト: VMWare Player 5.0.2
- ゲストOS: CentOS 6.4
以前に書籍の「CentOS 6 で作るネットワークサーバ構築ガイド」に同梱されていたCDを使ってインストールして色々いじっていたが、カーネルのコンパイルを試みたがディスク容量が少なくて頓挫したので、リベンジ。
* vmware-vdiskmanagerを使ってみる
下記サイトを参考に、ディスクの増設ツールをゲットして構築開始。VMware Serverは2011年1月末でサポート終了とのことなので、VMware workstationを入れてみる。
・VMWareでハードディスク増設
http://server-setting.info/centos/vmware_disk.html
事前にVMware Playerはアンインストールし、vmware-vdiskmanager.exeを取り出したら、再度VMware Playerを入れる。ライブラリもないと怒られる。
以下でディスクを拡張する。何やらwarningが出るが気にしない。
----
> vmware-vdiskmanager.exe -x 100Gb VMバーチャルディスク名.vmdk
Grow: 100% done.
Disk expansion completed successfully.
WARNING: If the virtual disk is partitioned, you must use a third-party
utility in the virtual machine to expand the size of the
partitions. For more information, see:
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647
そして起動後に"df -h"...あれ?ルート領域の4GB以上の領域が見えない。。。/home以下は見えているのに。
Filesystem Size Used Avail Use% Mounted on
/dev/sda2
3.9G 2.5G 1.3G 67% /
/dev/sda1 49M 44M 2.7M 95% /boot
/dev/sda5 14G 231M 13G 2% /home
tmpfs 498M 80K 498M 1% /dev/shm
どうやら、「単一ファイルに保存」すると見えなくなるらしい。lvdisplayではちゃんと100GB見えているのに。どこに4GB制限があるのかググったがあまり有用な解は得られなかった。
仕方ないので、「複数ファイルに保存」にして再構築。 vmware-vdiskmanager結局いらなかった…??
* 再構築(LVM作成ほか)
「ハードウェア」→「追加」から新規のSCSI接続のディスク(100GB)ファイルを作成し、LVMとして構築する。「複数ファイルに保存」を選択すると、Windowsのエクスプローラからは<ディスクファイル名>-s0xx (xxは01から51)と見えた。
後でリサイズできると便利なので、ひとまずLVMで50GB程度の領域を作ってその上にファイルシステムを乗せることにする。
以下は、構築前のマウント状況。ルート領域はちゃんと20GB程度見えている。。。
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.4G 15G 15% /
tmpfs 495M 84K 495M 1% /dev/shm
/dev/sda1 291M 33M 243M 12% /boot
100GBの新規ディスクは/dev/sdbとして認識されていた。
# ls -l /dev/sdb
brw-rw----. 1 root disk 8, 16 Jul 27 09:56 sdb
以下でファイルシステムを作っていく。
# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):
Using default value 13054
Command (m for help): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd5fcc0b7
Device Boot Start End Blocks Id System
/dev/sdb1 1 13054 104856223+ 83 Linux
# ls -l /dev | grep sdb
brw-rw----. 1 root disk 8, 16 Jul 27 10:02 sdb
brw-rw----. 1 root disk 8, 17 Jul 27 10:02 sdb1
概ねOKか。次に物理ボリュームを作成。
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
次に、一つの物理ボリュームからなるボリュームグループを作成。
# vgcreate VolGroup00 /dev/sdb1
Volume group "VolGroup00" successfully created
最後にLVMを作成。サイズは50GBとした。
# lvcreate -L 50G -n LogVol00 VolGroup00
Logical volume "LogVol00" created
次に、ファイルシステムを作成。
# mkfs -t ext4 /dev/VolGroup00/LogVol00
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
次にマウントしてみる。
#mount -t ext4 /dev/VolGroup00/LogVol00 /mnt/tmp/
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.5G 15G 15% /
tmpfs 495M 228K 495M 1% /dev/shm
/dev/sda1 291M 33M 243M 12% /boot
/dev/mapper/VolGroup00-LogVol00
50G 180M 47G 1% /mnt/tmp
ちゃんと見えていて安心。次に以外の必要なファイルをすべてコピーする。
# cp -ar /{bin,boot,etc,home,lib,lib64,media,opt,root,sbin,tmp,usr,var} /mnt/tmp
/etc/fstabの設定
# cat /etc/fstab
#UUID=69c71470-4a68-4025-966a-b8f3d4a3b9eb / ext4 defaults 1 1
/dev/mapper/VolGroup00-LogVol00 / ext4 defaults 1 1
#UUID=1ae03bfe-24f1-44c0-8965-7bf826dc18a5 /boot ext4 defaults 1 2
UUID=7d385f93-aeb8-4773-86c9-51cb4aacfcde swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
既存の自動マウント設定を消去して新しいLVM設定を投入して再起動。ちと怖いが無事起動した。
[参考]
・CentOS 6 で作るネットワークサーバ構築ガイド
http://www.amazon.co.jp/%E6%9C%AC/dp/4798032484
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/740bigvmdisk.html
・VMWareでハードディスク増設
http://server-setting.info/centos/vmware_disk.html
trac on Ubuntu 10.04
tracの構築
自宅のubuntu10.04にtracを構築した時のメモ
導入サーバのバージョンなど
- apache 2.2.14
- trac 0.11
- subversion 1.6.6
- sqlite
手順
1.インストール
適当...
# sudo apt-get install apache2
# sudo apt-get install libapache2-mod-python
# sudo apt-get install trac
# sudo apt-get install subversion
2. svn設定
# mkdir /var/svn
# svnadmin create /var/svn/repo
3.trac初期設定
tracフォルダを/var/tracに (後で後悔した。/var/trac/projects/mytracにすればよかった。)
# trac-admin /var/trac initenv
svnは該当ディレクトリに。DBはsqliteのままでいいや。
フォルダの権限を変更
# chown -R www-data:www-data /var/trac
4.apache設定
sites-available/tracを作成して以下を記入
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main
PythonOption TracEnv /var/trac
PythonOption TracUriRoot /trac
SetEnv PYTHON_EGG_CACHE /tmp
</Location>
<Location "/trac/login">
AuthType Digest
AuthName "trac"
AuthUserFile /var/trac/.htpasswd
Require valid-user
</location>
tracを使うように変更
# a2ensite trac
パスワードはhtdigest -cコマンドで作る。アクセスは特に設定しないことにする。
その後apache再起動。
5. webから参照
めでたしめでたし。
次はsvn連携とかやるか。
HDFS-2427
webhdfs mkdirs api call creates path with 777 permission, we should default it to 755
webHDFSのAPIで新しくディレクトリを作った場合の権限が777がデフォルトであるが、デフォルトは755であるべきである。という話。
パッチでは以下の多数のパラメータ値を変更している。
AccessTimeParam
LengthParam
ModificationTimeParam
OffsetParam
BufferSizeParam
BlockSizeParam
PermissionParam
他にも、パラメータの範囲チェッカーの追加、Long->Stringパーザへのtry文の追加、
などパラメータに関する小さな変更を加えている。
参考:https://issues.apache.org/jira/browse/HDFS-2427
hadoop-7740
security audit logger is not on by default, fix the log4j properties to enable the logger
security audit loggerではなくlog4jを使おうという話。
パッチではhadoop起動コマンド、hadoop-env.sh、log4j.propertiesなどの記述を変更している。以下、hadoop-env.shの例。
-HADOOP_JOBTRACKER_OPTS="-Dsecurity.audit.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA $HADOOP_JOBTRACKER_OPTS" +HADOOP_JOBTRACKER_OPTS="-Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA $HADOOP_JOBTRACKER_OPTS"
参考:https://issues.apache.org/jira/browse/HADOOP-7740