sqoop安装及使用

 

最近单位在研究大数据,我把我研究的写出来供大家参考。

1.安装sqoop

 

首先在官网下载sqoop.jarsqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz

安装到指定目录下 /home/cluster/sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz

解压缩 tar -zxvf  sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz得到压缩文件sqoop-1.4.4

2.下载mysql 驱动包

官网下载连接mysql jar包放到压缩文件的lib

3.配置环境变量

 Vi /etc/profile  export SQOOP_HOME=/home/cluster/sqoop-1.4.4 

4.配置sqoop参数

    复制sqoop_home/conf/sqoop-env-template.sh 一份重命名为sqoop-env.sh

修改环境变量

拷贝核心包 将hadoop的核心jar包和mysql的驱动包拷贝至sqoop/lib

5.测试连接mysql

[root@hadoop10 sqoop-1.4.4]# bin/sqoop list-tables --connect jdbc:mysql://XXX:3306/XXX --username XXX  --password XXX

6.导入数据到hbase

sqoop  import  --connect jdbc:mysql://XXX/XXX --username XXX --password XXX --table demo_blog --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url

 

Demo_sqoop2hbase是导入到hbase里面的表名

Demo_blogmysql中要导入到hbase中的表名

 

输入hbase shell进入到hbase shell 命令行里面输入 list

 

输入scan “demo_sqoop2hbase”可查看导入的数据

describe "demo_sqoop2hbase"

 

7.导入数据到hive

bin/sqoop import --connect jdbc:mysql://XXX:3306/XXX --table tb_member --username XXX --password XXX --hive-import

 

Sqoop定时增量

一、sqoop的配置文件在sqoop.site.xml中:

1sqoop.metastore.server.location

        本地存储路径,默认在tmp下,改为其他路径

    2sqoop.metastore.server.port

          metastore service端口号

    3sqoop.metastore.client.autoconnect.url

        sqoop自动连接的metastore地址,默认是本地的metastore地址

    4sqoop.metastore.client.enable.autoconnect

       开启自动连接。sqoop默认连接本地metastore。注释这个配置会开启自动连接。

二.开启metastore service

nohup bin/sqoop metastore

三、创建job

bin/sqoop job --create your-sync-job -- import --connect jdbc:mysql://XXX:3306/XXX--table tb_order --username XXX-P --hive-import --incremental append --check-column id --last-value 1 -- --default-character-set=utf-8

.运行job

Sqoop job --exec your-sync-job

 

五.定时执行

使用linux定时器:crontab -e

编辑定时器,添加*/4 * * * *  sqoop job --exec  your-sync-job

遇到问题

1.执行crontab -e 提示crontab commend not found

1 下载定时器Jar 包

2 yum -y install gcc gcc-c++ autoconf vixie-cron

3 yum -y install gcc gcc-c++ autoconf crontabs vixie-cron软件包是cron的主程序; crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

2.避免重复输入密码

找到sqoop-site.xml的配置文件,发现如下配置:

 

<property>  
   <name>sqoop.metastore.client.enable.autoconnect</name>  
   <value>false</value>  
   <description>If true, Sqoop will connect to a local metastore  
     for job management when no other metastore arguments are  
     provided.  
    </description>  
  </property>  
View Code

 

看来这个值设置为了false,导致不能够使用Job相关操作了。

1 <property>  
2    <name>sqoop.metastore.client.record.password</name>  
3    <value>true</value>  
4    <description>If true, allow saved passwords in the metastore.  
5    </description>  
6   </property>  
View Code

 

当这个值为真的时候才会保存密码。(切记:改完配置文件要将metastore进程杀死 重新启动 配置文件才会生效)

posted @ 2014-08-20 16:25  java学习之旅  阅读(530)  评论(0编辑  收藏  举报