Windows安装Hadoop和Spark!一站式详解!包罗Java测试代码

打印 上一主题 下一主题

主题 1114|帖子 1114|积分 3342

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
检察Hadoop、Spark、Java对应版本

访问Spark官网找到Spark版本

Spark官网地址:Documentation | Apache Spark
访问后,找到自己的版本,点进去


点进去后可以在这里看到该版本的操纵系统、代码语言版本等信息



找到该版本关联的Hadoop版本等信息

点击【more】【Building Spark】


进去后点【Specifying the Hadoop Version and Enabling YARN】


这里可以看到Hadoop等关联的版本信息


安装JAVA JDK

从上面的信息可以找出,支持JAVA8、JAVA11、JAVA17。这里以JAVA8为例
这里先不补充了,后续偶然间我再来补充。设置JAVA_HOME环境变量就行。
安装Hadoop

从上面的信息可以找出,支持的Hadoop版本。这里以Hadoop3.3.5为例
下载安装Hadoop

Hadoop官网:Apache Hadoop
访问Hadoop下载地址:Apache Archive Distribution Directory ,并找到对应版本


进到对应的版本文件夹里,下载tar.gz文件


下载后直接解压到对应的目录(请自己找合适的目录)。我这里是D盘下面,以是解压后的路径为D:\hadoop-3.3.5。


下载安装winutils

winutilsGithub:https://github.com/cdarlint/winutils
访问winutilsGithub网站,找到和Hadoop对应的版本


下载对应的winutils.exe和hadoop.dll


将winutils.exe和hadoop.dll拷贝到Hadoop/bin目录下


设置Hadoop环境变量

打开环境变量设置


添加HADOOP_CONF_DIR环境变量

这里的值是安装Hadoop的目录

添加HADOOP_HOME环境变量

这里的值是安装Hadoop的目录

添加HADOOP_USER_NAME环境变量


在环境变量path中增长%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin

HADOOP_HOME就是上面设置的

设置Hadoop文件

进入Hadoop设置文件目录


检查hadoop-env.cmd文件JDK的设置,通常无需改动

  1. set JAVA_HOME=%JAVA_HOME%
复制代码

设置core-site.xml

  1. <configuration>
  2.         <property>
  3.         <name>fs.defaultFS</name>
  4.         <value>hdfs://localhost:9000</value>
  5.     </property>
  6.     <property>
  7.         <name>hadoop.tmp.dir</name>
  8.         <value>D:\hadoop-3.3.5\data\tmp</value>
  9.     </property>
  10. </configuration>
复制代码
这里的tmp文件夹一样平常没有,直接去Hadoop安装目录下面建一个就好,在其它目录建也可以,这里写对应的目录就行


设置hdfs-site.xml

  1. <configuration>
  2.     <property>
  3.         <name>dfs.namenode.name.dir</name>
  4.         <value>D:\hadoop-3.3.5\data\namenode</value>
  5.     </property>
  6.         <property>
  7.         <name>dfs.datanode.data.dir</name>
  8.         <value>D:\hadoop-3.3.5\data\datanode</value>
  9.     </property>       
  10.         <property>
  11.         <name>dfs.replication</name>
  12.         <value>1</value>
  13.     </property>
  14.     <property>
  15.            <name>dfs.permissions.enabled</name>
  16.            <value>false</value>
  17.         </property>
  18. </configuration>
复制代码
这里的namenode和datanode文件夹一样平常没有,直接去Hadoop安装目录下面建一个就好,在其它目录建也可以,这里写对应的目录就行



设置mapred-site.xml

  1. <configuration>
  2.     <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>yarn</value>
  5.     </property>
  6. </configuration>
复制代码

设置yarn-site.xml

  1. <configuration>
  2.     <property>
  3.         <name>yarn.nodemanager.aux-services</name>
  4.         <value>mapreduce_shuffle</value>
  5.     </property>
  6.     <property>
  7.         <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
  8.         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  9.     </property>
  10.     <property>
  11.         <name>yarn.resourcemanager.hostname</name>
  12.         <value>localhost</value>
  13.     </property>
  14. </configuration>
复制代码

格式化NameNode 

打开Windows cmd下令运行窗口,输入hdfs namenode -format

