前期準備,每臺服務器都需要配置
配置好IPvim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="bcd315b9-9d9a-4ad7-8f75-9546f71e49a4"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.245.200 #IP地址
GATEWAY=192.168.245.1 #默認網關
NETWORK=255.255.255.0 #子網掩碼
DNS1=114.114.114.114 #DNS
DNS2=8.8.8.8
修改主機名vi /etc/hostname
做好IP映射vim /etc/hosts
192.168.245.200 master
192.168.245.201 slave1
192.168.245.202 slave2
關閉防火墻systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
配置SSH免密登錄ssh-keygen -t rsa
for i in {1..2};do scp -r ~/.ssh/authorized_keys root@slave${i}:~/.ssh/;done
安裝Scala
下載Scala安裝包
tar -zxvf scala-2.11.12.tgz -C /home/local
配置環(huán)境變量
vim /etc/profile
添加如下配置
export SCALA_HOME=/home/local/scala
export PATH=$SCALA_HOME/bin:$PATH
使環(huán)境生效
source /etc/profile
驗證
scala -version
安裝spark
Spark官網
解壓
上傳軟件安裝包至linux系統(tǒng) /home/tools目錄下
tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz -C /home/local
移動文件目錄至spark
mv spark-2.2.3-bin-hadoop2.6 spark
配置環(huán)境
export SPARK_HOME=/home/local/spark
export PATH=$PATH:${SPARK_HOME}/bin:${SPARK_HOME}/sbin
修改配置
進入${SPARK_HOME}/conf路徑下,拷貝spark-env.sh.template為spark-env.sh
cp spark-env.sh.template spark-env.sh
修改spark-env.sh文件
vim spark-env.sh
添加如下配置
export JAVA_HOME=/home/local/java
export SCALA_HOME=/home/local/scala
export SPARK_DIST_CLASSPATH=$(/home/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/home/local/hadoop/etc/hadoop
#指定spark主節(jié)點,通過主機映射
export SPARK_MASTER_HOST=master
#指定從節(jié)點worker并行數(shù)量
export SPARK_WORKER_CORES=2
#指定內存大小
export SPARK_WORKER_MEMORY=2g
#指定主節(jié)點端口
export SPARK_MAETER_PORT=7070
拷貝slave.template為slaves
cp slaves.template slaves
修改slaves文件
[root@master conf]# vim slaves
master
slave1
slave2
分發(fā)spark目錄至每個服務器節(jié)點
for i in {1..2};do scp -r /home/local/spark/ root@slave${i}:/home/local/;done
在${SPARK_HOME}/sbin目錄下啟動spark
./start-all.sh
在Spark Shell中,你可以使用以下方法來讀取HDFS文件:
1.讀取文本文件:
val textFile = sc.textFile("hdfs://<HDFS路徑>")
統(tǒng)計包含mike的數(shù)據(jù)記錄
textFile.filter(line=>line.contains("mike")).count()
2.讀取多個文本文件:
val textFiles = sc.wholeTextFiles("hdfs://<HDFS目錄>")
3.讀取二進制文件:
val binaryFiles = sc.binaryFiles("hdfs://<HDFS目錄>")
4.讀取其他格式的文件(如Parquet、Avro等):
val dataframe = sqlContext.read.format("<文件格式>").load("hdfs://<HDFS路徑>")
這將返回一個 DataFrame 對象,可以使用Spark SQL進行數(shù)據(jù)分析。
pyspark讀取文件
1.導入PySpark模塊:
from pyspark.sql import SparkSession
2.創(chuàng)建SparkSession:
spark = SparkSession.builder \
.appName("PySpark Example") \
.getOrCreate()
3.加載數(shù)據(jù)
# 加載文本文件
text_data = spark.read.text("path/to/text/file.txt")
# 加載CSV文件
csv_data = spark.read.csv("path/to/csv/file.csv", header=True, inferSchema=True)
# 加載JSON文件
json_data = spark.read.json("path/to/json/file.json")
4.數(shù)據(jù)處理和轉換
# 顯示DataFrame的內容
df.show()
# 選擇特定的列
df.select("column1", "column2")
# 過濾數(shù)據(jù)
df.filter(df.column1 > 10)
# 聚合操作
df.groupBy("column1").agg({"column2": "sum"})
# 排序數(shù)據(jù)
df.orderBy("column1", ascending=False)
# 添加新列
df.withColumn("new_column", df.column1 * 2)
5.執(zhí)行sql查詢
# 創(chuàng)建臨時視圖
df.createOrReplaceTempView("my_view")
# 執(zhí)行SQL查詢
result = spark.sql("SELECT * FROM my_view WHERE column1 > 10")
6.將數(shù)據(jù)保存到文件:文章來源:http://www.zghlxwxcb.cn/news/detail-687492.html
# 保存為文本文件
df.write.text("path/to/save/text/file.txt")
# 保存為CSV文件
df.write.csv("path/to/save/csv/file.csv")
# 保存為Parquet文件
df.write.parquet("path/to/save/parquet/file.parquet")
7.關閉SparkSession文章來源地址http://www.zghlxwxcb.cn/news/detail-687492.html
spark.stop()
到了這里,關于大數(shù)據(jù)學習06-Spark分布式集群部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!