Hadoop与Spark以及那些坑

本文记录了在搭建Hadoop与Spark平台过程中遇到的问题及解决方法,建议使用物理机进行伪分布式配置。详细步骤包括:选择物理机而非虚拟机,安装Hadoop涉及Linux基础操作、JDK配置、Hadoop环境变量设置等,最后启动YARN。后续将介绍Spark的安装与配置以及Python编程环境的搭建。

这两天在搭建Hadoop与Spark的平台,要求是能够运行Spark,并且用python编程。笔者也不打算写一个很详细的细节教程,简单做一个笔记blog。

1.选择

        笔者一开始是在虚拟机上搭建的,创建了三个ubuntu虚拟机,然后开始布置分布式系统,但是,后来发现,资源完全不够用。笔者台式机16G内存,2T硬盘,i7第四代处理器,然而,还是被hadoop拖死。

        所以,笔者建议,用物理机器,而且只用一台。作为学习,我们用伪分布式完全就可以了。

2.安装Hadoop

    这个部分其实不是那么难,但是前提是你得有linux基础。基本就是那么几个步骤:

1 )查看自己的ip,指令ifconfig

2)修改/etc/hostname中设备的名字,比如master什么的

3)为以后的ssh做准备,最好也改一下/etc/hosts中的名称

4)把hadoop的文件包解压,推荐在Home下

5)安装JDK,其实就是解压。在/etc/profile中加入JDK的环境变量:

export JAVA_HOME=/opt/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin

6)配置Hadoop,其实就是修改配置文件,配置文件在/etc下的hadoop里面。

1、hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.6.0_45
2、yarn-env.sh
export JAVA_HOME=/opt/modules/jdk1.6.0_45
3、mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.6.0_45
4、core-site.xml
<property>		 
	<name>fs.default.name</name>
	<value>hdfs://hadoop-yarn.dragon.org:8020</value>
</property>

<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/modules/hadoop-2.2.0/data/tmp</value>
</property>
5、hdfs-site.xml
	<property>		
	<name>dfs.replication<
<think>嗯,用户正在Windows系统上寻找安装SparkHadoop的详细指南。从他们提供的引用来看,他们似乎已经做了一些初步调研,但需要更系统化的步骤说明。用户可能是个数据工程师或学生,正在本地搭建大数据开发环境。考虑到Windows并非Hadoop/Spark的原生支持平台,他们可能会遇到路径权限、环境变量等特殊问题,需要特别强调这些。让我梳理几个关键点:1.JDK是首要前提,引用[3]提到需要配置hadoop-env.cmd中的JAVA_HOME,说明版本兼容性很重要2.引用[1]和[2]都提到要下载特定版本的二进制包,且Hadoop需要winutils补丁3.用户提供的引用[3]还提示了Hadoop配置文件修改的细节注意到引用内容存在版本差异(Spark3.1.2vsHadoop2.7.7),实际安装时需要保持版本兼容性。查证官网得知Spark3.1.x通常兼容Hadoop3.2+,这点必须在回复中明确说明。安装流程需要分层设计:先解决Java环境→配置Hadoop核心(特别强调winutils的作用)→再安装Spark。测试环节要加入简单的HDFS操作和SparkShell验证,因为用户引用的材料里缺少验证步骤。环境变量配置部分要格外详细,观察到用户引用[2]显示他们可能曾配置失败(D:adasoftware这样的异常路径)。回复时需要规范路径命名规则,避免空格和中文。最后需要提醒安全模式关闭这个隐形——这是Windows特有且容易忽略的关键点。</think> 以下是根据官方推荐实践整理的**Windows下Spark + Hadoop完整安装教程**(基于最新稳定版),已规避常见环境配置陷阱: --- ### 一、环境准备(必做) 1. **安装JDK 11+** ```powershell choco install openjdk11 --confirm # 推荐用Chocolatey安装 ``` ▸ 验证:`java -version`(需显示11+版本)[^3] 2. **安装Python 3.8+**(PySpark需要) ```powershell winget install Python.Python.3.10 ``` --- ### 二、Hadoop安装(Hadoop 3.3.6为例) > 🔑 Windows需额外组件支持HDFS 1. 下载Hadoop: [官网下载 hadoop-3.3.6.tar.gz](https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz) 2. 解压到无空格路径(如`D:\hadoop-3.3.6`) 3. **安装winutils**: ```powershell # 下载winutils.exe Invoke-WebRequest https://github.com/cdarlint/winutils/raw/master/hadoop-3.3.6/bin/winutils.exe -OutFile D:\hadoop-3.3.6\bin\winutils.exe ``` 4. 配置环境变量: ```dos setx HADOOP_HOME "D:\hadoop-3.3.6" /M setx PATH "%PATH%;%HADOOP_HOME%\bin" /M ``` 5. 修改`%HADOOP_HOME%\etc\hadoop\hadoop-env.cmd`: ```dos set JAVA_HOME="C:\Program Files\OpenJDK\jdk-11.0.21" # 替换实际路径 ``` --- ### 三、Spark安装(Spark 3.5.1为例) 1. 下载Spark: [官网下载 spark-3.5.1-bin-hadoop3.tgz](https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz) 2. 解压到无空格路径(如`D:\spark-3.5.1`) 3. 配置环境变量: ```dos setx SPARK_HOME "D:\spark-3.5.1" /M setx PATH "%PATH%;%SPARK_HOME%\bin" /M ``` --- ### 四、验证安装 ✅ 1. **测试Hadoop**: ```powershell hadoop version # 应显示Hadoop 3.3.6 hdfs namenode -format # 首次初始化(仅需执行1次) ``` ▸ 若报错,检查`winutils.exe`权限:`winutils.exe chmod 777 C:\tmp\hive` 2. **测试Spark**: ```powershell spark-shell # 启动Scala交互环境 >>> sc.version # 显示"3.5.1" >>> 1+1 # 返回2即成功 ``` --- ### 常见问题解决 | 错误类型 | 解决方案 | |---------------------------|--------------------------------------------------------------------------| | `java.io.IOException: Could not locate executable` | 确认`winutils.exe`在`%HADOOP_HOME%\bin`中 | | `HADOOP_HOME not set` | 检查环境变量配置,重启CMD | | `NativeIO$Windows access0` | 运行:`winutils.exe chmod -R 777 C:\tmp` | > 💡 关键提示:所有**安装路径禁止包含空格或中文**,避免权限问题需手动执行`winutils.exe chmod 777 [目录]` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱塘小甲子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值