1. 程式人生 > >Mac單機Hadoop2.7下安裝Spark2.2+配置SparkSQL查詢Hive表+spark-sql CLI 查詢

Mac單機Hadoop2.7下安裝Spark2.2+配置SparkSQL查詢Hive表+spark-sql CLI 查詢

下面簡單記錄mac單機spark安裝測試的過程

  • 單機Mac安裝spark並做簡單yarn模式shell測試
  • 配置SparkSQL查詢Hive
  • spark-sql CLI 查詢Hive

一、安裝Spark

1-下載安裝scala

移動至/Users/使用者名稱xxx/Software/scala-2.10.4下

tar -zxvf scala-2.10.4.tgz

配置環境變數

vi ~/.bash_profile

export SCALA_HOME=/Users/使用者名稱xxx/Software/scala-2.10.4

export PATH=PATH:PATH:{SCALA_HOME}/bin

source

測試

scala -version

2-下載安裝Spark

http://spark.apache.org/downloads.html
下載spark-2.2.1-bin-hadoop2.7.tgz.
解壓至/Users/使用者名稱xxx/Documents/software/spark
spark-2.2.1 資料夾及子檔案的和使用者設為hadoop的安裝使用者如使用者名稱xxx

chown -R 使用者名稱xxx spark-2.2.1

修改conf資料夾spark-env.sh和slaves

cp spark-env.sh.template spark-env.sh

在spark-env.sh新增

export SCALA_HOME=/Users/使用者名稱xxx/Software/scala-2.10.4
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121-2.6.8.0.el7_3.x86_64
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/data/hadoop-2.7.3/etc/hadoop

具體可以執行下面的命令

chown -R 使用者名稱比如使用者名稱xxx spark2.2.1
cp spark-env.sh.template spark-env.sh echo "export SCALA_HOME=/Users/使用者名稱xxx/Software/scala-2.10.4" >> spark-env.sh echo "export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/home" >> spark-env.sh echo "export SPARK_MASTER_IP=localhost" >> spark-env.sh echo "export SPARK_WORKER_MEMORY=1g" >> spark-env.sh echo "export HADOOP_CONF_DIR=/Users/使用者名稱xxx/Documents/software/hadoop/hadoop-2.7.4/etc/hadoop" >> spark-env.sh

這裡單機不用配置slaves

二、啟動Spark並做簡單yarn模式的shell測試

1-啟動Spark

在sbin資料夾下執行, start-all.sh

localhost:~/Documents/software/spark/spark2.2.1/sbin$ jps. 
39793 Master
39826 Worker

2-WebUI

hive> load data local inpath '/Users/hjw/Documents/software/hive/student.txt' into table hive_test.student;
Loading data to table hive_test.student
OK
Time taken: 0.386 seconds
查詢資料
hive> select * from hive_test.student;
OK
1001 zhangsan
1002 lisi
Time taken: 1.068 seconds, Fetched: 2 row(s)

這裡寫圖片描述

3-啟動yarn mode的spark-shell

yarn模式啟動spark-shell

spark2.2.1/bin$ spark-shell –num-executors 1 –executor-memory 512m –master yarn-client

這裡寫圖片描述

4-執行測試

在spark-shell中執行

val file=sc.textFile("hdfs://localhost:9000/user/hive/warehouse/hive_test.db/student")
val rdd = file.flatMap(line => line.split("\t")).map(word => (word,1)).reduceByKey(_+_)
rdd.take(10)

scala> val file=sc.textFile("hdfs://localhost:9000/user/hive/warehouse/hive_test.db/student")
file: org.apache.spark.rdd.RDD[String] = hdfs://localhost:9000/user/hive/warehouse/hive_test.db/student MapPartitionsRDD[39] at textFile at <console>:24

scala> val rdd = file.flatMap(line => line.split("\t")).map(word => (word,1)).reduceByKey(_+_)
rdd: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[42] at reduceByKey at <console>:26

