記事著者の電子メール: [email protected] 住所: 広東省恵州市
▲ この章の目的
⚪ TELECOM プロジェクトのデータ収集を理解する。
⚪ TELECOM プロジェクトのデータ クリーニングを理解します。
⚪ TELECOM プロジェクトのデータエクスポートを理解します。
⚪ TELECOM プロジェクトのデータ視覚化を理解します。
⚪ TELECOM プロジェクトの他の側面について学びます。
1. データ収集
1. 実際の運用環境では、通信トラフィック ログは 1 つのサーバー上で生成されるだけではなく、すべてのサーバーで生成されます。そのため、現時点では、まず Flume のファンイン フロー モデルを構築し、収集したデータを HDFS に転送して保存する必要があります。
2. 手順:
a. 2 番目と 3 番目のサーバーにログを保存するための対応するディレクトリを作成します (2 番目と 3 番目のサーバーをログが生成されるサーバーとします)。
CD/ホーム
mkdirテレコムログ
b. 対応するディレクトリを入力し、指定したディレクトリにログをアップロードまたはダウンロードします (実際のプロセスでは、ログはリアルタイムで生成される必要があります)。
cdテレコムログ/
# クラウドホストのダウンロードアドレス
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/103_20150615143630_00_00_000_2.csv
c. 2 番目と 3 番目のサーバーでログを収集し、収集したログをデータ ファンインのために最初のサーバーに転送します。
cd /home/software/apache-flume-1.9.0-bin/data
#ファイルを編集する
vimテレコムログ.conf
#以下をファイルに追加します
a1.ソース = s1
a1.チャンネル = c1
a1.シンク = k1
# ログは指定されたディレクトリに配置されます
# したがって、この時点で指定されたディレクトリの変更を監視します
# ディレクトリに新しいファイルが作成された場合
# この新しいファイルの内容を収集する必要があります
a1.sources.s1.type = spooldir
# リッスンするディレクトリを指定します
a1.sources.s1.spoolDir = /home/telecomlog
# チャネルを設定する
a1.channels.c1.type = メモリ
a1.チャンネル.c1.容量 = 10000
a1.channels.c1.transactionCapacity = 1000
# 収集したデータを最初のサーバーに送信する必要がある
a1.sinks.k1.type = アブロ
a1.sinks.k1.hostname = hadoop01
a1.sinks.k1.port = 8090
# 練る
a1.sources.s1.channels = c1
a1.シンク.k1.チャンネル = c1
d. 最初のサーバーでデータが収集された後、収集されたデータを HDFS に書き込む必要があります。
cd /home/software/apache-flume-1.9.0-bin/data/
#ファイルを編集する
vimテレコムログ.conf
#以下をファイルに追加します
a1.ソース = s1
a1.チャンネル = c1
a1.シンク = k1
# 2番目と3番目のサーバーから送信されたデータを受信する必要がある
a1.sources.s1.type = アブロ
a1.sources.s1.bind = 0.0.0.0
a1.sources.s1.port = 8090
# データにタイムスタンプを追加する必要がある
a1.sources.s1.interceptors = i1
a1.sources.s1.interceptors.i1.type = タイムスタンプ
# チャネルを設定する
a1.channels.c1.type = メモリ
a1.チャンネル.c1.容量 = 10000
a1.channels.c1.transactionCapacity = 1000
# シンクの構成
# HDFS にデータを書き込む必要があるため、データを毎日保存できることが最善です
a1.sinks.k1.type = hdfs
# HDFS上のデータの保存パスを指定
a1.sinks.k1.hdfs.path = hdfs://hadoop01:9000/telecomlog/reporttime=%Y-%m-%d
# HDFS 上のファイルのストレージ タイプを指定します
a1.sinks.k1.hdfs.fileType = データストリーム
# ファイルのスクロール間隔を指定
a1.sinks.k1.hdfs.rollInterval = 3600
a1.sinks.k1.hdfs.rollSize = 0
a1.sinks.k1.hdfs.rollCount = 0
# 練る
a1.sources.s1.channels = c1
a1.シンク.k1.チャンネル = c1
e. HDFS を開始します。
start-dfs.sh
f. 最初のサーバーで Flume を起動します。
../bin/flume-ng エージェント -na1 -c ../conf -f telecomlog.conf -
Dflume.root.logger=情報,コンソール
g. 2 番目と 3 番目のサーバーで Flume を起動します。
../bin/flume-ng エージェント -na1 -c ../conf -f telecomlog.conf -
Dflume.root.logger=情報,コンソール
2. データクリーニング
1. Flume を使用して HDFS 上のデータを収集し、元のデータを管理するために Hive にテーブルを作成する必要があります。
# YARNを開始する
start-yarn.sh
#HBase インストール ディレクトリの lib ディレクトリを入力します
cd /home/software/hbase-2.4.2/lib
# サブディレクトリに入ります
cd クライアント側サードパーティ/
#重命名
mv commons-logging-1.2.jar commons-logging-1.2.bak
mv log4j-1.2.17.jar log4j-1.2.17.bak
mv slf4j-log4j12-1.7.30.jar slf4j-log4j12-1.7.30.bak
#Hive サービス プロセスを開始する
hive --service メタストア &
hive --service hiveserver2 &
#Hive クライアントを入力します
ハイブ
# ライブラリを作成する
データベーステレコムを作成します。
# このライブラリを使用する