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