scala> rdd.take(10)
res12: Array[(String, Int)] = Array((zhangsan,1), (1001,1), (1002,1), (lisi,1))

這裡寫圖片描述
這裡寫圖片描述

5-退出spark-shell

退出spark-shell,輸入 “:quit”

6-關閉spark

/software/spark/spark2.2.1/sbin$ ./stop-all.sh
localhost: stopping org.apache.spark.deploy.worker.Worker
stopping org.apache.spark.deploy.master.Master

三、配置SparkSQL讀取Hive資料

為了讓Spark能夠連線到Hive資料倉庫,需要將Hive中的hive-site.xml檔案拷貝到Spark的conf目錄下,Spark通過這個配置檔案找到Hive的元資料,完成資料讀取。

1-已安裝單機Hive

hive –service metastore &

啟動hive shell查詢資料

hive> select * from student;
OK
1001 zhangsan
1002 lisi
Time taken: 1.164 seconds, Fetched: 2 row(s)

2-將Hive中hive-site.xml檔案拷貝到Spark的conf目錄

  • 將Hive中的hive-site.xml檔案拷貝到Spark的conf目錄
  • 重新啟動spark,在sbin資料夾下 執行:start-all.sh

3-啟動spark-shell

yarn模式啟動spark-shell,spark2.2.1/bin$ spark-shell –num-executors 1 –executor-memory 512m –master yarn-client

4-SparkSQL查詢Hive資料

scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
warning: there was one deprecation warning; re-run with -deprecation for details
sqlContext: org.apache.spark.sql.hive.HiveContext = [email protected]27210a3b

scala> sqlContext.sql(" SELECT * FROM hive_test.student")
18/01/11 22:15:00 WARN conf.HiveConf: HiveConf of name hive.metastore.hbase.aggregate.stats.false.positive.probability does not exist
18/01/11 22:15:00 WARN conf.HiveConf: HiveConf of name hive.llap.io.orc.time.counters does not exist
18/01/11 22:15:00 WARN conf.HiveConf: HiveConf of name hive.tez.task.scale.memory.reserve-fraction.min does not exist
18/01/11 22:15:00 WARN conf.HiveConf: HiveConf of name hive.orc.splits.ms.footer.cache.ppd.enabled does not exist
18/01/11 22:15:00 WARN conf.HiveConf: HiveConf of name hive.server2.metrics.enabled does not exist

。。。。。

18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.msck.path.validation does not exist
18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.tez.task.scale.memory.reserve.fraction does not exist
18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.compactor.history.reaper.interval does not exist
18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.tez.input.generate.consistent.splits does not exist
18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.server2.xsrf.filter.enabled does not exist
18/01/11 22:15:01 WARN conf.HiveConf: HiveConf of name hive.llap.io.allocator.alloc.max does not exist
res0: org.apache.spark.sql.DataFrame = [id: int, name: string]

以上有錯誤,報錯沒有啟動hive server,另開一個終端執行:hive –service hiveserver2 &,啟動hiveserver2

t:~$ hive --service hiveserver2 &
[1] 43667

spark-shell,重新查詢Hive

scala> sqlContext.sql(" SELECT * FROM hive_test.student")
res1: org.apache.spark.sql.DataFrame = [id: int, name: string]

scala> sqlContext.sql(" SELECT * FROM hive_test.student").collect().foreach(println)
[1001,zhangsan]
[1002,lisi]

四、spark-sql CLI 查詢

將hive-site.xml複製到spark的conf下,執行
下載mysql-connector-java-5.1.45-bin.jar,
https://dev.mysql.com/downloads/file/?id=474257
放在了/Users/xxx/Documents/software/spark/spark2.2.1/classpath

.spark2.2.1/bin$ spark-sql --driver-class-path /Users/xxx/Documents/software/spark/spark2.2.1/classpath/mysql-connector-java-5.1.45-bin.jar

