hive参数介绍
参数 | 说明 |
–hive-delims-replacement <arg> | 用自定义的字符串替换掉数据中的\n, \r, and \01等字符 |
–hive-drop-import-delims | 在导入数据到hive中时,去掉数据中\n,\r和\01这样的字符 |
–map-column-hive <arg> | 生成hive表时,可以更改生成字段的数据类型,格式如:–map-column-hiveTBL_ID=String,LAST_ACCESS_TIME=string |
–hive-partition-key | 创建分区,后面直接跟分区名即可,创建完毕后,通过describe 表名可以看到分区名,默认为string型 |
–hive-partition-value<v> | 该值是在导入数据到hive中时,与–hive-partition-key设定的key对应的value值。 |
–hive-home <dir> | Hive的安装目录,可以通过该参数覆盖掉默认的hive目录 |
–hive-import | 将数据从关系数据库中导入到hive表中 |
–hive-overwrite | 覆盖掉在hive表中已经存在的数据 |
–create-hive-table | 默认是false,如果目标表已经存在了,那么创建任务会失败 |
–hive-table | 后面接要创建的hive表 |
–table | 指定关系数据库表名 |
连接数据库
参数 | 说明 |
–connect <jdbc-uri> | Jdcb连接url,示例如:–connect jdbc:mysql://localhost:3306/hive |
–connection-manager <class-name> | 指定要使用的连接管理类 |
–driver <class-name> | 数据库驱动类 |
–hadoop-home <dir> | Hadoop根目录 |
–help | 打印帮助信息 |
-P | 从控制端读取密码 |
–password <password> | Jdbc url中的数据库连接密码 |
–username <username> | Jdbc url中的数据库连接用户名 |
–verbose | 在控制台打印出详细信息 |
–connection-param-file <filename> | 一个记录着数据库连接参数的文件 |
文件互传
用于import场景。
示例如mysql传输到hdfs:
sqoop import
--connect jdbc:mysql://192.168.153.111:3306/test \
--username root \
--password root \
--table test \
--columns "name,age" \
--target-dir hdfsfile \
--delete-target-dir \
-m 1
–table 是要导入HDFS中的表
–columns 选择要导入的列,这里选择把name与age两列导入的HDFS中。
–where 对数据进行过滤,只有满足条件的才保存到HDFS中。
–target-dri 指定存储在HDFS上的表名
–delete-target-dir 表示如果HDFS表存在,则把他删除。
-m 说明使用多少个map进行数据迁移,如果表比较大的话,建议使用多个map,默认的map为4个
mysql传输到hive
sqoop import \
--connect jdbc:mysql://hadoop001:3306/sqoop \
--username root \
--password 123456 \
--table emp_etl \
-m 1 \
--hive-import \
--create-hive-table \
--hive-table emp_mysql
–create-hive-table 自动创建表(如果存在会报错)
–hive-table 指定自动创建表的名称