在inteillj idea中使用Spark操作Hive
阿新 • • 發佈:2022-05-06
前言:
都知道,小編前面已經簡單介紹過在windows下hadoop和hive環境搭建和基本使用。這次的Spark有點突兀,但是也可以先忽略,重要的是先在IDEA中安裝bigData外掛連線hadoop已經HDFS,而後再簡單介紹使用Spark操作Hive。
Big Data Tools安裝:
1. 點選File, 選擇Settings,再選擇Plugins搜尋Big Data Tools,最後下載安裝。
2. 下載完畢後,底部和右側欄會多出Hadoop或Big Data Tools的選項。
連線方法:
1. 進入hadoop的sbin目錄,start-all啟動成功,開啟web控制檯127.0.0.1:50070(預設),記住如下標誌的節點地址,後面hdfs連線的就是這個。
2. 只要hadoop啟動成功後,開啟IDEA的hadoop其實就可以正常自動連線了。
3. 或者開啟右側欄的Big Data Tools,新增一個連線,Hadoop。
4. 連線Hdfs。
(1). 點選右側欄Big Data Tools新增Hdfs。
(2). 重要的就是Authentication type,選擇Explicit uri。File system URI填寫的就是上面控制檯的節點地址。
(3). 連線成功後就可以清晰的看到HDFS的目錄,並且可以建立,刪除和上傳。不過需要對指定路徑授權。
Hive操作:
關於操作Hive, 以下基於Maven構建Scala專案。專案建立和Hive就略過了,好像在Kafka一文中介紹過如何新建Maven的Scala,而Hive的產品還是原理介紹網上比較多,以下主要是小編的日誌式記錄,所以以過程居多,那麼就開始了。
1. pom.xml新增如下依賴並安裝(其實是我整個檔案,不需要的可以根據註釋刪除)。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>maven_scala_test</artifactId>
<version>1.0-SNAPSHOT</version>
<name>${project.artifactId}</name>
<description>My wonderfull scala app</description>
<inceptionYear>2015</inceptionYear>
<licenses>
<license>
<name>My License</name>
<url>http://....</url>
<distribution>repo</distribution>
</license>
</licenses>
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<encoding>UTF-8</encoding>
<scala.version>2.11.5</scala.version>
<scala.compat.version>2.11</scala.compat.version>
<spark.version>2.2.0</spark.version>
<hadoop.version>2.6.0</hadoop.version>
<hbase.version>1.2.0</hbase.version>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.specs2</groupId>
<artifactId>specs2-core_${scala.compat.version}</artifactId>
<version>2.4.16</version>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_${scala.compat.version}</artifactId>
<version>2.2.4</version>
<!-- <scope>test</scope>-->
</dependency>
<!--scala-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<!-- spark -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>${spark.version}</