SlideShare a Scribd company logo
2014/11/6 
安達仁
自己紹介 
 氏名 
 安達仁(あだちじん) 
 所属 
 某SIer 
 いわゆるITゼネコン。Excelで仕様書w 
 以前は長野の工場で働いてました。仕事は「組み込みからサーバまで」 
 OSSのサポートサービス、構築・運用支援、教育 
 実質Hadoop部隊 
 その片隅で働いてます。(^^ゞ 
 好きな言語 
 C系 
 Java、C/C++、C# 
 Objective-Cは挫折しました... 
 Javaをdisって通ぶる風潮はキライ
HadoopとWindows 
 Hadoopと言えば 
 Linuxオンリー(*1) 
- Linuxのコマンドを直たたきする 
public class ProcessTree { 
private static boolean isSetsidSupported() { 
ShellCommandExecutor shexec = null; 
boolean setsidSupported = true; 
try { 
String[] args = {"setsid", "bash", "-c", "echo $$"}; 
shexec = new ShellCommandExecutor(args); 
shexec.execute(); 
} catch (IOException ioe) { 
: 
} 
} 
- パスの区切り文字の一貫性の無さ 
- File.separatorを使ったり、"/"を使ったり 
- JNIを使用する 
- soファイルは同梱されるが、dllは同梱されない 
- Cygwinでスタンドアロンモードは動くが... 
 WindowsでHadoopは「茨の道」 
ここ 
*1 http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_req_supported_versions.html
M$! くぁwせdrftgyふじこlp 
 Windows用のディストリビューション 
 Hortonworks Data Platform(HDP) 
- HortonworksのHadoopディストリビューション 
- Linux版と(ほぼ)同時にWindows版をリリース 
- 現在、HDP 2.2 Preview が試せます(*1) 
 HDInsight 
- MicrosoftのHadoopディストリビューション 
- 元々は「Hadoop on Azure」と呼ばれていた 
- HDPを同梱しているが、WebUIやODBCドライバで若干の味付けが異なる 
- 2年ほど前はオンプレをサポートすると言っていたが、Azureにシフト 
- オンプレは疑似分散(エミュレータと呼ばれる)のみ(*2) 
HDP 2.1 をWindows 8 にインストールしてみました 
*1 http://jp.hortonworks.com/hdp/downloads/ 
*2 http://azure.microsoft.com/ja-jp/documentation/articles/hdinsight-get-started-emulator/
動作環境 
 OS(*1) 
 Windows Server 2008 R2 
 Windows Server 2012 
- いずれも64bit 
 Windows 7/8は保証外 
 ソフトウェア(*2) 
 Python 2.7.x 
- インストールでのみ使われる 
 Java JDK 1.7.x 
 その他 
本来の動作保証 
今回の検証はこ 
ちら 
- VC++ 2010、.NET 4.0 のランタイム 
- HiveのメタストアにSQL Serverを使える 
*1 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-supported-os.html 
*2 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-software-req.html
インストール(1/3) 
 依存関係のソフトウェア 
 みんな大好きWindows8 
 Java、Pythonをインストールしてパスを通す 
 HDPのインストール 
 管理者権限でコマンドプロンプトを開く 
- Administratorユーザーを有効にしておくこと 
 以下のコマンドを実行 
> runas /user:administrator "cmd /C msiexec /lv C:hdplog.txt /i  
C:PATHTOhdp-2.1.5.0.winpkg.msi MSIUSEREALADMINDETECTION=1" 
*1 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-chap2-singlenode.html
インストール(2/3) 
 HDPのインストール(続き) 
 (SIerが作った業務アプリのような)ひどいインストーラが起動する 
- 画面に収まっていない、文字が重なっている、タブオーダーがめちゃくちゃ、すべての設定を無理やり集約 
その他の設定 
Hiveの設定Oozieの設定 
HAの設定 
① 
①Hadoopの設定 
- パスワード 
- 他はデフォルトのまま 
②Hive/Oozieの設定 
- 不要でも設定する 
基本設定 
②
インストール(3/3) 
 HDPのインストール(続き) 
 「Hadoopコマンドライン」のショートカットが作られる(はずだが、作られない) 
- Start-HadoopAdminShell.cmd をhadoopユーザーで起動 
- 以降のコマンドはhadoopユーザーで実行すること 
> runas /user:hadoop "C:hdphadoop-2.4.0.2.1.5.0-2060binStart-HadoopAdminShell.cmd" 
 HDFSをフォーマットする 
> hadoop namenode -format 
 Hadoop関連のサービスを起動する 
> cd C:hdp 
> start_local_hdp_services 
 HDFSにホームディレクトリを作成する 
> hadoop fs -mkdir -p /user/hadoop
サンプルの実行 
 WordCountの実行 
 「Hadoopコマンドライン」を起動 
- HDFSに入力ディレクトリを作成 
- ローカルから入力ディレクトリにファイルをコピー 
- WordCountを実行 
> hadoop fs -mkdir input 
> hadoop fs -put C:hdphadoop-2.4.0.2.1.5.0-2060etchadoop*.xml input 
> hadoop jar C:hdphadoop-2.4.0.2.1.5.0-2060sharehadoopmapreducehadoop-mapreduce-examples- 
2.4.0.2.1.5.0-2060.jar wordcount input output 
14/11/04 19:12:21 INFO client.RMProxy: Connecting to ResourceManager at vm-win8/ 
169.254.80.8 
0:8032 
: 
File Input Format Counters 
Bytes Read=460773 
File Output Format Counters 
Bytes Written=145193 
> hadoop fs -cat output/* | more 
"mapreduce_shuffle" 1 
: 
YARN! 
【注意】hadoopユーザーで実行しないと「Exception from container-launch 
...」が発生する(*1) 
*1 http://jp.hortonworks.com/community/forums/topic/how-to-set-execute-permissions-on-windows/ 
(バックスラッシュ)も問 
題なし
[おまけ]Hive on Tezのインストール(1/3) 
 HDPのインストーラを起動する 
 インストーラで「変更」はできず、再インストールが必要 
 事前にSQL Serverなど周辺環境を揃えておくこと(後述) 
Hiveの設定 
① 
①Hive/Oozieの設定 
- DB名 
- ユーザー名 
- パスワード 
- SQLServerを使用する(画面から 
見切れている) 
- Oozieは不要でも設定する 
②Tezを利用する 
- 「Use Tez in Hive」にチェックを入 
れる 
基本設定 
② 
Oozieの設定
[おまけ]Hive on Tezのインストール(2/3) 
 メタストア用DBの準備 
 SQL Server (Express) のインストール 
- 構成マネージャーでTCP/IPの接続を許可、TCPポート:1433を設定する(*1) 
 DB、ユーザーの作成 
- インストーラで設定するDB名、ユーザー名で作成する 
 テーブルの作成 
- C:hdphive-0.13.0.2.1.5.0-2060scriptsmetastoreupgrademssqlhive-schema- 
0.13.0.mssql.sql をSQL Server Management Studio で流す 
 SQL ServerのJDBCドライバ 
- sqljdbc4.jar をC:hdphive-0.13.0.2.1.5.0-2060lib に配置する 
*1 http://symfoware.blog68.fc2.com/blog-entry-920.html
[おまけ]Hive on Tezのインストール(3/3) 
 ファイアウォールの設定 
 無効にできる環境であれば、無効にする 
 SQL Serverのポート 
- TCP:1433 
- UDP:1434(管理用) 
 メタストアサーバのポート 
- TCP:9083 
 HiveおよびTezの環境を用意する 
 Hive用のディレクトリを作成する 
> hadoop fs -mkdir -p /user/hive/warehouse 
 Tezのライブラリを配置する 
> hadoop fs -put C:hdptez-0.4.0.2.1.5.0-2060* /apps/tez
[おまけ]Hive on Tezの実行(1/2) 
 Hiveコマンドで実験 
 適当なtsvファイルを用意する 
> type c:tempt_user.tsv 
1 aaa 
2 bbb 
3 ccc 
 Hiveコマンドを起動 
> c:hdphive-0.13.0.2.1.5.0-2060binhive 
 テーブルを作成してデータをロード 
hive> CREATE TABLE t_user ( 
id int, 
name string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY 't' 
(バックスラッシュ)も問 
LINES TERMINATED BY 'n' 
題なし 
; 
hive> LOAD DATA LOCAL INPATH 'C:Tempt_user.tsv' OVERWRITE INTO TABLE t_user; 
: 
Loading data to table t_user
[おまけ]Hive on Tezの実行(2/2) 
 Hiveコマンドで実験(つづき) 
- クエリを実行 
hive> select * from t_user order by id; 
Query ID = hadoop_20141105214242_ce859abf-10b5-47fd-8304-9765b5f08694 
Total jobs = 1 
Tezで実行されている 
Launching Job 1 out of 1 
Tez session was closed. Reopening... 
Session re-established. 
: 
Status: Running (application id: application_1415164941328_0005) 
: 
Map 1: -/- Reducer 2: 0/1 
Map 1: 0/1 Reducer 2: 0/1 
: 
Status: Finished successfully 
OK 
1 aaa 
2 bbb 
3 ccc
おしまい

More Related Content

What's hot

コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
 
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみたElastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
Yoichi Toyota
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
oranie Narut
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
akirahiguchi
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
do_aki
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
 

What's hot (20)

20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみた
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
 
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみたElastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニング
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 

Viewers also liked

Web時代のデスクトップGIS
Web時代のデスクトップGISWeb時代のデスクトップGIS
Web時代のデスクトップGIS
IWASAKI NOBUSUKE
 

Viewers also liked (16)

Web時代のデスクトップGIS
Web時代のデスクトップGISWeb時代のデスクトップGIS
Web時代のデスクトップGIS
 
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
 
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたHive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
 
地理空間オープンデータの可視化をオープンソースGISで簡単に!
地理空間オープンデータの可視化をオープンソースGISで簡単に!地理空間オープンデータの可視化をオープンソースGISで簡単に!
地理空間オープンデータの可視化をオープンソースGISで簡単に!
 
リクルート式Hadoopの使い方
リクルート式Hadoopの使い方リクルート式Hadoopの使い方
リクルート式Hadoopの使い方
 
リクルートにおけるhadoop活用事例+α
リクルートにおけるhadoop活用事例+αリクルートにおけるhadoop活用事例+α
リクルートにおけるhadoop活用事例+α
 
Yahoo! JAPANを支えるビッグデータプラットフォーム技術
Yahoo! JAPANを支えるビッグデータプラットフォーム技術Yahoo! JAPANを支えるビッグデータプラットフォーム技術
Yahoo! JAPANを支えるビッグデータプラットフォーム技術
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
 
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
 
LT(自由)
LT(自由)LT(自由)
LT(自由)
 
リクルートにおけるデータのインフラ化への取組
リクルートにおけるデータのインフラ化への取組リクルートにおけるデータのインフラ化への取組
リクルートにおけるデータのインフラ化への取組
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
 

Similar to HDPをWindowsで動かしてみた

Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Kazumi Hirose
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 

Similar to HDPをWindowsで動かしてみた (20)

PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management Server
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
HAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたHAWQをCDHで動かしてみた
HAWQをCDHで動かしてみた
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
WindowsでMySQL入門
WindowsでMySQL入門WindowsでMySQL入門
WindowsでMySQL入門
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 

HDPをWindowsで動かしてみた

  • 2. 自己紹介  氏名  安達仁(あだちじん)  所属  某SIer  いわゆるITゼネコン。Excelで仕様書w  以前は長野の工場で働いてました。仕事は「組み込みからサーバまで」  OSSのサポートサービス、構築・運用支援、教育  実質Hadoop部隊  その片隅で働いてます。(^^ゞ  好きな言語  C系  Java、C/C++、C#  Objective-Cは挫折しました...  Javaをdisって通ぶる風潮はキライ
  • 3. HadoopとWindows  Hadoopと言えば  Linuxオンリー(*1) - Linuxのコマンドを直たたきする public class ProcessTree { private static boolean isSetsidSupported() { ShellCommandExecutor shexec = null; boolean setsidSupported = true; try { String[] args = {"setsid", "bash", "-c", "echo $$"}; shexec = new ShellCommandExecutor(args); shexec.execute(); } catch (IOException ioe) { : } } - パスの区切り文字の一貫性の無さ - File.separatorを使ったり、"/"を使ったり - JNIを使用する - soファイルは同梱されるが、dllは同梱されない - Cygwinでスタンドアロンモードは動くが...  WindowsでHadoopは「茨の道」 ここ *1 http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_req_supported_versions.html
  • 4. M$! くぁwせdrftgyふじこlp  Windows用のディストリビューション  Hortonworks Data Platform(HDP) - HortonworksのHadoopディストリビューション - Linux版と(ほぼ)同時にWindows版をリリース - 現在、HDP 2.2 Preview が試せます(*1)  HDInsight - MicrosoftのHadoopディストリビューション - 元々は「Hadoop on Azure」と呼ばれていた - HDPを同梱しているが、WebUIやODBCドライバで若干の味付けが異なる - 2年ほど前はオンプレをサポートすると言っていたが、Azureにシフト - オンプレは疑似分散(エミュレータと呼ばれる)のみ(*2) HDP 2.1 をWindows 8 にインストールしてみました *1 http://jp.hortonworks.com/hdp/downloads/ *2 http://azure.microsoft.com/ja-jp/documentation/articles/hdinsight-get-started-emulator/
  • 5. 動作環境  OS(*1)  Windows Server 2008 R2  Windows Server 2012 - いずれも64bit  Windows 7/8は保証外  ソフトウェア(*2)  Python 2.7.x - インストールでのみ使われる  Java JDK 1.7.x  その他 本来の動作保証 今回の検証はこ ちら - VC++ 2010、.NET 4.0 のランタイム - HiveのメタストアにSQL Serverを使える *1 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-supported-os.html *2 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-software-req.html
  • 6. インストール(1/3)  依存関係のソフトウェア  みんな大好きWindows8  Java、Pythonをインストールしてパスを通す  HDPのインストール  管理者権限でコマンドプロンプトを開く - Administratorユーザーを有効にしておくこと  以下のコマンドを実行 > runas /user:administrator "cmd /C msiexec /lv C:hdplog.txt /i C:PATHTOhdp-2.1.5.0.winpkg.msi MSIUSEREALADMINDETECTION=1" *1 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1-Win-latest/bk_installing_hdp_for_windows/content/win-chap2-singlenode.html
  • 7. インストール(2/3)  HDPのインストール(続き)  (SIerが作った業務アプリのような)ひどいインストーラが起動する - 画面に収まっていない、文字が重なっている、タブオーダーがめちゃくちゃ、すべての設定を無理やり集約 その他の設定 Hiveの設定Oozieの設定 HAの設定 ① ①Hadoopの設定 - パスワード - 他はデフォルトのまま ②Hive/Oozieの設定 - 不要でも設定する 基本設定 ②
  • 8. インストール(3/3)  HDPのインストール(続き)  「Hadoopコマンドライン」のショートカットが作られる(はずだが、作られない) - Start-HadoopAdminShell.cmd をhadoopユーザーで起動 - 以降のコマンドはhadoopユーザーで実行すること > runas /user:hadoop "C:hdphadoop-2.4.0.2.1.5.0-2060binStart-HadoopAdminShell.cmd"  HDFSをフォーマットする > hadoop namenode -format  Hadoop関連のサービスを起動する > cd C:hdp > start_local_hdp_services  HDFSにホームディレクトリを作成する > hadoop fs -mkdir -p /user/hadoop
  • 9. サンプルの実行  WordCountの実行  「Hadoopコマンドライン」を起動 - HDFSに入力ディレクトリを作成 - ローカルから入力ディレクトリにファイルをコピー - WordCountを実行 > hadoop fs -mkdir input > hadoop fs -put C:hdphadoop-2.4.0.2.1.5.0-2060etchadoop*.xml input > hadoop jar C:hdphadoop-2.4.0.2.1.5.0-2060sharehadoopmapreducehadoop-mapreduce-examples- 2.4.0.2.1.5.0-2060.jar wordcount input output 14/11/04 19:12:21 INFO client.RMProxy: Connecting to ResourceManager at vm-win8/ 169.254.80.8 0:8032 : File Input Format Counters Bytes Read=460773 File Output Format Counters Bytes Written=145193 > hadoop fs -cat output/* | more "mapreduce_shuffle" 1 : YARN! 【注意】hadoopユーザーで実行しないと「Exception from container-launch ...」が発生する(*1) *1 http://jp.hortonworks.com/community/forums/topic/how-to-set-execute-permissions-on-windows/ (バックスラッシュ)も問 題なし
  • 10. [おまけ]Hive on Tezのインストール(1/3)  HDPのインストーラを起動する  インストーラで「変更」はできず、再インストールが必要  事前にSQL Serverなど周辺環境を揃えておくこと(後述) Hiveの設定 ① ①Hive/Oozieの設定 - DB名 - ユーザー名 - パスワード - SQLServerを使用する(画面から 見切れている) - Oozieは不要でも設定する ②Tezを利用する - 「Use Tez in Hive」にチェックを入 れる 基本設定 ② Oozieの設定
  • 11. [おまけ]Hive on Tezのインストール(2/3)  メタストア用DBの準備  SQL Server (Express) のインストール - 構成マネージャーでTCP/IPの接続を許可、TCPポート:1433を設定する(*1)  DB、ユーザーの作成 - インストーラで設定するDB名、ユーザー名で作成する  テーブルの作成 - C:hdphive-0.13.0.2.1.5.0-2060scriptsmetastoreupgrademssqlhive-schema- 0.13.0.mssql.sql をSQL Server Management Studio で流す  SQL ServerのJDBCドライバ - sqljdbc4.jar をC:hdphive-0.13.0.2.1.5.0-2060lib に配置する *1 http://symfoware.blog68.fc2.com/blog-entry-920.html
  • 12. [おまけ]Hive on Tezのインストール(3/3)  ファイアウォールの設定  無効にできる環境であれば、無効にする  SQL Serverのポート - TCP:1433 - UDP:1434(管理用)  メタストアサーバのポート - TCP:9083  HiveおよびTezの環境を用意する  Hive用のディレクトリを作成する > hadoop fs -mkdir -p /user/hive/warehouse  Tezのライブラリを配置する > hadoop fs -put C:hdptez-0.4.0.2.1.5.0-2060* /apps/tez
  • 13. [おまけ]Hive on Tezの実行(1/2)  Hiveコマンドで実験  適当なtsvファイルを用意する > type c:tempt_user.tsv 1 aaa 2 bbb 3 ccc  Hiveコマンドを起動 > c:hdphive-0.13.0.2.1.5.0-2060binhive  テーブルを作成してデータをロード hive> CREATE TABLE t_user ( id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' (バックスラッシュ)も問 LINES TERMINATED BY 'n' 題なし ; hive> LOAD DATA LOCAL INPATH 'C:Tempt_user.tsv' OVERWRITE INTO TABLE t_user; : Loading data to table t_user
  • 14. [おまけ]Hive on Tezの実行(2/2)  Hiveコマンドで実験(つづき) - クエリを実行 hive> select * from t_user order by id; Query ID = hadoop_20141105214242_ce859abf-10b5-47fd-8304-9765b5f08694 Total jobs = 1 Tezで実行されている Launching Job 1 out of 1 Tez session was closed. Reopening... Session re-established. : Status: Running (application id: application_1415164941328_0005) : Map 1: -/- Reducer 2: 0/1 Map 1: 0/1 Reducer 2: 0/1 : Status: Finished successfully OK 1 aaa 2 bbb 3 ccc