山本?

組み込みセンサで無線通信 

1.ハード構築
・Arduinoとe-healthとwifiモジュールを接続する
・Arduinoに脈波センサと体温センサを接続しPCと接続
※ハードの画像
接続方法が分からない場合は以下のURLを参照
e-healthのチュートリアル
https://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical
wifiモジュールのチュートリアル
https://www.cooking-hacks.com/blog/tutorial-wifi-module-for-arduino-roving-rn-xvee

2.PC内の環境構築 ・ArduinoIDEのインストール 以下のURLからArduinoIDEのver1.0.5をそれぞれのPCに合わせた環境でインストールする
※既に別verでのIDEをインストールしている場合は追加でインストールする(アンインストールする必要はない)
https://www.arduino.cc/en/Main/OldSoftwareReleases#1.0.x

・e-healthライブラリの導入 以下のURLのUsing the library with Arduinoの項のV2.4のライブラリをダウンロード https://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical
その後解凍し,\Documents\Arduino\librariesに解凍したものを入れてArduinoIDEを起動する
起動するとスケッチのユーザ提供にeHealthとPinChangeIntというライブラリが追加されていればOK

のように設定するものとして説明する.

1. 基本設定

パスワードの変更

$ passwd

(必須ではないが, 警告がでないようにする. )

2. パッケージリストを更新する.

$ sudo apt-get update

3. 設定ファイルを編集していくので, 必要であればテキストエディタをインストールする.

$ sudo apt-get install emacs

4. /etc/hostnameの内容(ホスト名)を

$ sudo emacs /etc/hostname

により編集する(1行にホスト名を記述する).

5. 固定IPの設定のために /etc/dhcpcd.confを編集する. ファイル内の下部に#It is possible to fall.....と記述されているところがあるので,そこの3行下に

#static ip_address=初期設定のIPアドレス
と記述されているので初期設定のIPアドレスをそれぞれのラズパイのIPに書き換える.その後左の#を消去.

6. 名前解決のために/etc/hostsを編集する.

192.168.0.60 master

192.168.0.61 slave1

...

192.168.0.67 slave7

を追記する.

7. ネットワークを再起動する(RasPi自体を再起動してもよい).

8. ping ホスト名, ping IPアドレスがそれぞれのノードに正常に通るか確認する.

9. 各RasPiでsshを有効にするための設定を行う.

$ sudo raspi-config

を押して, sshをenableに設定する.

10. ssh-keygen -t rsaを実行する. いくつか聞かれるが, 全てEnterで処理してよい.

11. 公開鍵を全てのマシンに送信する.

$ ssh-copy-id master
$ ssh-copy-id slave1

...

$ ssh-copy-id slave7

上記をすべてのラズパイで行う. ※同じラズパイで重複して行うと暗号化キーが複数できてめんどくさいことになるので注意!

以降では, リモートで各マシンにssh接続して設定を行う.

hadoopの設定 

11. Hadoopを実行するために必要となるjavaをインストールする.

$ sudo apt-get install oracle-java8-jdk

※用いてるラズパイによってはすでにインストールされている場合がある

12. Hadoopをダウンロードし解凍する.

$ cd ~pi/
$ wget http://ftp.jaist.ac.jp/pub/apache/hadoop/common/hadoop-3.0.2/hadoop-3.0.2.tar.gz

※hadoopのバージョンはその都度インストールできバージョンを確認する

$ tar zxvf hadoop-3.0.2.tar.gz

13. Hadoopの環境変数 + 設定ファイルを修正する.

本ページ下部にあるzipファイルを以下の配置に置く bashrcというファイルは配置した後に隠しファイルとするためファイル名の先頭に.をつけて.bashrcとする

pi/.bashrc

pi/hadoop-3.0.2/etc/hadoop/hadoop-env.sh

pi/hadoop-3.0.2/etc/hadoop/core-site.xml

pi/hadoop-3.0.2/etc/hadoop/hdfs-site.xml

pi/hadoop-3.0.2/etc/hadoop/mapred-site.xml

pi/hadoop-3.0.2/etc/hadoop/yarn-site.xml

設定ファイル修正に用いた参考URL
https://stackoverflow.com/questions/30921838/auxservicemapreduce-shuffle-does-not-exist-on-hive-1-2-0
https://stackoverflow.com/questions/30533501/hadoop-mapper-is-failing-because-of-container-killed-by-the-applicationmaster?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
https://tekmarathon.com/2017/02/15/hadoop-and-spark-installation-on-raspberry-pi-3-cluster-part-2/

14. Hadoopネームノードの初期設定

$hdfs namenode -format

※masterのみで実行
※再起動時にnamenodeがすぐに落ちてしまうときはこのコマンドを実行すると解消される場合がある.

15. masterのサービスの起動

$hdfs --daemon start namenode

ブラウザで, master:9870,にアクセスできるか確認

$yarn --daemon start resourcemanager

ブラウザで, master:8088,にアクセスできるか確認しておく.

masterで

$jps

により現在動いているサービスが確認できる

※jpsの画像

16. slave1~7のサービスの起動

slave1~7で以下のコマンドを実行

$hdfs --daemon start datanode
$yarn --daemon start nodemanager
$jps

により動いているサービスの確認をmasterと同様に行う

全てのslaveでdatanodeとnodemanagerを立ち上げるたらmaster:9870のLive Nodesが7になっていることと,master:8088のActive Nodesの数が7になっていることを確認する.

Hadoopのサンプルプログラムの実行 

17. Hadoopのサンプルプログラムの実行(masterで作業).

円周率のサンプルプログラム

$hadoop jar /home/pi/hadoop-3.0.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.2.jar pi 10 10000

を実行,以下実行結果

円周率のサンプルプログラムではラズパイの台数を変えても差が出ないことが分かった。 なのでwordcountというファイル内の文字数を数えるプログラムを実行する.

wordcountの実行手順
参考URL https://qiita.com/Esfahan/items/bdd254dccf29da22cc7c

1.テキストファイルの用意

http://www.textfiles.com/etext/AUTHORS/ARISTOTLE/ 上記のサイトから適当なものをダウンロードしてmasterの/home/piにいれておく. ファイルの名前はword.txtに変更しておく. ※word.txtはそのままでは容量が小さいので以下の手順を行う

$cat word.txt word.txt word.txt > word1.txt
$cat word1.txt word1.txt word1.txt > word2.txt
$cat word2.txt word2.txt word2.txt > word3.txt
$cat word3.txt word3.txt word3.txt > word4.txt
.
.
.

というように繰り返しファイルのサイズを大きくする(目安としては500MBくらいまでファイルを大きくする)(ラズパイ1台や2台で試す場合は時間がかかってしまうので200MB程度を推奨) この作業を終えたら改めてファイル名をword.txtに変えておく.

2.ファイルの保存先(HDFS)となるディレクトリを作成

$ hadoop fs -mkdir /input

3.テキストファイルを、/inputの下にコピー

$ hadoop fs -put word.txt /input

4.コピーされたことを確認

$ hadoop fs -ls /input

5.実行

$ hadoop jar /home/pi/hadoop-3.0.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.2.jar wordcount /input /output07

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS