Kettle (三):mysql导入hive

    xiaoxiao2022-07-14  186

    一、实现功能

    Kettle (三):mysql导入hive 使用kettle将mysql中的数据导入hive,从而实现数据迁移。

    二、环境

    1.Centos7.4 2.CDH5.7.0 3.Kettle 8.0 4.JDK1.8

    三、Kettle中建立数据库连接

    1.    建立mysql数据库连接 (1)    新建mysql_local的数据库连接   (2)    输入mysql对应的信息   (3)    点击“测试”,连接成功后,点击“确认”

    2.    建立hadoop连接 (1)    新建hadoop连接   (2)    配置hdfs连接信息,因为暂时没有zookeeper和oozie等,所以不用配置   (3)    点击“测试”,会依据(2)中填写信息,回复连接结果   结果连接成功 3.    创建连接hive的连接 (1)    服务器开启hiveserver2,从而客户端连接hive (2)    在hive根目录下 bin/hive --service hiveserver2 (3)    配置与kettle相关jar包 参考:https://blog.csdn.net/u010886217/article/details/89509323 (4)    新建hiveserver2的数据库连接   (5)    配置hiveserver2的相关信息   (6)    点击“测试”连接hive,成功后,点击“确定”保存连接    

    四、转换

    1.    实现功能 (1)    在hive中创建mysql表对应的表结构 (2)    将mysql中表导出为txt格式,保存到hdfs临时目录   2.    创建mysql表输入 选择mysql数据库连接,并且选择需要转移的student表

    3.    创建hive表输出步骤,完成建立对应表 (1)选择hive表连接和转移到hive中表的名称,点击SQL

    (3)    修改自动生成的SQL语句

    CREATE TABLE student_mysql ( id INT, name STRING, age INT) row format delimited fields terminated by ';' ;

    (4)    单击“确定”,此时hive中建表成功。   (5)    使mysql-》hive的连接失效,从而不影响后续操作。 点击连线,使之变为灰色   4.    mysql表导出为txt文档保存在hdfs (1)引入“Hadoop file output”步骤

      (2)输入hdfs相应信息,修改“文件”框   (3)    修改“内容”框   (4)    修改“字段”框 先点击“获取字段”,然后点击“最小宽度”,否则按照默认宽度,输出txt文件的文字宽度太大。

    (5)    运行转换,使mysql表转换到hdfs上   结果:

    五、创建job实现将txt文档转移hive的目录下

    1.    创建job,拖入start、转换、Hadoop copy files组件   2.    修改“转换”,将四中的转换填写入   3.    修改“Hadoop copy files”组件 设置源文件路径和目标路径   4.    执行job  

    六、验证

    1.启动hive

    bin/hive

    2.查询

    hive (test)> select * from student_mysql; OK student_mysql.id        student_mysql.name      student_mysql.age 1       zhangsan        4 2       lisi    5 Time taken: 0.286 seconds, Fetched: 2 row(s) hive (test)> select student_mysql.age from student_mysql; OK student_mysql.age 4 5 Time taken: 0.074 seconds, Fetched: 2 row(s)

     

    最新回复(0)