七,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.配置环境变量
2.1要把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
2.2下面这个默认没配置,感觉没配置也可,必要的时候,可进行配置,吧里面的HADOOP_MAPRED_HOME,HIVE_HOME等配好即可
/usr/software/sqoop/conf/sqoop-env.sh
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/hiveexport 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包的版本冲突导致
解决方法:将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.编辑 jdk的文件jdk1.8/jre/lib/security/java.policy,并且 . /etc/profile
vi /usr/software/java/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.6 ---
hdfs dfs -rm -r 【文件夹名】