七,sqoop 安装

sqoop安装完毕后,还需要一些坑爹的配置,此处瑾纪录下过程以及遇到过的麻烦:

1.下载sqoop并加mysql驱动包

http://mirror.bit.edu.cn/apache/sqoop/,下载,如下载sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,

将mysql(或其他db驱动包)放到 Sqoop 目录下的 lib。如 mysql-connector-java-5.1.38.tar.gz。

2.配置环境变量

要把HADOOP_MAPRED_HOME添加到系统环境,否则会报错/usr/software/sqoop/bin/../../hadoop/mapreduce does not exist!

需要 vi /etc/profiles加

SQOOP_HOME=/usr/software/hadoop
export HADOOP_MAPRED_HOME=/usr/software/hadoop

export SQOOP_HOME=/usr/software/hadoop

3.其他配置

3.1===

Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.

解决方法:/etc/profile最后加入 

HIVE_HOME=/usr/software/hive
export HIVE_CONF_DIR=/usr/software/hive/conf export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*

然后   执行 root> . /etc/profile,

3.2===

ERROR exec.DDLTask: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.readerFor(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/ObjectReader;

造成的原因:sqoop与hive使用的jackson包的版本冲突导致

解决方法:将sqoop的lib目录下jackson*.jar包备份,hive的lib目录下的jackson相关jar包拷贝到sqoop的lib目录下,并删除sqoop/lib下的低版本jackson*.jar

cp -rf [hive]/lib/jackson*.jar [sqoop]/lib/

3.3===

 ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

解决方法:

a.【hive】/conf/hive-site.xml复制到${SQOOP_HOME}/conf下

b.编辑下面文件,并且 . /etc/profile

vi /usr/software/java/jdk1.8/jre/lib/security/java.policy

修改jdk的文件jdk1.8/jre/lib/security/java.policy

具体配置如下:在文件中添加如下内容

grant {
        permission javax.management.MBeanTrustPermission "register";
};

 3.4---下面的问题摘抄自网上忙不过我自己没遇到

创建job的时候报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

造成的原因:这是因为sqoop缺少java-json.jar包.

解决方法:

java-json.jar下载地址:http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm
将java-json.jar放到/usr/local/sqoop/lib

3.5 --- Output directory hdfs://192.168.15.115:9000/hive/root already exists 这种就直接去hdfs上删除文件夹了
hdfs dfs -rm -r 【文件夹名】

 

 



 

上一篇:Linux 安装 Sqoop (并连接 mysql 测试)


下一篇:sqoop 数据导入hive