有关hive的问题

hfyxw5xn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(263)

我有这样的环境:
haddop环境(1个主环境,4个从环境)有几个应用程序:ambari、hue、hive、sqoop、hdfs。。。使用mysql数据库的生产服务器(与hadoop分开)。
我的目标是:
优化在这个mysql服务器上执行的查询,这些查询现在执行得很慢。
我做了什么:
我使用sqoop将mysql数据导入hdfs。
我的疑虑:
我不能直接在hdfs中使用hive进行选择?
我是否必须将数据加载到配置单元并进行查询?
如果新的数据被输入到mysql数据库中,那么获取这些数据并将其插入hdfs,然后再次将其插入hive的最佳方法是什么(可能是实时的)
先谢谢你

eit6fx6z

eit6fx6z1#

您可以尝试impala,它在sql查询中比hive快得多。您需要定义表,很可能需要指定一些分隔符、存储格式以及数据存储在hdfs上的位置(我不知道您存储的是什么类型的数据)。然后可以编写sql查询,从hdfs获取数据。
我没有从关系数据库实时接收数据的经验,但是您可以尝试使用cron调度sqoop作业。

omhiaaxx

omhiaaxx2#

我不能直接在hdfs中使用hive进行选择?
你可以。在指定hdfs位置的配置单元中创建外部表。然后你可以在上面执行任何hql。
我是否必须将数据加载到配置单元并进行查询?
对于外部表,不需要在配置单元中加载数据;您的数据驻留在同一hdfs目录中。
如果在mysql数据库中输入了新数据,那么获取这些数据的最佳方法是什么。
您可以为此使用sqoop增量导入。它将只获取新添加/更新的数据(取决于增量模式)。您可以创建一个sqoop作业并根据需要安排它。

相关问题