文章更新於:2020-03-24
按照慣例,文件附上鍊接放在文首。
文件名:spark-2.4.5-bin-without-hadoop.tgz
文件大小:159 MB
下載鏈接:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.5/spark-2.4.5-bin-without-hadoop.tgz
SHA256:40f58f117efa83a1d0e66030d3561a8d7678f5473d1f3bb53e05c40d8d6e6781
文件名:sbt-1.3.8.tgz.7z
文件大小:54.9 MB
下載鏈接:https://www.lanzous.com/iameoaf
SHA256:9E0662C84E6B99F2BAB0F51EC1F8C93FA89C5CE5400AD01CF2A98A63A816346D
文章目錄
一、下載需要的文件
1、下載 spark
1、spark
可以去官網http://spark.apache.org/downloads.html 自行尋找合適版本。
2、spark
也可以使用文首 spark-2.4.5-bin-without-hadoop.tgz
直鏈。
2、下載 sbt
1、sbt
可以去官網 https://www.scala-sbt.org/自行尋找合適版本。
2、sbt
也可以使用文首sbt-1.3.8.tgz.7z
直鏈。
二、安裝spark
1、解壓==安裝
注1:tail -n 10
是隻查看輸出的最後 10 條結果,可以不用寫。
注2:username
需要換成你的用戶名。
sudo tar -zxvf spark-2.4.5-bin-without-hadoop.tgz -C /usr/local/ | tail -n 10
cd /usr/local
sudo mv spark-2.4.5-bin-without-hadoop/ spark
sudo chown -R username:username spark
2、修改Spark的配置文件spark-env.sh
注:在spark
目錄下拷貝spark-env.sh.template
文件 並去掉.template
後綴。同時在此文件第一行添加如下所示 export xxxx
代碼。
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
3、運行示例
1、在 spark 目錄下運行如下命令。
bin/run-example SparkPi
# bin/run-example SparkPi 2>&1 | grep "Pi is"
注:也可使用註釋掉的那行命令直接過濾出結果。
2、我的剛開始出錯了,報錯如下。
然後我使用 nmtui
命令將網絡配置成手動模式,並寫入IP、網關等重新運行程序就可以了。
發現運行結果與我假設的 3.1415926
有點差距,不過好像就是這樣哦,不是出錯了。
4、啓動spark命令行
注:在 /usr/local/spark/
目錄下執行以下命令啓動 spark
./spark-shell --master local[2]
1、這時也可以在瀏覽器訪問圖形界面了,地址在上面的輸出信息中有,這裏是 192.168.1.136:4040
5、解決 WARN 兩個
1、在上述命令行輸出中,其中有 WARN util.Utils: Your hostname, xxxxx resolves to a loopback address: 127.0.1.1;
解決辦法:
在 conf/spark-env.sh
配置文件中添加SPARK_LOCAL_IP
比如:
SPARK_LOCAL_IP="192.168.1.136"
再次啓動的時候就看不到它了~
2、在上述命令輸出中,其中有 spark Unable to load native-hadoop library for your platform...
解決辦法:
在conf/spark-env.sh
配置文件中添加 LD_LIBRARY_PATH
比如:
LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
注:前提是你的 $HADOOP_HOME
已經存在。
再次啓動的時候就看不到它了~
三、安裝 sbt
1、解壓到指定文件夾
ls | grep sbt #查看當前文件夾是否有sbt安裝包
sudo tar -zxvf sbt-1.3.8.tgz -C /usr/local
sudo cp /usr/local/sbt/bin/sbt-launch.jar /usr/local/sbt
sudo chown -R bigdata:bigdata /usr/local/sbt
sudo vim /usr/local/sbt/sbt
sudo chmod u+x /usr/local/sbt/sbt
2、建立sbt腳本並執行
腳本內容如下:
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"
注:腳本需要添加執行權限,在步驟一代碼截圖中有。
然後執行:
./sbt sbtVersion
第一次執行結果如下:
第二次執行結果如下:
四、Spark獨立應用程序編程
1、編寫scala程序
1、先建立程序根目錄
cd ~
mkdir -p ./sparkapp/src/main/scala
2、編寫 SimpleApp.scala 文件
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "file:///usr/local/spark/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
2、使用sbt打包Scala程序
1、建立 ~/sparkapp/simple.sbt
腳本,內容如下:
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
2、進行程序打包
/usr/local/sbt/sbt package
注:如果是第一次運行,可能會聯網下載文件,等待時間比較長。
執行結果如下:
3、執行程序
/usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
執行結果如下:
我運行失敗了,還在解決中。。。。。頭大
如果誰看見了知道答案,跪求留言告知。
異常截圖: