文章目录
- Kettle 安装配置
- Kettle 安装
- Kettle 配置
- 连接 Hive
Kettle 安装配置
Kettle 安装
在安装Kettle之前,需要确定已经安装Java运行环境。Kettle需要Java的支持才能运行,JDK的版本最好是8.x的太新的也会出现bug。Kettle的7.1版本的太旧了,容易出现闪退,右击就死机等bug,9.x太新了也会有bug,下载8.2版本的安装包。如图所示:Kettle官方网站下载地址如下:Pentaho from Hitachi Vantara - Browse Files at SourceForge.net
在Windows系统上,可以直接双击“spoon.bat
”文件启动Kettle。在Linux或Mac OS系统上,可以在命令行中输入“./spoon.sh
”命令启动Kettle。
Kettle 配置
完成了Kettle的安装之后,我们还需要通过配置,使得Kettle可以与Hadoop 协同工作。通过提交适当的参数,Kettl可以连接Hadoop的HDFS、MapReduce、Zookeeper、Oozie、Sqoop 和Spark服务。在数据库连接类型中支持Hive和Impala。
在配置连接前,要确认Hadoop和Hive虚拟机中已经正确安装并启动。使用FTP工具,连接虚拟机,找到Hadoop和Hive中的配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、hive-site.xml
,合计5个,下载到Kettle根目录下的plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514
目录下,覆盖原来Kettle自带的这些文件。
在本机配置IP地址映射,修改C:\Windows\System32\drivers\etc\hosts
文件,加入主机名与IP对应关系,填自己的IP和主机名。
192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104
在Spoon界面中,选择主菜单“工具”→“Hadoop Distribution…”,从弹出窗口中可以看到五种Shim。选择“Cloudera CDH 514”,点击OK 按钮确定后重启Spoon.
接下来我们新建一个作业来测试一下Kettle与Hadoop的连接。在工作区左侧的树的“主对象树”标签中,右击“作业”点击“新建”。选择 Hadoop clusters→ 右键 New Cluster。
选择对话框中输入如图所示的属性值
Hadoop集群配置窗口中的选项及定义说明如下:
- Cluster Name:定义要连接的集群名称,这里为hadoop。
- Hostname(HDFS 段):Hadoop集群中NameNode节点的主机名。本例中在虚拟机的主机名已经设置为hadoop102。
- Port(HDFS 段):Hadoop集群中NameNode节点的端口号。
- Username(HDFS 段):HDFS的用户名,通过宿主操作系统给出,可以不填。这里为虚拟机登录用户名。
- Password(HDFS 段):HDFS的密码,通过宿主操作系统给出,可以不填。虚拟机登录密码。
- Hostname(JobTracker 段):Hadoop集群中JobTracker节点的主机名。如果有独立的JobTracker节点,在此输入,否则使用HDFS的主机名。
- Port(JobTracker 段):Hadoop集群中JobTracker节点的端口号,不能与 HDFS 的端口号相同。
- Hostname(ZooKeeper 段):Hadoop集群中Zookeeper节点的主机名,只有在连接Zookeeper 服务时才需要。
- Port(ZooKeeper 段):Hadoop集群中Zookeeper节点的端口号,只有在连接Zookeepe服务时才需要。
- URL(Oozie 段):Oozie WebUI的地址,只有在连接Oozie。
然后点击“测试”按钮,测试结果如图2-6所示。此时Oozi和Zookeeper 因为没有进行安装,所以必定会有连接失败的警告。“User Home Directory Access
”这条报错则是由于当前 Kettle 是安装在宿主机的Windows系统中,Windows 上
运行的 Kettle 在连接 Hadoop 集群时,始终用本机用户连接 Hadoop 集群,因此User Home Directory Access会报错。将Kettle 安装到 Hadoop 所在的虚拟机中可以解决此问题。此处不影响后续的操作。
连接 Hive
接下来,我们再尝试使用Kettle连接Hive。Kettle把Hive当作一个数据库,支持连接Hive Server和Hive Server 2,数据库连接类型的名字分别为Hadoop Hive 和 Hadoop Hive 2。这里在Kettle中建立一个Hadoop Hive 2类型的数据库连接。
在远程连接虚拟机,进入 Hive 目录,然后启动 HiveServer2 服务,命令“hiveserver2”,
在Kettle工作区左侧的“主对象树”标签中,选择“DB 连接” → 右键“新建”,对话框中输入如图所示的属性值
上图的数据库连接配置窗口中的选项及定义说明如下:
- Connection Name:定义连接名称,这里为 hive。
- Connection Type:连接类型选择 Hadoop Hive 2。
- Host Name:输入HiveServer2对应的主机名,这里是hadoop102。
- Datebase Name:这里输入的default是Hive里默认的一个数据库名称。
- Port Number:端口号输入hive.server2.thrift.port参数的值,我们连接时设置的端口号为10000。
- User Name:用户名,这里为虚拟机登录用户名。
- Password:密码,这里为虚拟机登录密码。
点击“测试”,应该弹出成功连接窗口
为了让其它转换或作业能够使用此数据库连接对象,需要将它设置为共享。选择 “DB连接”→ hive → 右键“共享”,然后保存作业。