三分钟上手hive进行数据统计

最近操做了hive进行数据统计,使用下面总结的步骤能够快速上手这个数据库java

完整案例代码已上传github: github.com/neatlife-le…mysql

获取可用的hive实例

能够使用docker一键启动参考:github.com/big-data-eu…git

git clone https://github.com/big-data-europe/docker-hive.git hive
cd hive
docker-compose pull
docker-compose up -d
复制代码

执行docker-compose ps查看启动效果 github

能够看到hive-server已经成功启动并在10000端口监听了

而后能够使用命令: docker-compose exec hive-server /opt/hive/bin/beeline -u jdbc:hive2://localhost:10000sql

进入hive命令行终端进行操做了,常见的sql语句通常都支持,好比show databases show tables desc tableName等,操做效果以下: docker

使用sqoop导入mysql数据到hive

准备测试数据

在mysql中准备须要导入hive的数据,能够自行生成,这里使用已经存在的user_words表,内容以下shell

安装sqoop

sqoop下载地址参考:apache-mirror.8birdsvideo.com/sqoop/1.4.7…数据库

java.security.AccessControlException: access denied须要修改/etc/java-8-openjdk/security/java.policy添加下面的受权代码apache

grant {
    permission javax.management.MBeanTrustPermission "register";
};
复制代码

能够把java.policy文件从docker中取出来,修改后再映射进去安全

而后修改docker-compose.yml挂载到hive server中,核心代码以下

 hive-server:
    # ...
 volumes:
 - ./sqoop:/sqoop
 - ./java.policy:/etc/java-8-openjdk/security/java.policy
复制代码

sqoop从mysql读取数据须要mysql的驱动,下载地址参考:dev.mysql.com/downloads/c… 把相应的jar包放到sqoop的lib目录便可

执行mysql导入hive

而后把mysql中的

/sqoop/bin/sqoop import \
    --connect jdbc:mysql://myip:3306/word_freq?useSSL=false \
    --username root \
    --password root \
    --table user_words \
    --hive-import \
    --hive-overwrite --create-hive-table \
    --hive-table default.user_words \
    --delete-target-dir
复制代码

上面的命令就是把mysql中的word_freq库中的user_words表导入hive的default库的user_words表中,执行效果以下

能够看到"Hive import complete"就表示导入成功了

使用DBeaver Enterprise进行数据统计

使用DBeaver链接hive

类型选择Apache Hive

hive用的10000端口

下载驱动可能比较慢,能够设置使用代理

操做表

单击建立sql编辑器的图标就能够打开一个新的sql编辑器了,操做效果以下

执行sql语句,好比查询出上面从mysql中导入的user_words表中的全部数据:SELECT * FROM user_words

能够看到成功从hive中查询出了user_words表的全部数据了

这个DBeaver功能丰富,完整功能列表参考:github.com/dbeaver/dbe…

一些注意的点

Make sure HIVE_CONF_DIR is set correctly是由于sqoop的lib目录缺乏hive common库

下载hive common放到sqoop的lib目录参考:repo1.maven.org/maven2/org/…

执行sqoop时报safe mode关键词的错误,须要关闭hdfs的安全模式

hdfs dfsadmin -safemode leave
复制代码

参考资料

  1. blog.csdn.net/jmx_bigdata…
  2. mvnrepository.com/artifact/or…
  3. stackoverflow.com/questions/5…
  4. github.com/dbeaver/dbe…
相关文章
相关标签/搜索