pip install pyspark
一、windows安装spark和hadoop
(110条消息) Windows下配置Hadoop及Spark环境zhangz1z的博客-CSDN博客windows配置spark环境
1.1 运行出错
spark streaming启动是被,报错:Cannot run program ”python3“
D:\Python\Python39
解决方案,最简单和直接的方法是在Python的目录下,把python.exe复制一份,修改名字为Python3.exe即可。
1.2 代码解析
应用给入口,sparkcontext
任何一个应用首先需要构建sparkcontext对象
第一步、创建sparkconf对象
设置spark application基本信息
比如应用的名称appname和应用运行master
第二步、基于sparkconf对象,创建sparkcontext对象
localhost:9870
localhost:8088
localhost:4040
wordcount
创建sparkcount对象
读取文件
二、centos安装集群环境
2.1 centos下安装hadoop和spark的集群环境
CentOS下Hadoop+Spark集群搭建 - it610.com
2.2 虚拟机环境
10.10.65.34 主
root/Hodobanjo@2021
10.10.65.98 从
root/Hodoty@2021
10.10.62.89 从
root/Hodoagv@2022
虚拟机环境
free -g
2.3 网络地址
master 10.10.65.34
slave1 10.10.65.98
slave2 10.10.62.89
分别配置主机名称
hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
2.4 软件环境
java版本 1.8.0_171
hadoop版本 hadoop-3.2.2
spark版本 spark-3.3.0-bin-hadoop3
scala版本 scala3-3.1.1
2.5 安装java环境
centos 三台机器上均已经安装jdk
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151/ /usr/local/java
将解压后文件夹重命名移动到/usr/local/java
配置系统变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib
之后保存退出,输入 source /etc/profile
使配置文件生效
查看java版本
java -version
2.6 发送jdk到从节点
2.6.1 修改主节点和从节点hosts文件
主节点和从节点均需要修改
vim /etc/hosts
10.10.65.34 master
10.10.65.98 slave1
10.10.62.89 slave2
2.6.2 配置各个节点ssh免密登陆
在master主节点上输入命令ssh-keygen -t rsa生成公钥
然后输入命令将公钥发送到各个子节点上:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
或者
ssh-copy-id 10.10.65.34
ssh-copy-id 10.10.65.98
ssh-copy-id 10.10.62.89
注意root@slave1 和 root@slave2
在主机master上运行
ssh master
ssh slave1 进入slave1节点 exit
ssh slave2 进入slave2节点 exit
验证是否主节点到从节点免密登陆
说明主节点 到slave1和slave2从节点,免密登录配置成功
注意:除了配置主节点到各个子节点的免密登录,我们最好也配置各个子节点到主节点以及各个子节点之间的免密登录。
方法和上面保持一致
2.6.3 发送jdk到从节点
输入命令
scp -r /opt/jdk1.8.0_171/ root@slave1:/opt/jdk1.8.0_171/
scp -r /opt/jdk1.8.0_171/ root@slave2:/opt/jdk1.8.0_171/
scp /etc/hosts root@slave1:/etc/hosts
scp /etc/hosts root@slave2:/etc/hosts
(上面这条命令运行成功)
将jdk发送到slave1和slave2 从节点
发送到其他子节点秩序修改目标主机名即可
2.6.4 配置各个从节点系统变量
各个子节点配置系统变量
vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib
之后保存退出,输入 source /etc/profile
使配置文件生效
查看java版本
java -version
2.7 hadoop安装
2.7.1 安装hadoop
到hadoop官网下载hadoop安装包,拷贝到主节点上
这里用的版本为hadoop-3.2.2
cd /opt
hadoop-3.2.2.tar.gz
输入解压缩命令:
tar -zxvf hadoop-3.2.2.tar.gz
将解压后文件夹重命名移动到/usr/local/hadoop中:
mv hadoop-3.2.2 /usr/local/hadoop
2.7.2 配置系统环境变量
vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
之后保存退出,输入
source /etc/profile
使配置文件生效。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2.7.3 hadoop相关文件配置
hadoop配置文件所在目录为$HADOOP_HOME/etc/hadoop,此处HADOOP_HOME为hadoop安装目录,进入hadoop配置文件所在目录,修改相应配置文件。
1、hadoop-env.sh文件配置
cd /usr/local/hadoop/etc/hadoop
vim hadoop-env.sh
修改JAVA_HOME为当前jdk安装目录:
export JAVA_HOME="/opt/jdk1.8.0_171"
2、core-site.xml文件配置如下
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
fs.default.name
hdfs://master:9000
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
3、hdfs-site.xml文件配置如下
cd /usr/local/hadoop/etc/hadoop
vim hdfs-site.xml
dfs.replication
3
dfs.namenode.name.dir
file:/usr/local/hadoop/hdfs/namenode
dfs.datanode.data.dir
file:/usr/local/hadoop/hdfs/datanode
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/datanode</value>
</property>
</configuration>
4、 slaves文件配置如下
cd /usr/local/hadoop/etc/hadoop
vim workers
#删除localhost,添加下面内容
slave1
slave2
因为我们没有用到hadoop的yarn与mapreduce,所以hadoop相关配置到此结束。
2.7.4 发送hadoop安装包到各个从节点
输入命令scp -r /usr/local/hadoop/ root@slave1:/usr/local/hadoop,将hadoop安装包发送到slave1节点,发送的其他节点只需修改相应主机名即可。
scp -r /usr/local/hadoop/ root@slave1:/usr/local/hadoop
scp -r /usr/local/hadoop/ root@slave2:/usr/local/hadoop
然后修改对应从节点系统变量,方法参照第2步。
2.7.5 格式化namenode
在master主节点输入命令
hadoop namenode -format
格式化namenode,
多次格式化序列会出错
cd /usr/local/hadoop
rm -rf hdfs
rm -rf logs
2.7.6 启动hdfs
在master主节点输入命令
start-dfs.sh
启动hdfs
stop-dfs.sh
错误
错误1
but there is no HDFS_NAMENODE_USER defined. Aborting operation.
1、对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2、对于start-yarn.sh和stop-yarn.sh文件,添加下列参数
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
错误2
当主机使用ssh免密码登录时,弹出Warning:Permanently added (RSA) to the list of known hosts的警告
vim /etc/ssh/ssh_config
找到#StrictHostKeyChecking ask去掉注释,并把ask改为no即可
master: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
2.7.7 集群正确显示
master下 运行jps
出现NameNode和SecondaryNameNode
slave1和slave2下 运行jps
出现DataNode
http://10.10.65.34:9870/
2.8 scala安装
2.8.1 安装scala
在安装spark之前,我们需要先安装scala
安装版本scala3-3.1.1.tar.gz
输入解压命令
tar -zxvf scala3-3.1.1.tar.gz
将解压后文件夹重命名移动到/usr/local/scala中:
mv scala3-3.1.1 /usr/local/scala
2.8.2 配置系统环境变量
vim /etc/profile
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
source /etc/profile
scala -version
2.8.3 发送scala到从节点
scp -r /usr/local/scala/ root@slave1:/usr/local/scala
scp -r /usr/local/scala/ root@slave2:/usr/local/scala
同时修改系统环境变量
2.9 spark安装
2.9.1 安装spark
安装版本
spark-3.3.0-bin-hadoop3.tgz
tar -zxvf spark-3.3.0-bin-hadoop3.tgz
mv spark-3.3.0-bin-hadoop3 /usr/local/spark
2.9.2 配置系统环境变量
vim /etc/profile
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
2.9.3 spark相关文件配置
spark相关配置文件都在$SPARK_HOME/conf文件夹目录下,此处SPARK_HOME为Spark安装目录,进入Spark配置文件所在目录,修改相应配置文件。
cd /usr/local/spark/conf
(1)spark-env.sh文件配置
拷贝spark-env.sh.template到spark-env.sh,命令如下:
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
spark-env.sh文件配置如下:
export JAVA_HOME=/opt/jdk1.8.0_171
export SPARK_MASTER_IP=master
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_INSTANCES=2
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9000/historyServerForSpark/logs"
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/usr/local/spark/recovery"
注意:此处历史服务器日志存放地址为hdfs://master:9000/historyServerForSpark/logs,
在启动历史服务器前一定要确保该文件夹存在,
可以输入
hadoop fs -mkdir -p /historyServerForSpark/logs
来创建该文件夹。
(2)workers文件配置如下
拷贝workers.template到slaves,命令如下:
cp workers.template workers
vim workers
workers文件配置如下:
slave1
slave2
(3)spark-defaults.conf文件配置
拷贝spark-defaults.con.template到spark-defaults.conf,命令如下
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
spark-defaults.conf文件配置如下:
spark.eventLog.enabled=true
spark.eventLog.dir=hdfs://master:9000/historyServerForSpark/logs
spark.eventLog.compress=true
此处主要是历史服务器相关配置。
2.9.4 发送spark 安装包到各个从节点
scp -r /usr/local/spark/ root@slave1:/usr/local/spark
scp -r /usr/local/spark/ root@slave2:/usr/local/spark
从节点修改系统环境变量
vim /etc/profile
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
2.9.5 启动spark集群
进入SPARK_HOME/sbin目录,输入命令./start-all.sh,结果如下图所示:
cd /usr/local/spark/sbin
./start-all.sh
4040端口启动
2.9.6 启动历史服务器
首先确保历史服务器日志存放文件夹已创建,然后进入SPARK_HOME/sbin目录,输入命令./start-history-server.sh,结果如下图所示:
cd /usr/local/spark/sbin
./start-history-server.sh
./stop-history-server.sh
18080端口启动
2.9.7 检查spark集群、历史服务器是否启动成功
master下 运行jps
出现master和historyserver
slave1和slave2下 运行jps
出现worker
http://10.10.65.34:4040
2.9.8 运行spark pi
cd /usr/local/spark/bin
./spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--deploy-mode cluster \
--supervise \
--executor-memory 1G \
--total-executor-cores 2 \
../examples/jars/spark-examples_2.12-3.3.0.jar \
1000
版权归原作者 sunny_ice 所有, 如有侵权,请联系我们删除。