Window 环境连接虚拟机中Hadoop及Spark集群

1.Windows安装Hadoop

在windows上把hadoop的压缩包解压到一个没有空格的目录下,比如是D盘根目录

1.1 配置环境变量

HADOOP_HOME=D:\hadoop-2.7.7
Path下添加 %HADOOP_HOME%\bin

1.2 下载相似版本的文件

hadoop.dll #存放在C:\Windows\System32 目录下
winutils.exe #存放在%HADOOP_HOME%\bin 目录下

hadoop.dll及winutils.exe下载地址

2. idea 进行远程连接操作

查了很多帖子,说要把hive-site.xml, hdfs-site.xml, core-site.xml配置放在resource目录中,就可以进行spark-sql操作hive了,但是我这边总是在idea中创建了hiveware目录,并没有连接远程集群hive, 最终其实只需两步简单的操作:

2.1. 启动hive元数据服务

hive --service metastore &

2.2. hive.metastore.uris 配置

我的集群中hive-site.xml没有配置hive.metastore.uris,且idea的resources目录中也没有放hive-site.xml, hdfs-site.xml, core-site.xml配置文件,而是只在创建SparkSession时配置就行了

  def main(args: Array[String]): Unit = {

    // 1. 创建SparkSession对象
    val conf = new SparkConf().setMaster("local[*]").setAppName("******")
    val spark: SparkSession = SparkSession.builder().config(conf)
      .config("hive.metastore.uris", "thrift://hadoop:9083") // 
      // .config("hive.metastore.warehouse.dir", "hdfs://hadoop:9000/user/hive/warehouse") 不需要
      .enableHiveSupport().getOrCreate()

    spark.sql("select * from test.ad_click_log").show()

    // 2. 连接集群mysql
    // 创建Proterties对象
    val connectionProperties: Properties = new Properties()

    // 登录数据库的用户名
    connectionProperties.put("user", "root")
    // 登录数据库的密码
    connectionProperties.put("password", "assiduity")

    // 参数分别为:数据库url 表名  连接数据库的用户名,密码配置信息
    val df: DataFrame = spark.read.jdbc("jdbc:mysql://192.168.240.128:3306/test?rewriteBatchedStatements=true&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true", "student", connectionProperties)
    df.show()


    // 3. 连接HDFS,读取其数据
    val config = new Configuration()
    config.set("fs.defaultFS", "hdfs://192.168.240.128:9000")
    val fs = FileSystem.get(config)
    println(fs.exists(new Path("hdfs://192.168.240.128:9000/user/hive/warehouse/ad_info/1.txt")))
  }

参考文章

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值