飞道的博客

以可视化的方式来打开大数据,tableau是如何连接到Hadoop hive的?

296人阅读  评论(0)

前言

Hadoop Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务进行运行,优点是学习成本低;可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。本文将详细介绍Tableau如何连接Hadoop Hive及其注意事项。

以下链接为博主精心整理的tableau学习教程,包含基础部分及高级教程,有需要的小伙伴可自行订阅。

tableau可视化数据分析高级教程

https://blog.csdn.net/wenyusuran/category_9596753.html

Tableau可视化数据分析知识点详解

https://blog.csdn.net/wenyusuran/category_9274958.html

 

1.Hadoop简介


Hadoop存在的理由是适合进行大数据的存储计算。Hadoop集群主要由两部分组成:一个是存储、计算“数据”的“库”,另一个是存储计算框架。

1.1 Hadoop分布式文件系统

Hadoop分布式文件系统是一种文件系统实现,类似于NTFS、EXT3、EXT4等。不过Hadoop分布式文件系统建立在更高的层次之上,在HDFS上存储的文件被分成块(每块默认为64M,比一般文件系统块大多分布在多台机器上,每块又会有多块冗余备份(默认为3),以增强文件系统的容错能力,这种存储模式与后面的MapReduce计算模型相得益彰。HDFS在具体实现中主要有以下几个部分:
 

1.名称节点(NameNode)

名称节点的职责在于存储整个文件系统的元数据,这是一个非常重要的角色。元数据在集群启动时会加载到内存中,元数据的改变也会写到磁盘的系统映像文件中,同时还会维护对元数据的编辑日志。HDFS存储文件时是将文件划分成逻辑上的块存储的,对应关系都存储在名称节点上,如果有损坏,整个集群的数据就会不可用。我们可以采取一些措施备份名称节点的元数据,如将名称节点目录同时设置到本地目录和一个NFS目录,这样任何元数据的改变都会写入两个位置做冗余备份。向两个目录冗余写入的过程是原子的,这样使用中的名称节点宕机后,我们可以使用NFS上的备份文件恢复文件系统。
 

2.第二名称节点(SecondaryNameNode)
这个角色的作用是定期通过编辑日志合并命名空间映像,防止编辑日志过大。不过第二名称节点的状态滞后于主名称节点,如果主名称节点挂掉,必定会有一些文件损失。
 

3.数据节点(DataNode)
这是HDFS中具体存储数据的地方,一般有多台机器。除了提供存储服务,还定时向名称节点发送存储的块列表。名称节点没有必要永久保存每个文件、每个块所在的数据节点,这些信息会在系统启动后由数据节点重建。

1.2 MapReduce计算框架


MapReduce计算框架是一种分布式计算模型,核心是将任务分解成小任务,由不同计算者同时参与计算,并将各个计算者的计算结果合并,得出最终结果。模型本身非常简单,一般只需要实现两个接口即可,关键在于怎样将实际问题转化为MapReduce任务。Hadoop的
MapReduce主要由以下两部分组成:
 

1.作业跟踪节点(JobTracker)
负责任务的调度(可以设置不同的调度策略)、状态跟踪。有点类似于HDFS中的名称节点,JobTracker也是一个单点,在未来的版本中可能会有所改进。
 

2.任务跟踪节点(TaskTracker)
负责具体的任务执行。TaskTracker通过“心跳”的方式告知JobTracker其状态,并由JobTracker根据报告的状态为其分配任务。TaskTracker会启动一个新JVM运行任务,当然JVM实例也可以被重用。

 

2.连接基本条件


Hadoop Hive是一种通过混合使用传统SQL表达式,以及特定于Hadoop的高级数据分析和转换操作,利用Hadoop集群数据的技术。Tableau使用Hive与Hadoop配合工作,提供无须编程的环境。Tableau支持使用Hive和数据源的HiveODBC驱动程序连接存储在Cloudera、Hortonworks、MapR和Amazon EMR(ElasticMapReduce)分布中的数据。

2.1 Hive版本

下面介绍连接的先决条件和外部资源。对于到Hive Server的连接,
必须具备以下条件之一:包含Apache Hadoop CDH3u1或更高版本的Cloudera分布,其中包括Hive 0.7.1或更高版本;Hortonworks;MapR Enterprise Edition(M5);Amazon EMR。

对于到Hive Server 2的连接,必须具备以下条件之一:
包括Apache Hadoop CDH4u1的Cloudera分布;HortonworksHDP1.2;带有Hive 0.9+的MapR Enterprise Edition(M5);Amazon EMR。此外,还必须在每台运行Tableau Desktop或Tableau Server的计算机上安装正确的Hive ODBC驱动程序。

2.2 驱动程序


对于Hive Server或Hive Server2,必须从“驱动程序”页面下载与安装Cloudera、Hortonworks、MapR或Amazon EMR ODBC驱动程序。Cloudera(Hive):适用于ApacheHive2.5.x的Cloudera ODBC驱动程
序;用于Tableau Server 8.0.8或更高版本,需要使用驱动程序2.5.0.1001或更高版本。

Cloudera(Impala):适用于Impala Hive 2.5.x的Cloudera ODBC驱动程序;如果连接到Cloudera Hadoop上的Beeswax服务,就要改为使用适合Tableau Windows使用的Cloudera ODBC 1.2连接器。

Hortonworks:Hortonworks Hive ODBC驱动程序1.2.x。

MapR:MapR_odbc_2.1.0_x86.exe或更高版本,或者MapR_odbc_2.1.0_x64.exe或更高版本。

Amazon EMR:Hive ODBC.zip或Impala ODBC.zip。如果已安装其他驱动程序版本,就要先卸载该驱动程序,再安装“驱动程序”页面上提供的对应版本。

2.3 启动Hive服务

使用Hadoop群集的终端界面键入以下命令:

hive—service hiverserver


上面的命令将在退出Hadoop终端会话时终止,因此可能需要以持续状态运行Hive服务,要将Hive服务移到后台,需要键入以下命令:

nohup HIVE_PORT=10000 hive—service hiveserver &


为了长期使用,需要配置一个用于随群集一起启动Hive的自动进程。Derby是Hadoop默认的元数据存储。Hive元数据包含Hive表的结构和位置,必须存储在某处以便能够持续进行读取/写入访问。Hive默认情况下使用Derby容纳元数据信息。

尽管Derby无法支持Hive的多个实例并行使用,不过对于像Tableau这样的外部客户端,Hive服务将以单一访问的形式运行。Hive服务支持多个外部客户端并行访问,同时仅在Derby元数据数据库的单一实例上运行。如果预计为长期生产使用Hive,可以考虑使用诸如PostgreSQL数据库等多用户元数据存储库,这将不会影响Tableau与Hive交互的方式。

 

3.连接主要步骤


在Tableau Desktop中选择适当的服务器、Cloudera Hadoop、Hortonworks Hadoop Hive、MapR Hadoop Hive或Amazon EMR,然后输入连接所需的信息。

3.1 Cloudera Hadoop

在开始页面的“连接”下单击Cloudera Hadoop,然后执行以下操作:
 


  
  1. (1)输入承载数据库服务器的名称和端口号,端口号21050是2 .5 .x驱动程序的默认端口。
  2. (2)在“类型”下拉列表中选择要连接的数据库类型 Hive ServerHive Server2Impala
  3. (3)在“身份验证”下拉列表中选择要使用的身份验证方法。
  4. (4)单击“初始 SQL”以指定将在连接时运行一次的 SQL命令。
  5. (5)单击“登录”按钮

如果连接不成功,就要验证用户名和密码是否正确。如果连接仍然失败,就说明计算机在定位服务器时遇到问题,需要联系网络管理员或数据库管理员进行处理

 

3.2 Hortonworks Hadoop Hive


在开始页面的“连接”下单击Hortonworks Hadoop Hive,然后执行以
下操作:


  
  1. ( 1)输入承载数据库的服务器名称。
  2. ( 2)在“类型”下拉列表中选择要连接的数据库类型Hive Server或Hive Server2。
  3. ( 3)在“身份验证”下拉列表中选择要使用的身份验证方法。
  4. ( 4)单击“初始SQL”以指定将在连接时运行一次的SQL命令。
  5. ( 5)单击“登录”按钮。


如果连接不成功,就要验证用户名和密码是否正确。如果连接仍然失败,就说明计算机在定位服务器时遇到问题,需要联系网络管理员或数据库管理员进行处理

 

3.3 MapR Hadoop Hive


在开始页面的“连接”下单击MapR Hadoop Hive,然后执行以下操作:


  
  1. ( 1)单击“登录”按钮。
  2. ( 2)输入承载数据库的服务器名称。在“类型”下拉列表中选择要连接的数据库类型,可以选择Hive Server或Hive Server2。
  3. ( 3)在“身份验证”下拉列表中选择要使用的身份验证方法。
  4. ( 4)单击“初始SQL”以指定将在连接时运行一次的SQL命令。
  5. ( 5)单击“登录”按钮。


如果连接不成功,就要验证用户名和密码是否正确。如果连接仍然失败,就说明计算机在定位服务器时遇到问题,需要联系网络管理员或数据库管理员进行处理,

4.连接注意事项


在连接Hive时,Tableau Desktop需要注意日期/时间数据、Hive和Hadoop的已知限制(与传统数据库相比)。

4.1 日期/时间数据


Tableau Desktop 9.0及更高版本支持Hive中的时间戳,Tableau可在本机使用时间戳。如果将日期/时间数据存储为Hive中的字符串,就要确保以ISO格式(YYYY-MM-DD)进行存储。

在Tableau Desktop 9.0及更早版本中,Tableau没有对时间戳数据类型的内置支持,不过这些版本支持对存储在字符串内的日期/时间数据进行运算。

更改数据类型为日期/时间格式的步骤:创建一个数据提取,然后右击“数据”窗格中的字段,并选择“更改数据类型”→“日期”以使用存储在字符串中的纯日期或日期/时间数据,或者使用DATEPARSE函数将字符串转换为日期/时间格式的字段。

4.2 已知限制


1.高延迟
Hive是面向批处理的系统,还无法以快速的周转时间回答简单的查询。此限制使得探索新数据集或体验计算字段变得非常困难,但是一些更新的SQL-on-Hadoop技术可用于解决此限制。
 

2.日期/时间处理
Hive提供对可能表示日期/时间的字符串数据进行运算的重要功能,并且增加了将日期/时间存储为本机数据类型(时间戳)的支持。
 

3.查询进度和取消操作

在Hadoop Hive中取消操作并不简单,尤其是在不属于群集部分的计算机上工作时,Hive无法提供取消查询机制,因此Tableau发布的查询只能是“已放弃”,放弃查询后继续在Tableau中工作,不过查询仍将在群集上运行并占用资源。

4.身份验证

对于传统的Hive Server的连接,Hive ODBC驱动程序不会显示身份验证操作,并且Hive身份验证模型和数据安全模型不完整,TableauServer针对此类情况提供了一个数据安全模型,可以在Tableau工作簿中
创建“用户筛选器”,以表示如何限制每个可视化项中的数据,而TableauServer将确保对访问浏览器中交互式可视化项的用户相应地实施这些筛选器。

 

5.检验测试连接

借助Cloudera、Hortonworks、MapR和Amazon EMR的最新ODBC驱动程序,可以使用驱动程序配置实用工具测试与Hadoop Hive群集的连接。

 

 


转载:https://blog.csdn.net/wenyusuran/article/details/114869393
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场