嘗試新增--driver-class-path 也可以,比如直接執行spark-sql,或者spark-sql –master yarn

在啟動spark-sql時,如果不指定master,則以local的方式執行,master既可以指定standalone的地址,也可以指定yarn;
當設定master為yarn時(spark-sql –master yarn)時,可以通過http://hadoop000:8088頁面監控到整個job的執行過程;
注:如果在$SPARK_HOME/conf/spark-defaults.conf中配置了spark.master spark://hadoop000:7077,那麼在啟動spark-sql時不指定master也是執行在standalone叢集之上。

進入spark-sql

spark-sql> select * from hive_test.student;
。。。
1001    zhangsan
1002    lisi
Time taken: 3.306 seconds, Fetched 2 row(s)

開始一直報錯,多少嘗試好了,原因再找吧,抓緊睡覺

開始報can not access hivemeta 
後來多次嘗試可以了,什麼原因???
INFO metastore.ObjectStore: Setting MetaStore object pin classes with hive.metastore.cache.pinobjtypes="Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order"

相關推薦

Mac單機Hadoop2.7安裝Spark2.2+配置SparkSQL查詢Hive+spark-sql CLI 查詢

下面簡單記錄mac單機spark安裝測試的過程 單機Mac安裝spark並做簡單yarn模式shell測試 配置SparkSQL查詢Hive spark-sql CLI 查詢Hive 一、安裝Spark 1-下載安裝scala 移動至

centos6.7安裝ambari2.2.2出現的幾種問題

1.首先是語言問題,中文會導致報錯. 修改 /etc/sysconfig/i18n 改為LANG="en_US.UTF-8" 重啟 2.其次Ambari agent machine hostname (localhost.localdomain) does not matc

Win10 安裝Spark2.3,hadoop2.7 教程

0:安裝材料: (1) jdk-8u171-windows-x64 (2) scala-2.11.8 (3) spark-2.3.1-bin-hadoop2.7.rar (4) hadoop-2.7.6.rar 1:下載連結 2:安裝過程 (1) 安裝jdk環

虛擬機器安裝spark2.2+hadoop2.7.3

安裝VisualBox和作業系統 官網下載VisualBox安裝檔案.並安裝。 ubuntu官網下載最新版本得ubuntu安裝檔案。 visualBox新建64位ubuntu,並啟動虛擬機器。 跟著提示選擇ubuntu安裝檔案,就可以很順利的裝好系統了。

MAChadoop2.7.3安裝

1、準備環境 作業系統:Mac OS X 10.11.6  JDK:1.8.0_111 Hadoop:2.7.3 2、配置ssh 首先確認能夠遠端登入  系統偏好設定-共享   在終端執行 ssh-keygen -t rsa 一路回車就行  會在~/.ss

Linux安裝python-2.7 先zlib

2018-04-25 釋出 Linux下安裝python-2.7    py

CentOS6.5安裝Hadoop-2.7.3(圖解教程)

17. node 內容 apr ddbd 忽略 passwd frame shuffle 註:圖片如果損壞,點擊文章鏈接:https://www.toutiao.com/i6627365258090512909/ 安裝好虛擬機(3個節點) YUM源已安裝好、系統版本Ce

Window 7QT5.9.2安裝、QTCreator偵錯程式配置

QT 5.9.2下載 QT在5.9版本及以上將不同的編譯器的版本放在同一個檔案qt-opensource-windows-x86-5.9.x.exe中,所以只需要此檔案即可,連結:qt-opensource-windows-x86-5.9.2.exe。首次下載

Mac安裝VTK6.2,並在Qt上使用VTK

