小工具      在线工具  汉语词典  css  js  c++  java

windows上配置hadoop并通过idea连接本地spark和服务器spark

大数据,hadoop,windows,大数据 额外说明

收录于:152天前

hadoop下载与安装

请注意,这是在 Windows 上运行 Hadoop。如果你只是通过idea远程连接虚拟机上的Hadoop,请跳过。

hadoop下载官网

清华大学镜像下载

进入官网,点击Binary download,运行在Windows上。在 Apache 中下载东西时,通常有二进制版本和源版本。 Binary是编译过的,可以直接使用,而source是还没有编译过的源代码,需要自己编译。

在这里插入图片描述

镜像下载
在这里插入图片描述
选择合适的版本
在这里插入图片描述

解压

在这里插入图片描述
hadoop是分布式的,有datanode和namenode两个节点,需要新建目录代替

在这里插入图片描述

配置环境变量

一定要配置好hadoop的环境变量,否则启动时会出现如下错误:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

bin目录包含hadoop信息启动命令,sbin目录包含hadoop集群启动命令。 bin和sbin不需要配置。只需切换到相应目录并启动cmd即可。

修改配置文件

  1. 修改windows系统启动类 hadoop-env.cmd

在这里插入图片描述
在这里插入图片描述

将%JAVA_HOME%替换为java环境变量的路径。
将Program Files替换为PROGRA~1

在这里插入图片描述

  1. 修改配置文件(core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)

在这里插入图片描述

  • 核心站点.xml

在这里插入图片描述

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
  • hdfs-site.xml

在这里插入图片描述

  	<property>
		    <name>dfs.replication</name>
		    <value>1</value>
	  </property>


  <!--namenode 存放name table(fsimage)本地目录(需要修改)-->
    <property>
		<name>dfs.namenode.name.dir</name>
		<value>D:\SoftWares\Apache\apache-hadoop-3.2.3\hadoop-3.2.3\data\namenode</value>
	</property>


  <!--datanode存放block本地目录(需要修改)-->
  <property>
		<name>dfs.datanode.data.dir</name>
		<value>D:\SoftWares\Apache\apache-hadoop-3.2.3\hadoop-3.2.3\data\datanode</value>
	</property>

  • mapred-site.xml

在这里插入图片描述

<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
  • 纱线站点.xml

在这里插入图片描述

     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

初始化与启动

注意如果配置了环境变量可以直接运行命令,如果没有配置环境变量,则切换到对于目录在启动cmd。路径为~\hadoop-3.2.3\bin

输入hadoop version检查是否安装成功

在这里插入图片描述

输入hadoop namenode -format初始化hadoop

在这里插入图片描述
在这里插入图片描述
出现下面且\data\namenodecurrent目录·即为初始化成功。

在这里插入图片描述
在这里插入图片描述

数据目录是自定义目录

在cmd中执行start-all.cmd 命令,启动Hadoop,路径:~\hadoop\hadoop-3.2.3\sbin

在这里插入图片描述

如果sbin没有配置环境变量,则需要切换到对应目录。还可以为sbin配置环境变量。

在这里插入图片描述
输入start-all.sh启动:
在这里插入图片描述

运行成功后会出现四个窗口,分别是:yarn-resourcemanager、yarn-nodemanager、hadoop-namenode、hadoop-datanode。

在这里插入图片描述

参考自:windows下安装Hadoop就是这么简单

java.net.URISyntaxException: Illegal character in opaque part at index 2: D:\SoftWares\Apache\apache-hadoop-3.2.3\hadoop-3.2.3\data\namenode

信息: 没有运行的带有指定标准的任务。

如果出现上面两个错误则说明namenode的配置有问题。转到hdfs-site.xml

在这里插入图片描述

/是linux系统的路径配置,\是windows系统的路径配置,但要用\\

在这里插入图片描述
之后就可以正常启动了。

Could not locate Hadoop executable: D:\SoftWares\Apache\apache-hadoop-3.2.3\hadoop-3.2.3\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems

hadoop/bin 目录中缺少 winutils.exe 和 hadoop.dll

下载链接

下载后复制到bin目录下:

在这里插入图片描述

这两个文件必须由虚拟机和窗口都上传。

启动spark

Hadoop安装在Windows上,但一般不需要启动。如果需要使用MapReduce或者Spark计算框架,可以直接调用。

