spark-之客户端访问hive注意事项(元数据访问、压缩格式)

spark-之客户端访问hive注意事项(元数据访问、压缩格式)

1 hive元数据服务配置与启动

  • 像spark、presto这样需要查询hive中的表中的数据,必须配置hive元数据的thrift服务ip和端口,否则会启动报错
<!--1、必须启动hive的元数据服务 vim hive-site.xml-->
<property>
	<name>hive.metastore.uris</name>
	<value>thrift://shufang101:9083</value>
</property>
## 2、动hive元数据服务
nohup hive --service metastore 2>&1 &  #后台启动
## 3、然后启动对应的访问客户端
bin/spark-shell --master ....
bin/spark-sql --master --files --jars ....
bin/presto --server ip:port --catalog hive --schema xxx

2 配置hive(hadoop)支持的压缩格式,如lzop

  • 如果hadoop配置了lzop压缩,必须将lzo编译之后的jar包添加到spark的jars目录下,否则启动spark-sql或者sparj-shell之后查询会报错
Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found.
  at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:139)
  at org.apache.hadoop.io.compress.CompressionCodecFactory.<init>(CompressionCodecFactory.java:180)
  at org.apache.hadoop.mapred.TextInputFormat.configure(TextInputFormat.java:45)
  ... 97 more
Caused by: java.lang.ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec not found
  at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2101)
  at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:132)
  ... 99 more

下面有3种方式解决。

# 1、将lzop支持的jar包添加到SPARK_HOME/jars/目录下 
[shufang@shufang101 spark-2.1.1-hdp2.7]$ mv /opt/module/hadoop-lzo-0.4.21-SNAPSHOT.jar ./jars/
# 2、启动客户端的时候通过 --jars 来指定需要的jar包,将其加载到执行环境
bin/spark-shell --master yarn --jars /opt/module/hadoop-lzo-0.4.21-SNAPSHOT.jar
# 3、通过--driver-class-path指定类路径jars目录或者位置
bin/spark-shell --master yarn --driver-class-path file:///opt/module/hadoop-lzo-0.4.21-SNAPSHOT.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值