运行结果如下所示
  1. 2022-04-15 21:21:54,046 INFO snapshot.SnapshotManager: SkipList is disabled
  2. 2022-04-15 21:21:54,063 INFO util.GSet: Computing capacity for map cachedBlocks
  3. 2022-04-15 21:21:54,063 INFO util.GSet: VM type       = 64-bit
  4. 2022-04-15 21:21:54,064 INFO util.GSet: 0.25% max memory 889 MB = 2.2 MB
  5. 2022-04-15 21:21:54,064 INFO util.GSet: capacity      = 2^18 = 262144 entries
  6. 2022-04-15 21:21:54,108 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
  7. 2022-04-15 21:21:54,109 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
  8. 2022-04-15 21:21:54,109 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
  9. 2022-04-15 21:21:54,133 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
  10. 2022-04-15 21:21:54,133 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
  11. 2022-04-15 21:21:54,139 INFO util.GSet: Computing capacity for map NameNodeRetryCache
  12. 2022-04-15 21:21:54,139 INFO util.GSet: VM type       = 64-bit
  13. 2022-04-15 21:21:54,140 INFO util.GSet: 0.029999999329447746% max memory 889 MB = 273.1 KB
  14. 2022-04-15 21:21:54,140 INFO util.GSet: capacity      = 2^15 = 32768 entries
  15. 2022-04-15 21:22:03,246 INFO namenode.FSImage: Allocated new BlockPoolId: BP-9220273-192.168.179.1-1650028923233
  16. 2022-04-15 21:22:03,275 INFO common.Storage: Storage directory D:\Development\Hadoop\data\namenode has been successfully formatted.
  17. 2022-04-15 21:22:03,330 INFO namenode.FSImageFormatProtobuf: Saving image file D:\Development\Hadoop\data\namenode\current\fsimage.ckpt_0000000000000000000 using no compression
  18. 2022-04-15 21:22:03,560 INFO namenode.FSImageFormatProtobuf: Image file D:\Development\Hadoop\data\namenode\current\fsimage.ckpt_0000000000000000000 of size 391 bytes saved in 0 seconds .
  19. 2022-04-15 21:22:03,602 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
  20. 2022-04-15 21:22:03,616 INFO namenode.NameNode: SHUTDOWN_MSG:
  21. /************************************************************
  22. SHUTDOWN_MSG: Shutting down NameNode at Coding/192.168.179.1
  23. ************************************************************/
复制代码
这里运行如果出错了,报异常的话

1.检查JAVA_HOME环境变量

    cmd 运行 echo %JAVA_HOME%,看看输出是否正常

2.检查HADOOP_HOME环境变量

    cmd 运行 echo %HADOOP_HOME%,看看输出是否正常

3.检查winutils版本是否和Hadoop版本对应上,并且把winutils.exe和hadoop.dll拷贝到Hadoop/bin目录下了

启动hadoop集群

进入Hadoop安装目录的sbin目录,在地址栏输入cmd,直接打开下令行窗口,并让目录在sbin目录下


执行start-all


成功后将启动下面的组件

运行检查

利用jsp可以检察进程


访问测试

访问http://localhost:9870


访问http://localhost:8088/cluster


安装Spark

   请选择自己合适的版本,我这里和上面的Hadoop版本对应
  下载 Spark 3.4.4 二进制文件

Spark官网:Downloads | Apache Spark

选择版本后点【Download Spark: spark-3.4.4-bin-hadoop3.tgz】


下载后解压到自己的安装目录,我这里是D盘,安装后的目录为D:\spark-3.4.4-bin-hadoop3


设置环境变量

设置SPARK_HOME环境变量,值为刚刚解压安装的目录


到path中添加%SPARK_HOME%\bin


在cmd运行spark-shell检测出是否可用

编写测试代码

上面的就完成了Hadoop和Spark安装,编写测试代码
添加pom依赖

  1. <dependency>
  2.     <groupId>org.apache.spark</groupId>
  3.     <artifactId>spark-core_2.12</artifactId>
  4.     <version>3.4.4</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>org.apache.spark</groupId>
  8.     <artifactId>spark-sql_2.12</artifactId>
  9.     <version>3.4.4</version>
  10. </dependency>
  11. <dependency>
  12.     <groupId>org.apache.hadoop</groupId>
  13.     <artifactId>hadoop-client</artifactId>
  14.     <version>3.3.5</version>
  15. </dependency>
复制代码
编写代码
  1. // 初始化 SparkSession
  2. SparkSession spark = SparkSession.builder()
  3.     .appName("Parquet to Excel")
  4.     .master("local[*]") // 本地运行
  5.     .getOrCreate();
  6.         
  7. // 设置 Parquet 文件路径
  8. String dataFilePath = "C:\\Users\\dell\\Desktop\\jiheFile"; // 替换为实际路径
  9. String originData = "origin_data"; // 替换为实际文件名
  10. String parquetFilePath = dataFilePath + FileSystems.getDefault().getSeparator() + originData;
  11.         
  12. // 输出的 Excel 文件名
  13. String outputFileName = "ParquetData.xlsx";
  14. Dataset<Row> data = spark.read().parquet(parquetFilePath);
复制代码


参考大佬文档:
Windows安装Hadoop3.x及在Windows环境下本地开发_windows安装利用hadoop-CSDN博客
spark踩坑记——windows环境下spark安装和运行_windows spark-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表