• hive、sqoop、MySQL间的数据传递


    hdfs到MySQL

    csv/txt文件到hdfs

    MySQL到hdfs

     hive与hdfs的映射:

    drop table if exists emp;
    create table emp ( id
    int comment 'ID', emp_name string comment '姓名', job string ) comment '职业' row format delimited -- stored as rcfile location '/user/hive/warehouse/emp';

    stored as 关键词,hive目前支持三种方式:
    1:就是最普通的textfile,数据不做压缩,磁盘开销大,解析开销也大
    2:SquenceFIle,hadoop api提供的一种二进制API方式,其具有使用方便、可分割、可压缩等特点。
    3:rcfile行列存储结合的方式,它会首先将数据进行分块,保证同一个record在一个分块上,避免读一次记录需要读多个块。其次块数据列式存储,便于数据存储和快速的列存取。
    RCFILE由于采用是的列式存储,所以加载时候开销较大,但具有很好的查询响应、较好的压缩比。
    如果建立的表需要加上分区,则语句如下:
    这里partitioned by 表示按什么字段进行分割,通常来说是按时间

    Hadoop指令查看hdfs下的数据

    将本地数据文件导入到hdfs下面:

    比较利用Hadoop指令将数据上传至hdfs路径

    create external table if not exists emp(
    id int comment '用户名',
    name string comment '月份',
    job string comment '访问次数'
    ) comment '用户访问表' 
    row format delimited fields terminated by "	" 
    location "/user/hive/warehouse/test.db";
    -- 方法1. 将文件直接上传至hdfs
    hadoop dfs -put /root/part-m-00000 /user/hive/warehouse/test.db
    -- 方法2. 通过hive 的 load方法将数据传至hdfs
    load data local inpath "/root/part-m-00000" into table test.emp;

    以上两种方法实现的效果相同;注意一点就是 数据间的 间隔符号  “ ”

    方法3. 利用sqoop将数据传至hdfs  <sqoop是MySQL与hdfs之间数据传递工具>

    sqoop import --connect jdbc:mysql://192.168.5.129:3306/hadoop --username root --password 111111 --table emp_demo --fields-terminated-by '	' -m 1 --target-dir /user/hive/warehouse/test.db
     sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table person --append --target-dir /user/hive/warehouse/test.db

    将hdfs数据保存到MySQL

    impala连接

     impala-shell -i IP
    

      

    参考:http://www.cnblogs.com/qingyunzong/p/8747656.html

    sqoop export --connect  "jdbc:mysql://192.168.5.129/fund?useUnicode=true&characterEncoding=utf-8" --username root --password 111111 --table fundmarket --export-dir /user/hive/warehouse/fundmarket/part-m-00000  --fields-terminated-by '	'
  • 相关阅读:
    一行代码搞定Dubbo接口调用
    测试周期内测试进度报告规范
    jq 一个强悍的json格式化查看工具
    浅析Docker容器的应用场景
    HDU 4432 Sum of divisors (水题,进制转换)
    HDU 4431 Mahjong (DFS,暴力枚举,剪枝)
    CodeForces 589B Layer Cake (暴力)
    CodeForces 589J Cleaner Robot (DFS,或BFS)
    CodeForces 589I Lottery (暴力,水题)
    CodeForces 589D Boulevard (数学,相遇)
  • 原文地址:https://www.cnblogs.com/iloverain/p/9462011.html
Copyright © 2020-2023  润新知