1,将服务器hive conf/hive-site.xml放到代码resources中
2,添加pom依赖
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>${spark.version}</version>
<!--<scope>provided</scope>-->
</dependency>
3,可能出现的问题:
org/apache/tez/dag/api/SessionNotRunning when creating Hive client using cla
解决: 将hive-site.xml 中, 此值 从 tez 改为 mr
<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>
4, 可能出现的问题:
native snappy library not available: this version of libhadoop was built wit
解决:
下载支持 snappy的依赖,用管理员方式解压,
将 hadoop2.7/bin 添加到环境变量
链接:https://pan.baidu.com/s/1At_UibV7FkZ8wofjn-K2Sg
提取码:wixj
5,可能出现的问题:
Caused by: java.lang.RuntimeException: native snappy library not available: SnappyCompressor has not been loaded.
解决:
启动 cmd.exe
hadoop // 查看是否正常
hadoop checknative -a // 查看snappy is true 且 目录是否正确,不正确修改环境变量,并且重启 IDEA
6,可能出现的问题:
22/05/30 10:21:38 INFO metastore: Connected to metastore.
Exception in thread “main” org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.NullPointerException;
解决:添加hadoop环境变量
7:java.lang.ClassNotFoundException Class org.apache.hadoop.hive.serde2.JsonSerDe not found
根据不同版本,在hive/lib里找对应jar
hdp版本上传 hive-hcatalog-core-3.1.0.3.0.1.0-187.jar类即可。
cdh上传 hive-serde-2.1.1-cdh6.3.2.jar
8,阿里云或腾讯云开放 8020,9083端口
9, 没有权限访问;
Caused by: MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=hws, access=WRITE, inode=“/user/hive/warehouse/atguigu.db/bb”:root:supergroup:drwxr-xr-x
解决:
代码开始上方
System.setProperty(“HADOOP_USER_NAME”, “hdfs”)
10:访问超时;原因:172.16.*.*是内网环境,应该走主机名
23/01/05 14:14:35 WARN DFSClient: Failed to connect to /172.16.210.77:9866 for block, add to deadNodes and continue. java.net.ConnectException: Connection timed out: no further information
解决:
hive-site.xml增加
dfs.client.use.datanode.hostname
true
Whether clients should use datanode hostnames when
connecting to datanodes.