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

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

  • 1.Windows安装Hadoop
    • 1.1 配置环境变量
    • 1.2 下载相似版本的文件
  • 2. idea 进行远程连接操作
    • 2.1. 启动hive元数据服务
    • 2.2. hive.metastore.uris 配置

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")))
  }

参考文章

你可能感兴趣的:(Spark,hadoop,spark,hive)