版本:
一、原始数据及Hive表
MongoDB数据格式
![7aa6e7f249477c274fd8b382f767912e.png](https://i-blog.csdnimg.cn/blog_migrate/0a1c55eb8965e1a997b79cadcbee947a.jpeg)
Hive普通表
![721c1220b9eed8c2db064eb47941a442.png](https://i-blog.csdnimg.cn/blog_migrate/5665a73a8a9d65876d289e0745d1b854.jpeg)
Hive分区表
![c87d2bd5fccb5d5da560c934c0a7f59c.png](https://i-blog.csdnimg.cn/blog_migrate/e4471d5e196028f774e91c74569d88f7.jpeg)
二、 IDEA+Maven+Java
依赖
![ae6fa7db09f5b26440a57a414e54b34d.png](https://i-blog.csdnimg.cn/blog_migrate/57f5b5b21d4f2d39c1e35ea4f429b7f5.jpeg)
代码
![bdb9f564970d92699d4f65fdc0d9de9c.png](https://i-blog.csdnimg.cn/blog_migrate/cd2715a42b245aa46e2aaa9592ab98a9.jpeg)
![237ad5882495f022398fa7d73179a643.png](https://i-blog.csdnimg.cn/blog_migrate/045427c41a92e8b6c266a06b59fef6ba.jpeg)
![24078171259807f27af01592ec3f7fff.png](https://i-blog.csdnimg.cn/blog_migrate/0d0df873378f11aa391d8f3fa4d4ecd4.jpeg)
![ea41b2d4ae515ff52e4a2fb371f73c4d.png](https://i-blog.csdnimg.cn/blog_migrate/774939727dfde2a072c2922c53d0e068.jpeg)
工具类
![3281147536bca8ec6219e4cf9c212283.png](https://i-blog.csdnimg.cn/blog_migrate/d6fed92eb50dc1c69cc167d119089a1f.jpeg)
三、 错误解决办法
1、 IDEA会获取不到Hive的数据库和表,将hive-site.xml放入resources文件中。并且将resources设置成配置文件(设置成功文件夹是蓝色否则是灰色)
file–>Project Structure–>Modules–>Source
![cee1e6ebacd2b743f8cc8f21bf1ee066.png](https://i-blog.csdnimg.cn/blog_migrate/1dc2c3a9e393ddbd1c1f8c56c47cbfe2.jpeg)
2、 上面错误处理完后如果报JDO类型的错误,那么检查HIVE_HOME/lib下时候否mysql驱动,如果确定有,那么就是IDEA获取不到。解决方法如下:
将mysql驱动拷贝到jdk1.8.0_171.jdk/Contents/Home/jre/lib/ext路径下(jdk/jre/lib/ext)
在IDEA项目External Libraries下的<1.8>里面添加mysql驱动
![e91c037cb70c0e71b5895c4b385850b0.png](https://i-blog.csdnimg.cn/blog_migrate/1cd550d0320ff9e2f1ad8e8d2e2ec6d6.jpeg)
四、 注意点
由于将MongoDB数据表注册成了临时表和Hive表进行了关联,所以要将MongoDB中的id字段设置成索引字段,否则性能会很慢。
MongoDB设置索引方法:
![d8d47c6b2412da8e1c543c8b65da1745.png](https://i-blog.csdnimg.cn/blog_migrate/0aa4c518fe96618e729abe3bc182f5f9.jpeg)
查看索引:
![b238cb978661f43db8cd9aebebe2e4a7.png](https://i-blog.csdnimg.cn/blog_migrate/4dce4a06f678c631310ef2c348c38822.jpeg)