最近要在mac執行一個Qt工程,需要使用OpenCV+ITK+VTK,搞了好久才搞定。我只想說,vtk+itk在mac上的資料真心少,雖然osx和linux的安裝配置大體一樣,但是就是那些許差異埋得坑真是磨人(特別是對於身為新手而言,淚奔啊´╮(╯﹏╰)╭

在 CentOS 7.2 安裝 Hadoop 2.7.5 並搭建偽分散式環境的方法

資源下載 一、建立 Hadoop 使用者 建立 hadoop 使用者,並分配以使用者名稱為家目錄/home/hadoop,並將其加入到sudo使用者組,建立好使用者之後,以 hadoop 使用者登入: sudo useradd

CentOS 7安裝Kafka單機

詳細安裝步驟 下載kafka_2.10-0.10.0.0.tgz到/data/soft目錄 進入解壓目錄(在此為/data/app/Kafka/kafka_2.10-0.10.0.0/bin),啟動

CentOS 7安裝 Zookeeper單機

一、環境作業系統和軟體版本介紹 1.環境作業系統為CentOS Linux release 7.2.1511 (Core) 可用cat /etc/RedHat-release查詢 2.軟體版本 Zookeeper版本為:3.4.9 注意:請用java –ve

windows安裝apache2.2 + python2.7 + django(mod_wsgi整合)

網上好像沒有基於python2.7和django框架的集成於是決定靠google+baidu搞一個出來,畢竟開源是強大的。     作者:by海濤(ppgs8903)--------------2012.11.10  對應軟體使用版本: Apache:Apache 

Mac OSX 正確地同時安裝Python 2.7 和Python3

Python3出來了(其實已經出來很久了,暈)! 但是還是有很多library還是使用Python2.7,所以要怎麼在Mac裡面同時裝這兩個版本,並且和系統所使用的Python區分開來呢?今天要寫的是如何第一次就正確安裝好,並且切換預設版本,不在誤用系統的Python。 主要就這幾個步驟而已,不會太困難

mac OS 10.11.6 安裝 Hadoop 2.7.3

1、準備環境 作業系統:Mac OS X 10.11.6 JDK:1.8.0_111 Hadoop:2.7.3 2、配置ssh 首先確認能夠遠端登入 系統偏好設定-共享 在終端執行 ssh-keyagent -t 一

【Hadoop】Hadoop2.7.3安裝Hive 2.1.0

第一步: 下載最新的hive,直接去apache 裡面找hive2.1.0下載就行。 第二步,解壓到伺服器 tar zxvf apache-hive-2.0.0-bin.tar.gz mv apache-hive-2.0.0-bin /hom

【Redis】2、CentOS 7安裝 redis3.2.3安裝配置

sync 倉庫 ace /var/ 發現 wan sudo base str 一、redis源碼安裝 【更正】現在最新穩定的版本已經到了3.2.8 截至到2016.8.11,redis最新穩定版本為3.2.3.本篇文章我們就以此版本為基礎,進行相關的講解。 下載redis源

【原創 Spark動手實踐 1】Hadoop2.7.3安裝部署實際動手

dmi 遠程 nag proc host 一個 error img 連接 目錄: 第一部分:操作系統準備工作:   1. 安裝部署CentOS7.3 1611   2. CentOS7軟件安裝(net-tools, wget, vim等)   3. 更新CentOS

CentOS 7安裝使用Github

git push 文件 rep ica not 使用 管理系統 非root oba 在虛擬機安裝了QT以後,想把工程代碼放在版本管理系統軟件裏面,免得一遍遍創建checkpoint麻煩的要死。又因為虛擬機跟物理機數據很難交互,只好借助github了。搜了搜安裝配置方法,記錄

物理機在windows 7 安裝redhat 7(雙系統)

物理機在windows 7 下安裝redhat 7(雙系統)linux 物理機掛載 真實機掛載 紅帽7 老唐 安裝之前,我們先把紅帽7的鏡像文件刻入U盤,用於後面在物理機上安裝linux。刻入工具我們用UltraISO 這個軟件。UltraISO 軟件大家可以在百度下載!!!打開軟件選擇 紅帽7