Hadoop CDH4.5 Sqoop部署

       你经常会需要把HDFS中的数据导入外部结构化数据库中,或者把外部结构化数据库数据导入HDFS中,  sqoop就是这样一个工具,用来在hadoop hdfs和结构化数据库之间传输数据。你可以使用sqoop把外部的结构化数据库的数据导入到HDFS中或者相关系统中(Hive HBase),相反的你也可以使用sqoop把HDFS中的数据导入到结构化数据库中。

1    安装Sqoop

        sqoop — Complete Sqoop distribution

        sqoop-metastore — For installation of the Sqoop metastore only

apt-get install sqoop

2      安装相关数据库的JDBC驱动

        Sqoop不自带第三方JDBC驱动,所以你必须自己下载驱动,然后保存在/usr/lib/sqoop/lib/目录

            1    安装MySQL JDBC驱动

cp mysql-connector-java-version/mysql-connector-java-version-bin.jar  /usr/lib/sqoop/lib/

            2    安装PostgreSQL JDBC驱动

cp postgresql-9.2-1002.jdbc4.jar /usr/lib/sqoop/lib/
3      为YARN设置HADOOP_MAPRED_HOME

export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce

在CDH4中还提供了一个Sqoop 2,Sqoop 2是一个服务端和客户端模式在HDFS和关系数据库之间传输数据的。

1    安装Sqoop 2

        Sqoop 2服务被分成了两个包:客户端sqoop2-client和服务端sqoop2-server。在集群中的某一台机器安装服务端, 在需要作为客户端的机器上安装客户端,注意:Sqoop 2不能和Sqoop 1安装在同一台机器上

        1    安装Sqoop 2服务端

apt-get install sqoop2-server

        2    安装Sqoop 2客户端

apt-get install sqoop2-client

2    配置Sqoop 2

        Sqoop 2服务都可以同MRv1或者YARN一起工作。但是不能同时和两个一起工作。

        1    MRv1

                修改/etc/defaults/sqoop2-server

CATALINA_BASE=/usr/lib/sqoop2/sqoop-server-0.20

        2    YARN

                修改/etc/defaults/sqoop2-server

CATALINA_BASE=/usr/lib/sqoop2/sqoop-server

        3    安装JDBC驱动

cp mysql-connector-java-version/mysql-connector-java-version-bin.jar  /var/lib/sqoop2/
3      启动、停止、访问Sqoop 2服务
service sqoop2-server start
service sqoop2-server stop
check: wget -qO - localhost:12000/sqoop/version
4      使用Sqoop 2 CLI客户端访问Sqoop 2服务
sqoop2
sqoop:000> set server --host localhost

      在hadoop集群的组件中还有一个压缩/解压利器库,那就是Snappy,Snappy的前身是Zippy,虽然只是一个数据压缩库,却被Google用于许多内部项目,如BigTable、MapReduce等。Google表示该算法库针对性能做了调整,针对64位x86处理器进行了优化。

1    安装Snappy

        Snappy is provided in the hadoop package along with the other native libraries (such as native gzip compression)

2    MapReduce中使用Snappy,修改/etc/hadoop/conf/mapred-site.xml

        1    MRv1

<property>
 <name>mapred.compress.map.output</name>
 <value>true</value>
</property>

<property>
 <name>mapred.map.output.compression.codec</name>
 <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

        2    YARN

<property>
 <name>mapreduce.map.output.compress</name>
 <value>true</value>
</property>

<property>
 <name>mapred.map.output.compress.codec</name>
 <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
3     使用 Snappy压缩 Sqoop的导入数据

        --compression-codec org.apache.hadoop.io.compress.SnappyCodec

4    使用Snappy压缩Hive数据

SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;

    当然使用Snappy还可以压缩其他数据,请参考官方文档





你可能感兴趣的:(sqoop,sqoop,2)