windows安装spark和hadoop

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值