本環境搭建只是在windows下使用python編寫spark程序有提示
1、安裝python2.7 (省略)
下載安裝包一直下一步安裝即可
2、配置spark
下載spark-2.2.0-bin-hadoop2.7.tgz 解壓到C:\BigData(路徑隨意)
3、配置spark與python環境變量
SPARK_HOME:C:\BigData\spark-2.2.0-bin-hadoop2.7
PYTHONPATH:%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip;%SPARK_HOME%\python\lib\pyspark.zip
4、下載開發工具IntelliJ IDEA
在官網下載即可,我下載的解壓版,打開IntelliJ IDEA隨便創建工程打開FIle-->Settings-->Plugins 在搜索框輸入 python
創建工程後新建Python File 名爲wordcount.py 內容爲
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 初始化SparkConf, SparkContext 從pyspark 導入SparkConf, SparkContext ''' from pyspark import SparkConf, SparkContext import random #僞分佈模式setMaster直接寫local即可,setAppName隨便寫 conf = SparkConf().setMaster("local").setAppName("My App") sc = SparkContext(conf = conf) #HDFS的輸入路徑 inputFile = "hdfs://192.168.10.101:9000/input/test.txt" #HDFS的輸出目錄爲防止目錄已存在添加了隨機數爲名 outputFile = "hdfs://192.168.10.101:9000/output" + str(random.randint(10000,1000000)) #讀取我們的輸入數據 input = sc.textFile(inputFile) # 把它切分成一個個單詞 words = input.flatMap(lambda line: line.split(" ")) #轉換爲鍵值對並計數 counts = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b) #將統計出來的單詞總數存入一個文本文件,引發求值 counts.repartition(1).saveAsTextFile(outputFile)
wordcount程序就編寫好了,傳到服務器上進入到spark安裝目錄的bin下使用./spark-submit /路徑/wordcount.py即可運行
運行完成後使用hadoop fs -ls / 或者 hadoop dfs -ls / 查看
就能看到output加隨機數目錄,說明執行成功了
(1)fs是文件系統, dfs是分佈式文件系統
(2)fs > dfs
(3)分佈式環境情況下,fs與dfs無區別
(4)本地環境中,fs就是本地文件,dfs就不能用了
and
FS涉及到一個通用的文件系統,可以指向任何的文件系統如local,HDFS等。但是DFS僅是針對HDFS的。
那麼什麼時候用FS呢?可以在本地與hadoop分佈式文件系統的交互操作中使用。特定的DFS指令與HDFS有關