hadoop和spark配置问题记录

文章讲述了在配置Hadoop和Spark时遇到的问题,如SparkWebUI无法访问、Worker信息缺失以及HadoopLiveNodes显示为0的故障。这些问题的解决方法包括正确启动Spark脚本、修改环境变量和hosts文件。此外,还介绍了如何在IntelliJIDEA中配置Scala和Maven项目,以及在conda环境中搭建PySpark的步骤,包括安装miniconda3、选择兼容的Python版本、安装numpy库,并配置相应的环境变量。

hadoop和spark配置问题记录

Spark的WebUI访问不了

直接启动的start-all.sh是环境变量中配置的hadoop的脚本,不是spark的,因此启动spark的start-all.sh脚本即可。

Spark看不到Worker信息

启动Spark在UI界面上看不到worker节点的信息_潇洒哥WH3的博客-优快云博客

此问题和下一问题:“Hadoop的Live Nodes显示为0” 是同一问题。

根本原因同“Hadoop的Live Nodes显示为0”,临时解决方法是:修改hadoop的start-env.sh,将其中的MASTER_IP改为MASTER_HOST,并将Master名改为Master的IP。

Hadoop的Live Nodes显示为0

Hadoop集群活跃节点为0解决方案_Ichimaru_Gin_的博客-优快云博客

原因是/etc/hosts中配置的IP发生了覆盖,只需要去掉127.0.0.1的masterIP就行,同时保留master和slave的真实IP

在这里插入图片描述

IDEA配置Scala+Maven项目相关

配置PySpark环境

spark自带pyspark,不过版本不一定最新,以下采用黑马程序员的做法,在conda虚拟环境中安装。

1、安装conda发行版,这里选择miniconda3

miniconda安装及环境创建(Linux)_linux miniconda_蓬蓬奇的博客-优快云博客

2、安装python

注意安装的Python版本要和自己的pyspark兼容。我的是spark2.4.4,实测python3.8不兼容,python3.6兼容。

conda install python=3.6

这一步会自动安装pip

3、安装numpy库

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/

4、配置pyspark环境变量

需要配置3处地方:

首先配置黑马程序员中说的这两处(~/.bashrc和/etc/profile),记得source /etc/profile更新环境变量

export PYSPARK_PYTHON=/home/hadoop/miniconda3/envs/pyspark/bin/python3

运行spark安装目录bin下的pyspark程序,如果显示的python版本是我们指定的,则无需配置下面的,否则配置:

打开spark安装目录conf下的spark-env.sh,发现存在PYSPARK_PYTHONPYSPARK_DRIVER_PYTHON变量,修改为:

export PYSPARK_DRIVER_PYTHON=/home/hadoop/miniconda3/envs/pyspark/bin/python3
export PYSPARK_PYTHON=/home/hadoop/miniconda3/envs/pyspark/bin/python3
### 配置SparkHadoop基础之上 为了在现有的Hadoop环境中成功部署运行Spark应用,需要完成一系列必要的配置调整。以下是关于如何实现这一目标的关键点: #### 1. 创建并初始化`SparkConf` 当希望避免硬编码某些配置项时,可以通过动态方式创建一个空的`SparkConf`对象,并通过API设置所需的属性[^1]。例如,在启动集群之前,可以指定与Hadoop兼容的相关参数。 ```scala val conf = new SparkConf() .set("spark.hadoop.fs.defaultFS", "hdfs://namenode:8020") .set("spark.hadoop.mapreduce.input.fileinputformat.split.maxsize", "134217728") // 初始化SparkContext val sc = new SparkContext(conf) ``` 上述代码片段展示了如何利用`SparkConf`来定义特定于Hadoop环境的选项,比如默认文件系统路径以及输入分片的最大尺寸。 --- #### 2. 设置Oozie工作流支持多令牌认证 对于依赖Apache Oozie调度器的应用程序而言,必须确保其能够获取到所有必需的安全令牌以便正常访问各类服务资源[^2]。这包括但不限于YARN Resource Manager、本地/远程HDFS存储位置以及其他可能涉及的服务组件(如Hive或HBase)。 具体操作如下所示: - 编辑作业XML描述文档中的`<action>`节点部分; - 添加对应的数据源URI地址及其关联的身份验证机制说明; 这样做有助于简化跨平台协作流程的同时也增强了系统的整体安全性水平。 --- #### 3. 清理容器日志策略优化建议 为了避免长时间积累下来的无用历史记录占用过多磁盘空间,默认情况下不会自动删除旧版的日志文件副本[^3]。因此推荐采取以下措施加以改进: 更新全局范围内的yarn-site.xml配置文件内容之后重启相应名称服务器进程即可生效。值得注意的是即使完成了以上步骤仍然有可能存在遗留数据未被及时清除的情况发生所以还需要定期执行手动干预清理任务以维持良好的性能表现状态. --- #### 4. JVM重用功能启用指南 适当开启JVM复用模式可以帮助减少频繁加载卸载带来的额外开销从而提升整个计算框架的工作效率[^4]. 只需简单修改mapred-site.xml内部相关字段数值便可轻松达成目的 : ```xml <property> <name>mapreduce.job.jvm.numtasks</name> <value>15</value> <description>控制单个jvm可重复使用的最大次数.</description> </property> ``` 此处我们将该值设定为15意味着每一个独立java虚拟机最多允许连续处理十五批次子任务单元后再予以释放销毁回收再利用节省宝贵硬件算力成本投入产出比更高更经济实惠划算得多! --- ### 总结 综上所述,合理规划好各项技术细节方面的安排才能充分发挥出各自优势特点最大化业务价值创造潜力无限可能性等待探索发现...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值