Sqoop-1.4.6的安装和配置

来源:互联网 发布:金薇内衣网络传销吗 编辑:程序博客网 时间:2024/04/30 06:48

准备工作

  • 1.搭建好的hadoop分布式系统
  • 2.mysql-connector-java-5.1.43-bin.jar和sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz安装包

安装

解压sqoop安装包实现sqoop的安装

#tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/hadoop   //解压实现安装#cd /usr/local/hadoop   //进入sqoop的安装目录#mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz sqoop-1.4.6   //重命名sqoop

配置

  • 1.配置sqoop的环境变量
#vim /etc/profile

添加如下记录:

SQOOP_HOME=/usr/local/hadoop/sqoop-1.4.6export PATH=$SQOOP_HOME/bin:$PATH

使配置文件生效

#source /etc/profile
  • 2.复制mysql-connector-java-5.1.43-bin.jar到sqoop/lib目录下
#cp mysql-connector-java-5.1.43-bin.jar /usr/local/hadoop/sqoop-1.4.6/lib
  • 3.修改配置文件sqoop-env.sh
#vim /usr/local/hadoop/sqoop-1.4.6/conf/sqoop-env.sh

将配置文件做如下改变:

#Set path to where bin/hadoop is availableexport HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-2.7.3#Set path to where hadoop-*-core.jar is availableexport HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-2.7.3#set the path to where bin/hbase is available#export HBASE_HOME=#Set the path to where bin/hive is available#export HIVE_HOME=#Set the path for where zookeper config dir is#export ZOOCFGDIR=
  • 4.修改文件
#vim /usr/local/hadoop/sqoop-1.4.6/bin/configure-sqoop

注释掉如下内容:

## Moved to be a runtime check in sqoop.#if [ ! -d "${HBASE_HOME}" ]; then#  echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."#  echo 'Please set $HBASE_HOME to the root of your HBase installation.'#fi### Moved to be a runtime check in sqoop.#if [ ! -d "${HCAT_HOME}" ]; then#  echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."#  echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'#fi##if [ ! -d "${ACCUMULO_HOME}" ]; then#  echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."#  echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'#fi#if [ ! -d "${ZOOKEEPER_HOME}" ]; then#  echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."#  echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'#fi

选择注释掉这些内容的原因:在执行sqoop语句的时候常常有几个warning警告,这些警告就是注释掉的部分引起的。除非你准备使用HCatalog,Accumulo等hadoop上的组件,就可以不注释。

查看帮助

[root@Master ~]# sqoop help17/08/22 06:23:52 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6usage: sqoop COMMAND [ARGS]Available commands:  codegen            Generate code to interact with database records  create-hive-table  Import a table definition into Hive  eval               Evaluate a SQL statement and display the results  export             Export an HDFS directory to a database table  help               List available commands  import             Import a table from a database to HDFS  import-all-tables  Import tables from a database to HDFS  import-mainframe   Import datasets from a mainframe server to HDFS  job                Work with saved jobs  list-databases     List available databases on a server  list-tables        List available tables in a database  merge              Merge results of incremental imports  metastore          Run a standalone Sqoop metastore  version            Display version informationSee 'sqoop help COMMAND' for information on a specific command.

import主要参数

--connect <jdbc-uri>   //jdbc连接地址--connection-manager <class-name>   //连接管理者--driver <class-name>   //驱动类--hadoop-mapred-home <dir>   //$HADOOP_MAPRED_HOME--help   //help信息--password <password>   //密码--username <username>   //账号--verbose   //打印信息--connection-param-file <filename>   //可选参数-P   //从命令行输入密码

export主要参数

--direct   //快速导入--export-dir <dir>   //HDFS导出数据的目录--table <table-name>   //导出哪个表--call <stored-proc-name>   //存储过程--update-key <col-name>   //通过哪个字段来判断更新--update-mode <mode>   //插入模式,默认是只更新,可以设置为allowinsert.--input-null-string <null-string>   //字符类型null处理--input-null-non-string <null-string>   //非字符类型null处理--staging-table <staging-table-name>   //临时表--clear-staging-table   //清空临时表--batch   //批量模式-m,--num-mappers <n>   //都少个map线程

转义字符相关参数

--enclosed-by <char>   //设置字段结束符号--escaped-by <char>   //用哪个字符来转义--fields-terminated-by <char>   //字段之间的分隔符--lines-terminated-by <char>   //行分隔符--mysql-delimiters   //使用mysql的默认分隔符: , lines: \n escaped-by: \ optionally-enclosed-by: '--optionally-enclosed-by <char>   //复制结束符

常用命令

显示mysq中的数据库

#sqoop list-databases --connect jdbc:mysql://123.207.101.174:3306/ --username 用户名 --password 密码

显示某mysql数据库中的表

#sqoop list-tables --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码

将mysql数据库中的数据导入HDFS中

#sqoop import --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码--table msg --fields-terminated-by '\t' -m 1

将mysql数据库中的数据导入hive中

#sqoop import --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码--table msg --hive-import --fields-terminated-by '\t' -m 1注:将mysql数据库中的数据导入hive中实际上内部执行了三个步骤:1.将数据导入HDFS中2.在hive中创建与mysql中同名的表3.将HDFS中的数据传入hive表中同时删除HDFS上的数据

将HDFS中的数据导出到mysql数据库中

#sqoop export --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码--table 表名 --export-dir /user/root/msg/part-m-00000 --input-fields-terminated-by '\t'注:导入之前需要先在mysql数据库中创建和被导入的表表结构一样的表

将hive中的数据导入到mysql数据库中

#sqoop export --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码--table 表名 --export-dir /user/hive/warehouse/msg/part-m-00000 --input-fields-terminated-by '\t'注:导入之前需要先在mysql数据库中创建和被导入的表表结构一样的表

将关系型数据库的表结构复制到hive中

#sqoop create-hive-table --connect jdbc:mysql://123.207.101.174:3306/数据库名 --username 用户名 --password 密码--table 表名 --hive-table hive表名 --fields-terminated-by "\0001"  --lines-terminated-by "\n";

Over

原创粉丝点击