2149 0

第57课sparksql on hive 配置及案例实战 [推广有奖]

  • 1关注
  • 8粉丝

硕士生

34%

还不是VIP/贵宾

-

威望
0
论坛币
305 个
通用积分
0
学术水平
5 点
热心指数
14 点
信用等级
2 点
经验
23032 点
帖子
73
精华
0
在线时间
135 小时
注册时间
2016-2-27
最后登录
2016-9-11

楼主
无量天尊Spark 发表于 2016-6-13 11:39:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、spark on hive 配置

切换到spar的conf目录下使用vi  hive-site.xml创建hive-site.xml.并填写如下内容

  1. <configuration>
  2. <property>
  3.         <name>hive.metastore.uris</name>
  4.         <value>thrift://master:9083</value>
  5.         <description>thrift URI for the remote metastore.Used by metastore client to connect to remote metastore. </description>
  6. </property>
  7. </configuration>
复制代码

因为用sparksql操作hive实际上是把hive 当做数据仓库。数据仓库肯定有元数据和数据本身。要访问真正的数据就要访问他的元数据。所以只需要配置hive.metastore.uris 即可。(不需在每台机器上配置)


二、启动集群

1)启动dfs 服务start-dfs.sh

2)启动hive 数据仓库服务 hive  --service metastore >metastore.log2>& 1&

3)启动spark服务start-all.sh

4)启动sparkshell  ./spark-shell –masterspark://master:7077


三、案例实战

1)Spark on hive 实战 在spark-shell 模式下

  1. val hiveContext= new org.apache.spark.sql.hive.HiveContext(sc)
  2. hiveContext.sql(“use hive”) //使用hive 数据库
  3. hiveContext.sql("show tables").collect.foreach(println) // 查询数据库中的表
  4. hiveContext.sql(“select count(*) from  sogouq1”).collect.foreach(println)(注意此时使用的是spark的引擎)
  5. hiveContext.sql(“select count(*) from sogouq2 where website like '%baidu%'”).collect.foreach(println)

  6. hiveContext.sql(“select count(*) from sogouq2 where s_seq=1 and c_seq=1 and  website like '%baidu%'”).collect.foreach(println)
复制代码

2)不基于hive 的实战代码,在spark-shell 模式下

  1. scala> sqlContext
  2. res8: org.apache.spark.sql.SQLContext = org.apache.spark.sql.hive.HiveContext@35920655(可以创建很多hiveContext,hivecongtext连接的是数据仓库,程序本身(spark中的job),job在程序中并行运行,如果都hive的数据,如果用句柄,对句柄的占用比较麻烦,所有用多个实例。从查询的角度来说,有多个实例也很正常)

  3. val df =sqlcontext.read.json(“library/examples/src/main/resources/people.json”) //读取json 数据
  4. df.show()
  5. df.printSchema
  6. df.select(“name”).show()
  7. df.select(df(“name”),df(“age”)+1).show()
复制代码

注:本学习笔记来自DT大数据梦工厂        微信公众号:DT_Spark        每晚8点YY永久直播频道:68917580


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Sparks Spark Parks SPAR Park Spark scala DT_Spark 大数据

已有 1 人评分论坛币 收起 理由
daazx + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 04:02