Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
hadoop
#hadoop
1
1: hadoop 2
2
Apache Hadoop 2
Apache Hadoop 2
2
2
Examples 2
Linux 2
ubuntuHadoop 5
Hadoop 5
5
SSH 6
sudoerhadoop 8
IPv6 8
Hadoop 8
HadoopHDFS 9
2: Hadoop 12
12
Examples 12
Hadoop v1 12
1. Hadoop 12
2. HDFS 12
h11 12
3. 12
12
h12 12
4. 12
12
h13 12
5. DFS 12
h14 13
6. 13
h15 13
7. "hadoop" 13
/ user / training 13
ID 13
/ user / trainingHDFS 13
h16 13
8. 13
HDFS "data" 13
14
h17 14
9.HDFS 14
h18 14
10. "retail" 14
/ user / training 14
h19 14
11. / user / trainingHDFS 14
14
14
14
14
h110 15
12.HDFS 15
h111 15
13.retailcustomers 15
h112 15
14.HDFS 15
h113 15
15. "retail" 15
h114 15
16. 15
h115 15
17. 16
HDFS 16
h116 16
18. hadoop 16
h117 16
19.purchases.txt 16
HDFShadoop "/ home / training /" 16
h118 16
20.purchases.txt 16
hadoop 16
h119 16
21. HDFS "hadoop"purchases.txt 17
"data" 17
h120 17
22. cpHDFS 17
h121 17
23. '-get' '-copyToLocal' 17
h122 17
24. "purchases.txt"stdout 17
h123 17
25.HDFS666 17
'-chmod' 18
h124 18
26. 18
'-chown' 18
h125 18
27. 18
'-chgrp' 18
h126 18
28. 18
h127 18
29.3 18
'-setrep' 18
h128 19
30. 19
'-distcp' 19
-overwrite 19
-update 19
h129 19
31. 19
h130 19
32.hadoop 19
h131 19
33. hdfs 19
h132 20
34. 20
h133 20
Hadoop v2 20
3: Hadoop 24
Examples 24
hadoop hdfs 24
hadoop fs -mkdir 24
24
24
hadoop fs -put 24
24
24
hadoop fs -copyFromLocal 24
24
25
hadoop fs -moveFromLocal 25
25
25
25
25
4: HDFS 26
26
Examples 26
HDFS - Hadoop 26
HDFS 26
HDFS 27
5: MapReduce 29
29
29
Examples 29
JavaPython 29
6: eclipseHadoop MR Java 33
33
33
Examples 33
33
7: 35
35
Examples 35
35
35
Ubuntu 36
38
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: hadoop
It is an unofficial and free hadoop ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official hadoop.
The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/ja/home 1
1: hadoopをいめる
Apache Hadoopとはですか
Apache Hadoopソフトウェアライブラリは、なプログラミングモデルをしてのコンピュータクラスタにわたってなデータセットをするためのフレームワークです。のサーバーからのマシンにスケールアップされ、それぞれがローカルのとストレージをするようにされています。ライブラリはをするためにハードウェアにるのではなく、アプリケーションでをしてするようにされているため、のしやすいコンピュータクラスタでサービスをします。
Apache Hadoopには、のモジュールがまれています。
Hadoop Common のHadoopモジュールをサポートするなユーティリティ。•
HadoopファイルシステムHDFS アプリケーションデータへのハイスループットアクセスをするファイルシステム。
•
Hadoop YARN ジョブスケジューリングとクラスタリソースのためのフレームワーク。•
Hadoop MapReduce データセットののYARNベースのシステム。•
Apache Hadoop
バージョン
バージョン リリースノート
3.0.0-alpha1 2016-08-30
2.7.3 ここをクリック - 2.7.3 2016-01-25
2.6.4 ここをクリック - 2.6.4 2016-02-11
2.7.2 ここをクリック - 2.7.2 2016-01-25
2.6.3 ここをクリック - 2.6.3 2015-12-17
2.6.2 ここをクリック - 2.6.2 2015-10-28
2.7.1 ここをクリック - 2.7.1 2015-07-06
Examples
Linuxでのインストールまたはセットアップ
https://riptutorial.com/ja/home 2
クラスタセットアップ
JDK1.7をインストールし、JAVA_HOMEをします。•
しいユーザーを "hadoop"としてします。
useradd hadoop
•
のアカウントにパスワードなしのSSHログインをセットアップする
su - hadoop ssh-keygen << Press ENTER for all prompts >> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
•
ssh localhostしてする•
/etc/sysctl.confをのようにして、IPV6をにします。
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
•
cat /proc/sys/net/ipv6/conf/all/disable_ipv6をしてします。
1をします
•
インストールと
wgetコマンドをしてApacheアーカイブからなバージョンのHadoopをダウンロードします。
cd /opt/hadoop/ wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gz tar -xvf hadoop-2.x.x.gz mv hadoop-2.x.x.gz hadoop (or) ln -s hadoop-2.x.x.gz hadoop chown -R hadoop:hadoop hadoop
•
のをつシェルにづいて.bashrc / .kshrcをします。
export HADOOP_PREFIX=/opt/hadoop/hadoop export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop export JAVA_HOME=/java/home/path export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin
•
$HADOOP_HOME/etc/hadoopディレクトリにのファイルをします
core-site.xml○
•
https://riptutorial.com/ja/home 3
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:8020</value> </property> </configuration>
mapred-site.xml
そのテンプレートからmapred-site.xmlをする
cp mapred-site.xml.template mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
○
yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
○
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/hadoop/hdfs/datanode</value> </property> </configuration>
○
hadoopデータをするフォルダをする
mkdir -p /home/hadoop/hdfs
フォーマットNameNodeディレクトリをクリーンアップし、なメタファイルをする•
https://riptutorial.com/ja/home 4
hdfs namenode -format
すべてのサービスをする
start-dfs.sh && start-yarn.sh mr-jobhistory-server.sh start historyserver
•
そのわりに、start-all.shをしてください。
のJavaプロセスをすべてする
jps
•
Namenode Web Interface http// localhost50070 /•
リソースマネージャのWebインターフェイス http// localhost8088 /•
デーモンサービスをするには
stop-dfs.sh && stop-yarn.sh mr-jobhistory-daemon.sh stop historyserver
•
そのわりにstop -all.shをしてください。
ubuntuへのHadoopのインストール
Hadoopユーザーのsudo addgroup hadoop
ユーザーをするsudo adduser --ingroup hadoop hduser001
https://riptutorial.com/ja/home 5
SSHのsu -hduser001 ssh-keygen -t rsa -P "" cat .ssh/id rsa.pub >> .ssh/authorized_keys
されたキーをきんでいるにエラーがした[ bash.ssh / authorized_keysそのようなファイルまたはディレクトリはありません ]。 ここをしてください 。
https://riptutorial.com/ja/home 6
https://riptutorial.com/ja/home 7
sudoerのリストにhadoopユーザをするsudo adduser hduser001 sudo
IPv6をにする
Hadoopのインストール
https://riptutorial.com/ja/home 8
sudo add-apt-repository ppa:hadoop-ubuntu/stable sudo apt-get install hadoop
HadoopのとHDFS
Hadoopは、コンピューティングにおけるデータセットのストレージとなのためのオープンソースのソフトウェアフレームワークです。 これはApache Software Foundationがしています。 のサーバーからのマシンにスケールアップされ、それぞれがローカルのとストレー
https://riptutorial.com/ja/home 9
ジをするようにされています。
Hadoopは2005にDoug CuttingとMike Cafarellaによってされました。•
、Yahoo!でいていた、ののおもちゃののにそれをづけました。•もともとは、エンジンプロジェクトのをサポートするためにされました。•
hadoopのモジュール
HadoopファイルシステムHDFSアプリケーションデータへのハイスループットアクセスをするファイルシステム。 Hadoop MapReduceコンピューティングクラスタでなデータセットをするためのソフトウェアフレームワーク。
Hadoopファイルシステムの
フォールトトレラントです。 いスループット。 きなデータセットをつアプリケーションにしています。 コモディティハードウェアからできます。
ネームノードとデータアノード
マスター/スレーブアーキテクチャ HDFSクラスタは、ファイルシステムのネームスペースをし、クライアントによるファイルへのアクセスをするマスターサーバーであるのネームノードでされています。 DataNodeは、それらがされているノードにされたストレージをします。 HDFSはファイルシステムのをし、ユーザデータをファイルにすることができます。 ファイルは1つのブロックにされ、ブロックのセットはDataNodeにされます。 DataNodes
ネームノードからのにづいて、みり、きみ、ブロックの、、をいます。
https://riptutorial.com/ja/home 10
HDFSは、なクラスタのマシンでにきなファイルをするようにされています。 ファイルはのブロックです。 のファイルをくファイルのブロックはすべてじサイズです。 ブロックはフォールトトレランスのためにされます。 ネームノードは、クラスタのDataNodeからハートビートとBlockReportをします。 BlockReportには、データノードのすべてのブロックがまれます。
Hadoopシェルコマンド
されるなコマンド -
ls hadoop fs -lsパス ディレクトリ/ファイルのパス。 Cat hadoop fs -cat PathOfFileToView
hadoopシェルコマンドのリンク - https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html
オンラインでhadoopをいめるをむ https://riptutorial.com/ja/hadoop/topic/926/hadoopをいめる
https://riptutorial.com/ja/home 11
2: HadoopコマンドHadoop v1コマンド hadoop fs -<command>•
Hadoop v2コマンド hdfs dfs -<command>•
Examples
Hadoop v1コマンド
1. Hadoopをするhadoop version
2. HDFSのルートディレクトリのをする
hadoop fs -ls /
3.されたスペースのをし、
マウントされているファイルシステムで
hadoop fs -df hdfs:/
4.ディレクトリ、ファイル、およびバイトをえます。
されたファイルパターンにするパス
hadoop fs -count hdfs:/
https://riptutorial.com/ja/home 12
5. DFSファイルシステムユーティリティをする
hadoop fsck – /
6.クラスタバランシングユーティリティをします。
hadoop balancer
7.に "hadoop"というのしいディレクトリをします。
/ user / trainingディレクトリにします。あなたは
「トレーニング」ユーザーIDでログインしていますが、
/ user / trainingはHDFSのホームディレクトリです。
hadoop fs -mkdir /user/training/hadoop
8.ローカルディレクトリからサンプルテキストファイルをします。
https://riptutorial.com/ja/home 13
HDFSでしたしいディレクトリに "data"というをけます
のステップでは
hadoop fs -put data/sample.txt /user/training/hadoop
9.このしいディレクトリのをHDFSにします。
hadoop fs -ls /user/training/hadoop
10. "retail"というローカルディレクトリを
/ user / trainingディレクトリにします。
hadoop fs -put data/retail /user/training/hadoop
11. / user / trainingはHDFSのホームディレクトリであるため、
パスをたないコマンドはすべて
そのディレクトリになものとしてされます。の
コマンドはあなたのホームディレクトリをします
https://riptutorial.com/ja/home 14
ちょうどそこにしたアイテムがされます。
hadoop fs -ls
12.このディレクトリがHDFSでどのくらいのスペースをめるかをします。
hadoop fs -du -s -h hadoop/retail
13.「retail」ディレクトリからファイル「customers」をします。
hadoop fs -rm hadoop/retail/customers
14.このファイルがHDFSにしないことをします。
hadoop fs -ls hadoop/retail/customers
15.ワイルドカードをして、 "retail"ディレクトリからすべてのファイルをします。
hadoop fs -rm hadoop/retail/*
16.ゴミをにするには
https://riptutorial.com/ja/home 15
hadoop fs -expunge
17.に、ディレクトリをすべてします。
そのコンテンツのHDFSでの。
hadoop fs -rm -r hadoop/retail
18. hadoopディレクトリをする
hadoop fs -ls hadoop
19.ローカルディレクトリからpurchases.txtファイルをします。
HDFSでしたhadoopディレクトリに "/ home / training /"というをけました
hadoop fs -copyFromLocal /home/training/purchases.txt hadoop/
20.テキストファイルpurchases.txtのをするには
これはあなたのhadoopディレクトリにあります。
https://riptutorial.com/ja/home 16
hadoop fs -cat hadoop/purchases.txt
21. HDFSディレクトリにある "hadoop"ディレクトリのpurchases.txtファイルをします。
あなたのローカルディレクトリにするディレクトリ "data"
hadoop fs -copyToLocal hadoop/purchases.txt /home/training/data
22. cpは、HDFSにするディレクトリでファイルをコピーするためにされます。
hadoop fs -cp /user/training/*.txt /user/training/hadoop
23. '-get'コマンドを '-copyToLocal'コマンドとにすることができます。
hadoop fs -get hadoop/sample.txt /home/training/
24.ファイル "purchases.txt"ののキロバイトをstdoutにします。
hadoop fs -tail hadoop/purchases.txt
25.デフォルトのファイルパーミッションは
https://riptutorial.com/ja/home 17
HDFSでは666です
ファイルのパーミッションをするには、 '-chmod'コマンドをします。
hadoop fs -ls hadoop/purchases.txt sudo -u hdfs hadoop fs -chmod 600 hadoop/purchases.txt
26.とグループのデフォルトは、トレーニング、トレーニング
とグループをにするには '-chown'をします
hadoop fs -ls hadoop/purchases.txt sudo -u hdfs hadoop fs -chown root:root hadoop/purchases.txt
27.グループのデフォルトはトレーニングです
グループをするには '-chgrp'コマンドをします
hadoop fs -ls hadoop/purchases.txt sudo -u hdfs hadoop fs -chgrp training hadoop/purchases.txt
28.ディレクトリをあるからのにする
hadoop fs -mv hadoop apache_hadoop
29.ファイルへのデフォルトのは3です。https://riptutorial.com/ja/home 18
ファイルのをするには、 '-setrep'コマンドをします
hadoop fs -setrep -w 2 apache_hadoop/sample.txt
30.クラスタのあるノードからのノードにディレクトリをコピーする
'-distcp'コマンドをして、
のファイルをきする-overwriteオプション
のディレクトリをする-updateコマンド
hadoop fs -distcp hdfs://namenodeA/apache_hadoop hdfs://namenodeB/hadoop
31.ノードをセーフモードかられるようにするコマンド
hadoop fs -expunge sudo -u hdfs hdfs dfsadmin -safemode leave
32.すべてのhadoopファイルシステムシェルコマンドをする
hadoop fs
https://riptutorial.com/ja/home 19
33. hdfsのクォータと、されているとバイトのをします。
hadoop fs -count -q [-h] [-v] <directory>...<directory>
34.に、いつもけをめています
hadoop fs -help
Hadoop v2コマンド
appendToFileのsrcまたはのsrcsをローカルファイルシステムからファイルシステムにします。また、stdinからのをみり、ファイルシステムにします。キープとして-
hdfs dfs -appendToFile [localfile1 localfile2 ..] [/HDFS/FILE/PATH..]
catソースパスをstdoutにコピーします。
hdfs dfs -cat URI [URI …]
chgrpファイルのグループをします。 -Rをすると、ディレクトリをしてにがわれます。ユーザーはファイルまたはスーパーユーザーでなければなりません。
hdfs dfs -chgrp [-R] GROUP URI [URI …]
chmodファイルのパーミッションをします。 -Rをすると、ディレクトリをしてにがわれます。ユーザーはファイルまたはスーパーユーザーでなければなりません
hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
chownファイルのをします。 -Rをすると、ディレクトリをしてにがわれます。ユーザーはスーパーユーザーでなければなりません。
hdfs dfs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
copyFromLocalソースがローカルファイルにされていることをいて、putコマンドとにします。
hdfs dfs -copyFromLocal <localsrc> URI
https://riptutorial.com/ja/home 20
copyToLocalがローカルファイルにされていることをいて、getコマンドとにします。
hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
countされたファイルパターンにするパスののディレクトリ、ファイル、およびバイトのをカウントします。
hdfs dfs -count [-q] [-h] <paths>
cpされたソースからされたに1つまたはのファイルをコピーします。のソースをする、されたはディレクトリでなければなりません。
hdfs dfs -cp URI [URI …] <dest>
duされたファイルのサイズ、またはされたディレクトリにまれるファイルとディレクトリのサイズをします。 -sオプションをすると、々のファイルサイズではなく、ファイルサイズのサマリーがされます。 -hオプションをすると、ファイルサイズをがなでフォーマットします。
hdfs dfs -du [-s] [-h] URI [URI …]
dusファイルサイズのをします。 hdfs dfs -du -sにします。
hdfs dfs -dus <args>
expunge ゴミをにします。ファイルをすると、HDFSからすぐにはされませんが、/ trashディレクトリのファイルにがされます。されたファイルののコピーだけをすることはできますが、ファイルがそこにっているり、あなたががわったらにすことができます。
hdfs dfs –expunge
getファイルをローカルファイルシステムにコピーします。 -ignorecrcオプションをすると、CRC
にしたファイルをコピーすることができます。 CRCは、データエラーをするためのなです。 CRCチェックサムファイルはが.crcで、のファイルのデータのをするためにされます。これらのファイルは、-crcオプションをするとコピーされます。
hdfs dfs -get [-ignorecrc] [-crc] <src> <localdst>
getmerge srcのファイルをし、をされたローカルファイルにきみます。ファイルのにをするには、addnlオプションをします。
hdfs dfs -getmerge <src> <localdst> [addnl]
lsされたファイルまたはディレクトリのをします。
hdfs dfs -ls <args>
https://riptutorial.com/ja/home 21
lsr lsのバージョンとしてします。 Unixのコマンドls -Rとです。
hdfs dfs -lsr <args>
mkdirされた1つまたはのパスにディレクトリをします。そのは、Unixのmkdir -pコマンドとています。これは、されたディレクトリがしないは、すべてのディレクトリをします。
hdfs dfs -mkdir <paths>
moveFromLocalコピーにソースがされることをいて、putコマンドとにします。
hdfs dfs -moveFromLocal <localsrc> <dest>
mv 1つのファイルをされたソースからされたにします。のソースをする、されたはディレクトリでなければなりません。ファイルシステムでファイルをすることはできません。
hdfs dfs -mv URI [URI …] <dest>
putファイルをローカルファイルシステムからコピーのファイルシステムにコピーします。このコマンドは、stdinからのをみり、ファイルシステムにきむこともできます。
hdfs dfs -put <localsrc> ... <dest>
rm 1つまたはのファイルをします。このコマンドはのディレクトリやファイルをしません。ごみをバイパスするになっている、したファイルをちにするには、-skipTrashオプションをします。
hdfs dfs -rm [-skipTrash] URI [URI …]
rm r -rmのバージョンとしてします。
hdfs dfs -rm -r [-skipTrash] URI [URI …]
setrepしたファイルまたはディレクトリのレプリケーションファクタをします。 -Rをすると、ディレクトリをしてにがわれます。
hdfs dfs -setrep <rep> [-R] <path>
statされたパスにするをします。
hdfs dfs -stat URI [URI …]
tailされたファイルののキロバイトをstdoutにします。はUnix -fオプションをサポートしており、されたファイルをできます。しいがのプロセスによってファイルにされると、tailがをします。
hdfs dfs -tail [-f] URI
https://riptutorial.com/ja/home 22
testされたファイルまたはディレクトリのをします。ファイルまたはディレクトリがするかどうかをするには-eをします。 -zファイルまたはディレクトリがであるかどうかをします。 URIがディレクトリかどうかをするには-dをします。
hdfs dfs -test -[ezd] URI
textされたソースファイルをテキストでします。なファイルは、zipおよびTextRecordInputStreamです。
hdfs dfs -text <src>
touchzされたパスにサイズ0のしいのファイルをします。
hdfs dfs -touchz <path>
オンラインでHadoopコマンドをむ https://riptutorial.com/ja/hadoop/topic/3870/hadoopコマンド
https://riptutorial.com/ja/home 23
3: Hadoopのロードデータ
Examples
hadoop hdfsにデータをロードする
ステップ1HDFSでディレクトリをし、ファイルとリストのをアップロードする
をくことでびましょう。のコマンドをコピーしてにりけることができます
hadoop fs -mkdir
パスURIをとしてとり、1つまたはのディレクトリをします。
# hadoop fs -mkdir <paths>
hadoop fs -mkdir /user/hadoop hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2 /user/hadoop/dir3
hadoop fs -put
のsrcファイルまたはのsrcファイルをローカルファイルシステムからHadoopファイルシステムにコピーします。
# hadoop fs -put <local-src> ... <HDFS_dest_path>
hadoop fs -put popularNames.txt /user/hadoop/dir1/popularNames.txt
hadoop fs -copyFromLocal
のsrcファイルまたはのsrcファイルをローカルファイルシステムからHadoopファイルシステムにコピーします。
https://riptutorial.com/ja/home 24
# hadoop fs -copyFromLocal <local-src> ... <HDFS_dest_path>
hadoop fs -copyFromLocal popularNames.txt /user/hadoop/dir1/popularNames.txt
hadoop fs -moveFromLocal
put localercがコピーされたにされることをけば、putコマンドとです。
# hadoop fs -moveFromLocal <local-src> ... <HDFS_dest_path>
hadoop fs -moveFromLocal popularNames.txt /user/hadoop/dir1/popularNames.txt
SQOOPデータツール
SqoopRDBMSからHDFSへのデータのコマンドラインツール、またはそのをして、RelationalデータベースからHDFSにデータをロードすることもできます。
$ sqoop import --connect CONNECTION_STRING --username USER_NAME --table TABLE_NAME
$ sqoop import --connect jdbc:mysql://localhost/db --username foo --table TEST
オンラインでHadoopのロードデータをむ https://riptutorial.com/ja/hadoop/topic/3846/hadoopのロードデータ
https://riptutorial.com/ja/home 25
4: HDFSとはですかHDFSのれたとそのみ
には、HDFSでされるコマンドがまれているがあります。
Examples
HDFS - Hadoopファイルシステム
HadoopファイルシステムHDFSは、サーバーのなクラスタにまたがるようにされたスケーラブルでのいデータストレージをするJavaベースのファイルシステムです。 HDFS、MapReduce、およびYARNは、Apache™Hadoop®のコアとなります。
HDFSは、フォールトトレラントにされています。これは、のノードにって、されたデータブロックののコピーデフォルトでは3つをすることによってされます。
HDFSでのファイルの
Hadoop Distributedファイルシステムでファイルをするには
hdfs dfs -ls -R / | grep [search_term]
のコマンドでは、
-lsはファイルをするためのものです
-Rはですサブディレクトリをりします
/ルートディレクトリからの
|のコマンドのを2のコマンドにパイプする
するをするgrepコマンド
[search_term] hadoopファイルシステムのすべてのファイルのリストでされるファイル。
あるいは、のコマンドをしてfindをし、をすることもできます。
hadoop fs -find / -name test -print
したにするすべてのファイルをし、したアクションをします。パスをしないと、のディレクトリがデフォルトになります。をしない、デフォルトは-printになります。
のながされます。
https://riptutorial.com/ja/home 26
name pattern•iname pattern•
ファイルのがのファイルシステムグロブをしてパターンとするは、trueとされます。 -inameをすると、とはされません。
print•print0Always•
とする。のパスをにきします。 -print0をすると、ASCII NULLがされます。
のがされます。
expression -a expression expression -and expression expression expression
HDFSのブロックと
HDFSのブロックサイズとブロック HDFSには、ファイルがロードされるたびにブロックでデータをするというがあります。ブロックは、HDFSまたはそののファイルシステムのデータのなパーティションです。
ファイルがHDFSにロードされるたびに、ファイルはにされブロックされます、ブロックとばれるなるにされます。ブロックは、 hdfs-site.xml dfs.block.sizeのにしhdfs-site.xml
には、ブロックサイズは64/128/256MBなどのきなにされますのFSの4KBとして。ほとんどのHadoop 2.xディストリビューションのブロックサイズのデフォルトは128 MBです。よりきいブロックサイズのは、HadoopがPetaBytesのデータをうために、ファイルがメガバイトからTeraBytesのオーダにぶからです。
たとえば、サイズが1024 MBのファイルがあるとします。ブロックサイズが128 MBの、それぞれ128 MBの8ブロックがられます。つまり、namenodeは8 x 3 = 24ファイル3つはのメタデータをするがあります。
ブロックサイズが4 KBのじシナリオをえてみましょう。その、 1GB / 4KB = 250000ブロックとなり、1GBファイルの750000ブロックのメタデータをするにはnamenodeがになります。これらのメタデータのはすべてメモリにされているため、NameNodeになをするために、よりきなブロックサイズがされます。
ここでもブロックサイズは1GBなどのようににいにされていません。には、データのブロックにして1マッパーがされるからです。したがって、ブロックサイズを1GBにすると、パラレルがわれ、スループットがにくなるがあります。
1.
2. HDFSでのサイズ Hadoopでのはなデータです。ファイルがブロックにされている、hadoopはファイルbopundariesをしません。ブロックサイズにじてデータをするだけです。 400MBのファイルが4あり、に100MBのデータがあるとすると、 128 MB x 3と16 MB x 1 3ブロックがられます。
https://riptutorial.com/ja/home 27
しかし、データのprceossingにスプリットがされるとき、ファイル/レコードのがにかれています。この、 NLineInputFormatをしている、それぞれ100MBの4つのスプリットがあります。
サイズは、プロパティごとにすることもできますmapreduce.input.fileinputformat.split.maxsize
BlocksSplitsのにいがこのSO /
オンラインでHDFSとはですかをむ https://riptutorial.com/ja/hadoop/topic/3845/hdfsとはですか-
https://riptutorial.com/ja/home 28
5: MapReduceのこのをするには、コマンドのはのとおりです。
bin/hadoop jar hadoop-*-examples.jar wordcount [-m <#maps>] [-r <#reducers>] <in-dir> <out-dir>
•
HDFSにデータをコピーするにはローカルから
bin/hadoop dfs -mkdir <hdfs-dir> //not required in hadoop 0.17.2 and later bin/hadoop dfs -copyFromLocal <local-dir> <hdfs-dir>
•
HadoopでMapReduceをするワードカウントプログラム。
Examples
ワードカウントプログラムJavaおよびPythonで
カウントプログラムはMapReduceの "Hello World"プログラムにています。
Hadoop MapReduceは、のいフォールトトレラントなで、なクラスタノードのコモディティハードウェアにしてなのデータマルチテラバイトのデータセットをするアプリケーションをにするためのソフトウェアフレームワークです。
MapReduceジョブは、、データセットをなでマップタスクによってされるしたチャンクにします。フレームワークはマップのをソートし、にそれらをタスクにします。、ジョブのとのがファイルシステムにされます。フレームワークはタスクのスケジューリング、タスクの、したタスクのをいます。
ワードカウントの
WordCountのでは、テキストファイルをみみ、のをえます。はテキストファイルで、はテキストファイルで、にはとそののカウントがタブでられています。
マッパーはをとしてり、それをにします。に、のキー/のペアをし、レデューサはのカウントをし、とでのキー/をします。
として、はマップのコンバイナとしてもされます。これにより、を1つのレコードにまとめることで、ネットワークでされるデータがされます。
ワードカウントコード
package org.myorg; import java.io.IOException;
https://riptutorial.com/ja/home 29
import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; public class WordCount { public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } } } public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf, "wordcount"); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(Map.class); job.setReducerClass(Reduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.waitForCompletion(true); } }
https://riptutorial.com/ja/home 30
このをするには、コマンドのはのとおりです。
bin/hadoop jar hadoop-*-examples.jar wordcount [-m <#maps>] [-r <#reducers>] <in-dir> <out-dir>
ディレクトリのすべてのファイルのコマンドラインのin-dirがみまれ、ののがディレクトリにきされますのout-dirとばれます。とのがHDFSにされているとします。がまだHDFSにはなく、ローカルファイルシステムにあるは、のようなコマンドをしてHDFSにデータをコピーするがあります。
bin/hadoop dfs -mkdir <hdfs-dir> //not required in hadoop 0.17.2 and later bin/hadoop dfs -copyFromLocal <local-dir> <hdfs-dir>
Pythonのの
mapper.py
import sys for line in sys.stdin: # remove leading and trailing whitespace line = line.strip() # split the line into words words = line.split() # increase counters for word in words: print '%s\t%s' % (word, 1)
reducer.py
import sys current_word = None current_count = 0 word = None for line in sys.stdin: # remove leading and trailing whitespaces line = line.strip() # parse the input we got from mapper.py word, count = line.split('\t', 1) # convert count (currently a string) to int try: count = int(count) except ValueError: # count was not a number, so silently # ignore/discard this line continue if current_word == word: current_count += count else: if current_word: print '%s\t%s' % (current_word, current_count) current_count = count current_word = word if current_word == word: print '%s\t%s' % (current_word, current_count)
https://riptutorial.com/ja/home 31
のプログラムは、 cat filename.txt | python mapper.py | sort -k1,1 | python reducer.pyをしてできcat filename.txt | python mapper.py | sort -k1,1 | python reducer.py
オンラインでMapReduceのをむ https://riptutorial.com/ja/hadoop/topic/3879/mapreduceの
https://riptutorial.com/ja/home 32
6: ローカルeclipseのHadoop MR Javaコードのデバッグ。
き
ここでえておくべきなことは、Hadoop MRジョブのデバッグは、Eclipseでリモートでデバッグされたアプリケーションとていることです。
デバッガまたはデバッグツールは、のプログラム「ターゲット」プログラムのテストおよびデバッグにされるコンピュータプログラムです。 Hadoopでは、エラーのがなく、さなエラーできながするがあるににです。
それだけであなたがするがあります。
Examples
ごじのように、Hadoopは3つのなるモードでローカルでできます。
ローカルモード1. モード2. モードクラスタ3.
、HDFSとMap ReduceMRをするために、モードでローカルハープセットアップをします。しかし、このモードではMRプログラムをデバッグすることはできません。それぞれのMap / Reduce
タスクは々のJVMプロセスでされるため、のJVMプロセスでMRプログラムをできるローカルモードにりえるがあります。
ローカルでこれをデバッグするためのかつなはのとおりです。
デバッグのためにローカルモードでhadoopをするため、マッパーとレデューサーのタスクは々のJVMではなくのJVMでされます。のは、あなたがそれをうのにちます。
1.
デバッグをにするようにHADOOP_OPTSをすると、Hadoopジョブをするときにデバッガがするのをします。はポート8080でじものをデバッグするコマンドです。
2.
export HADOOP_OPTS = " - agentlibjdwp = transport = dt_socket、server = y、suspend = y、address = 8008"
core-site.xmlのfs.default.nameのをhdfs//からfile///にします。ローカルモードでは、hdfsをしません。
3.
mapred-site.xmlのmapred.job.trackerのをlocalにします。これにより、HadoopはのJVMでMRタスクをします。
4.
https://riptutorial.com/ja/home 33
Eclipseのデバッグをし、ポートを8008にします。そのためには、デバッガーにき、しいリモートJavaアプリケーションタイプのをし、でポートを8080にします。
5.
hadoopジョブをしてデバッガがするのをつ、のでデバッグモードでEclipseをします。にブレークポイントをしてください。
6.
オンラインでローカルeclipseのHadoop MR Javaコードのデバッグ。をむ
https://riptutorial.com/ja/hadoop/topic/10063/ローカルeclipseのhadoop-mr-javaコードのデバッグ-
https://riptutorial.com/ja/home 34
7:
き
Hueは、HDFS、Hive、Spark、Hbase、Sqoop、Impala、Pig、OozieなどのにされているBigdata
テクノロジのほとんどをしてするためのユーザーインターフェイスです。
django WebアプリケーションであるHueは、にHiveクエリをするためのワークベンチとしてされました。でHueのがし、Hadoopエコシステムのさまざまなコンポーネントがサポートされました。 Apache Licenseのでオープンソースソフトウェアとしてできます。
Examples
セットアッププロセス
の
ほとんどのオペレーティングシステムでは、 Hueインストールプロセスのはできないため、OSによっては、 インストールパッケージにまれているインストールスクリプトをするに、インストールするがあるがなるがあります 。
CentOS
sudo yum install ant sudo yum install python-devel.x86_64 sudo yum install krb5-devel.x86_64 sudo yum install krb5-libs.x86_64 sudo yum install libxml2.x86_64 sudo yum install python-lxml.x86_64 sudo yum install libxslt-devel.x86_64 sudo yum install mysql-devel.x86_64 sudo yum install openssl-devel.x86_64 sudo yum install libgsasl-devel.x86_64 sudo yum install sqlite-devel.x86_64 sudo yum install openldap-devel.x86_64 sudo yum install -y libffi libffi-devel sudo yum install mysql-devel gcc gcc-devel python-devel sudo yum install rsync sudo yum install maven wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
GMP1.
CentOS> 7.x sudo yum install libgmp3-dev
•
CentOS <6.x sudo yum install gmp gmp-devel gmp-status
•
https://riptutorial.com/ja/home 35
Ubuntuでののインストール
このインストールはしていhadoopにプリインストールされるhadoopユーザーを。
はこれらののパッケージにする
gcc1. g ++2. libxml2-dev3. libxlst-dev4. libsasl2-dev5. libsasl2-modules-gssapi-mit6. libmysqlclient-dev7. python-dev8. python-setuptools9. libsqlite3-dev10.
11. libkrb5-dev12. libtidy-0.99-013. libldap2-dev14. libssl-dev15. libgmp3-dev16.
すべてのパッケージをインストールする
sudo apt-get update sudo apt-get install gcc g++ libxml2-dev libxslt-dev libsasl2-dev libsasl2-modules-gssapi-mit libmysqlclient-dev python-dev python-setuptools libsqlite3-dev ant libkrb5-dev libtidy-0.99-0 libldap2-dev libssl-dev libgmp3-dev
インストールと
hadoopユーザーとしてのインストールをhadoopます。
su - hadoop
Hueをgethue.comからダウンロードしてくださいこのリンクはHueのウェブサイトからしたです
wget https://dl.dropboxusercontent.com/u/730827/hue/releases/3.9.0/hue-3.9.0.tgz
1.
ダウンロードしたtarballをする
tar -xvf hue-3.9.0.tgz
2.
installコマンドをする
cd hue-3.9.0 PREFIX=/home/hadoop/ make install
3.
https://riptutorial.com/ja/home 36
のプロセスがすると、
~/.bashrcファイルをし、
export HUE_HOME=/home/hadoop/hue export PATH=$PATH:$HUE_HOME/build/env/bin
エントリをした、source/ .bashrc
4.
をするする3つのファイル5.
cd $HUE_HOME/desktop/conf
hue.ini
[desktop] server_user=hadoop server_group=hadoop default_user=hadoop default_hdfs_superuser=hadoop
•
cd $HADOOP_CONF_DIR
core-site.xml
<property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property>
•
hdfs-site.xml
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
•
をするまだしていないはHadoopデーモンをする
nohup supervisor &
6.
Hue Web Interfaceへのログイン http// localhost8888
ユーザー hadoop
パスワード user_choice
7.
オンラインでをむ https://riptutorial.com/ja/hadoop/topic/6133/
https://riptutorial.com/ja/home 37
クレジット
S. No
Contributors
1 hadoopをいめるAni Menon, Community, franklinsijo, Harinder, ItayB, Sandeep Chatterjee, Shailesh Kumar Dayananda, sunkuet02, Udeet Solanki, Venkata Karthik
2 Hadoopコマンド Ambrish, Ani Menon, jedijs, philantrovert
3Hadoopのロードデータ
Ani Menon, Backtrack, BruceWayne, NeoWelkin, Tejus Prasad
4 HDFSとはですかAni Menon, NeoWelkin, neuromouse, philantrovert, Suraj Kumar Yadav, Tejus Prasad
5 MapReduceのAni Menon, Arduino_Sentinel, Tejus Prasad, Udeet Solanki, user3335966
6ローカルeclipseのHadoop MR Javaコードのデバッグ。
Manish Verma
7 andriosr, franklinsijo
https://riptutorial.com/ja/home 38