私たちは、CentOS7で火花をインストールして、このセクションでは、火花を経由してScalaの単語頻度の統計情報をやり取りする方法を示します。
1つのシステム、ソフトウェア、および前提制約
- CentOSの7マシンのIPの64台のワークステーションは192.168.100.200、ホスト名danjiで、読者は自分の実際の状況に応じて設定されています
- Hadoopのがインストールされ、開始されています
https://www.jianshu.com/p/b7ae3b51e559 - 火花がインストールされ、開始されています
https://www.jianshu.com/p/8384ab76e8d4 - 操作の影響を除去するための許可は、すべての操作をルートするために行われています
2操作
- 1. 192.168.100.200 xshellにrootでログインします
- 2. HDFSにアップロードされ、いくつかの文字列を入力して、新しいファイルを作成します。
# 进入hadoop的bin目录
cd /root/hadoop-2.5.2/bin
# 编辑word,加入以下内容,保存退出
I am zhangli
I am xiaoli
who are you
I am ali
hello jiangsu wanhe
wanhe
# 上传word到HDFS
./hdfs dfs -put word /word
# 查看
./hdfs dfs -cat /word
- 3. [コマンドラインを刺激します
# 进入spark的命令目录
cd /root/spark-2.2.1-bin-hadoop2.7/bin
# 进入spark命令行
./spark-shell
- 次のコマンドラインの対話を行うためのスパークコマンド4.
#创建一个上下文环境,以HDFS的/word作为输入
scala > val textFile = sc.textFile("/word")
#统计/word共有多少行
scala > textFile.count()
#打印/word内容
scala > textFile.collect().foreach(println)
#过滤哪些行包含"I"
scala > val linesWithSpark = textFile.filter(line => line.contains("I"))
#包含"I"总共有多少行
scala > linesWithSpark.count()
#统计单词频率
scala > val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
#打印统计结果
scala > wordCounts.collect()
上記は、Scalaの間で火花による対話形式で単語頻度の統計です。
ます。https://www.jianshu.com/p/92257e814e59で再現