1. 程式人生 > 其它 >在inteillj idea中使用Spark操作Hive

在inteillj idea中使用Spark操作Hive

前言:

         都知道,小編前面已經簡單介紹過在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}</version>