切换目录到hadoop安装目录的bin目录:

在这里插入图片描述
在这里插入图片描述
这些都是相关的命令,其中cmd后缀的是windows环境的,没有后缀名的默认是.sh为linux系统的命令。以spark为例,双击spark-shell.com启动scala版的spark:

在这里插入图片描述
双击pyspark.cmd启动python版的spark:

在这里插入图片描述

如果能够正常启动,则可以调用该接口进行1相关1计算。连续按两次Ctrl+C可停止服务。

idea连接本地spark

配置好上面的环境后通过idea创建scala项目。可参考sbt编程语言scala构建工具配置及项目构建(含网盘下载)

  1. 创建scala项目

  2. pom导入spark依赖

在这里插入图片描述

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.13</artifactId>
      <version>3.3.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.13</artifactId>
      <version>3.3.1</version>
      <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming_2.13</artifactId>
      <version>3.3.1</version>
      <scope>provided</scope>
    </dependency>

依赖需要根据版本对应,否则会出现冲突。

Maven地址:https://mvnrepository.com/

在这里插入图片描述

注意这里的spark必须和虚拟机上的一致。

  1. 编写连接测试代码

抱歉,小编还在学习阶段。这部分还没有成功。有些问题还没有解决。由于时间有限,我暂时转用Java语言。我会跟进新的 Scala 语言。

scala和java的maven版本的依赖是一样的,接口也可以共享。

class sparkConnect {
    

    sparkConnect() {
    
		
		//配置本地spark并命名
        JavaSparkContext sc = new JavaSparkContext("local", "thisSpark");
        List<Integer> list = new ArrayList<Integer>();
        list.add(1); list.add(2); list.add(3);

        //内存中获取数据常见rdd
        JavaRDD<Integer> rdd = sc.parallelize(list);

        //rdd计算
        JavaRDD<Integer> listPlus = rdd.map(y->y+5);
		
		//打印
        System.out.println("list is:" + list);
        System.out.println("listPlus is:"+ listPlus);
        System.out.println("the relation is list plus five = listPlus");


    }

    public static void main(String[] args) {
    
        sparkConnect sparkConnect = new sparkConnect();
    }

Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

运行上述的测试代码会报错,未能加载winutils.exe文件,可是在之前的配置中已经添加了该引用,这是由于Windows环境变量默认识别cmd命令的,其他的无法执行,例如在redis中,光使用redis-server就是出现该系统不支持一个道理。

解决办法是给这个exe单独配置环境变量

在这里插入图片描述

在这里插入图片描述
在此之前一定要确认环境变量无误

在这里插入图片描述

配置之后就可以运行测试项目了。可以是小编这里又遇到了一个问题,配置了winutils.exe还是无法找到。如下图:

在这里插入图片描述
在调试的过程中发现启动的spark版本是2.4.4也就是pom中加载的版本,而本地的spark版本是3.3.1的版本不一致,匹配不了。

在这里插入图片描述
修改pom的文件版本,注意与本地对应

在这里插入图片描述

修改后就可以成功启动了:
在这里插入图片描述

如上图所示,本地saprk连接已经实现,可以通过java独立参考程序调用spark。

class sparkConnect {
    

    sparkConnect() {
    

        JavaSparkContext sc = new JavaSparkContext("local", "thisSpark");
        List<Integer> list = new ArrayList<Integer>();
        list.add(1); list.add(2); list.add(3);

        //内存中获取数据常见rdd
        JavaRDD<Integer> rdd = sc.parallelize(list);

        //rdd计算
        JavaRDD<Integer> listPlus = rdd.map(y->y+5);

        System.out.println("list is:" + list);
        System.out.println("listPlus is:"+ listPlus);
        System.out.println("the relation is list plus five = listPlus");


    }

    public static void main(String[] args) {
    
        sparkConnect sparkConnect = new sparkConnect();
    }

}

回顾测试代码,这已经是调用spark实现简单计算最精简的步骤了。创建的sc对象可交互式的sc是等效的。如下:

在这里插入图片描述
它们的区别在于一个是Java语言的调用对象,一个是Scala的调用对象。

idea远程连接spark

远程连接spark首先要了解Spark部署方法这边文章讲的很详细,感谢作者!

在这里插入图片描述

JavaSparkContext sc = new JavaSparkContext("local", "thisSpark");

构造方法中第一个参数是主机,第二个参数是名称,关键就在于local参数,来看一段scala连接的代码:

 def main(args: Array[String]): Unit = {
    
    val spark = SparkSession
      .builder
      .appName("Spark Pi")
      .master("spark://172.21.212.114:7077")
      .config("spark.jars","E:\\work\\polaris\\polaris-spark\\spark-scala\\target\\spark-scala-1.0.0.jar")
      .config("spark.executor.memory","2g")
      .config("spark.cores.max","2")
      .config("spark.driver.host", "172.21.58.28")
      .config("spark.driver.port", "9089")
      .getOrCreate()

注意设置主控参数。由于该库是公共的,Java也可以尝试一下:

切换到spark的conf目录查看默认配置

在这里插入图片描述
查看运行节点在
在这里插入图片描述

JavaSparkContext sc = new JavaSparkContext("spark://192.168.223.128:7077", "thisSpark");

我尝试了很多种写法,包括http、仅IP、还有spark开头的,但都没有成功。所以远程连接失败,老大知道怎么连接。

. . .

相关推荐

额外说明

left join-on-and 与 left join-on-where

  . 摘要 关于这两种写法的重要知识点摘要如下: left-join 时,即使有相同的查询条件,二者的查询结果集也不同,原因是优先级导致的,on 的优先级比 where 高 on-and 是进行韦恩运算连接生成临时表时使用的条件 where 是全部连接

额外说明

Linux基础 第一节 第二课

[toc] Linux 基础命令 获取 IP 地址 ( 可以连接互联网 ) # ifconfig 类似于我们在 Win 系统下, 查看 IP 地址的命令 # ipconfig Ping 网址    

额外说明

openstack拉取kolla docker镜像到阿里云镜像仓库

openstack拉取 kolla docker镜像 kolla的两个项目 openstack kolla项目用来将相关组件打包到docker镜像中。 openstack kolla-ansible项目用来基于ansible部署openstack集群。

额外说明

解决TypeError: ctx.injections.tableRoot.$scopedSlots[ctx.props.column.slot] is not a function

TypeError: ctx.injections.tableRoot.$scopedSlots[ctx.props.column.slot] is not a function 出现这个原因是因为我在删代码的时候没注意到引用的地方 因为我在这引用了,却

额外说明

course2610_lab20_Linux 设备操作命令及代码

Linux 查看设备的命令 uname -a 查看内核、操作系统、CPU 信息 cat /proc/cpuinfo 查看 CPU 信息 lspci -tv 列出所有 PCI 设备(Ubuntu 的安装包 pciutils ,sudo apt-get in

额外说明

Java案例:最小覆盖圆问题

文章目录 一、提出任务 - 最小覆盖圆 (一)描述 (二)输入 (三)输出 (四)样例 输入 输出 二、完成任务 (一)编程思路 (二)编写代码,实现功能 (三)运行程序,查看结果 一、提出任务 - 最小覆盖圆 (一)描述 给出平面上 N ( N ≤ 1

额外说明

使用一个SOL取出每位同学最高分的一条记录

来自群友的题目,做个笔记记录答题过程~~~~ 1、需求:使用一个SOL取出每位同学最高分的一条记录,如果某个同学最高分出现多条则取出序号值较大的一条记录。最终结果应与下表相同。 2、建表语句: CREATE TABLE `kmb` ( `id` int

额外说明

Docker部署spring boot项目

部署docker时,首先要保证一般部署可以访问。 docker命令部署spring boot项目 目前主流的Java框架是spring,软件包是jar包。只需要搭建一个基于jar的容器环境即可。打包成jar后,只需要jvm即可运行,因此需要使用jdk作为

额外说明

ios 图片裁剪

1. 在此演示中,您选择相册和拍摄的照片,裁剪它们,然后显示它们。 主要通过LJPhotoCutViewController类用于裁剪照片,然后通过block返回裁剪后的照片。具体用法如下: LJPhotoCutViewController *_cutV

额外说明

ios巧妙利用UIButton的UIControlStateSelected属性

一般可以巧用UIBUtton的UIControlStateSelected属性,来设置用户界面按钮选中背景图片。 - (UIButton *)normalButton { if (!_normalButton) { UII

ads via 小工具