查看一下结果
# hdfs dfs -ls /user/test Found 2 items -rw-r--r-- 2 root supergroup 0 2014-12-01 14:16 /user/test/_SUCCESS -rw-r--r-- 2 root supergroup 16 2014-12-01 14:16 /user/test/part-m-00000 # hdfs dfs -cat /user/test/part-m-00000 1,michael 2,ted
我也不知道为什么mysql有3条数据,而导入了之后只有2条,有哪位懂的介绍下?
我遇到遇到的问题
如果你遇到以下问题14/12/01 10:12:42 INFO mapreduce.Job: Task Id : attempt_1406097234796_0017_m_000000_0, Status : FAILED Error: employee : Unsupported major.minor version 51.0用ps aux| grep hadoop看下会发现hadoop用的是jdk1.6 。我的cdh是5.0.1 sqoop版本是 1.4.4 ,我遇到了这个问题。
原因:sqoop是使用jdk1.7编译的,所以如果你用 ps aux| grep hadoop 看到hadoop用的是1.6运行的,那sqoop不能正常工作 注意:CDH4.7以上已经兼容jdk1.7 ,但如果你是从4.5升级上来的会发现hadoop用的是jdk1.6,需要修改一下整个hadoop调用的jdk为1.7,而且这是官方推荐的搭配
关于改jdk的方法
官方提供了2个方法 http://www.cloudera.com/content/cloudera/en/documentation/cdh4/latest/CDH4-Requirements-and-Supported-Versions/cdhrsv_topic_3. html这个是让你把 /usr/java/ 下建一个软链叫 default 指向你要的jdk,我这么做了,无效 http://www.cloudera.com/content/cloudera/en/documentation/archives/cloudera-manager-4/v4-5-3/Cloudera-Manager-Enterprise-Edition-Installation-Guide/cmeeig_topic_16_2.html
停掉所有hadoop相关服务的命令
for x in `cd /etc/init.d ; ls hive-*` ; do sudo service $x stop ; done for x in `cd /etc/init.d ; ls hbase-*` ; do sudo service $x stop ; done /etc/init.d/zookeeper-server stop for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x stop ; done
zookeeper , hbase, hive 如果你们没装就跳过。建议你们用ps aux | grep jre1.6 去找找有什么服务,然后一个一个关掉,先关其他的,最后关hadoop
启动所有
for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x start ; done /etc/init.d/zookeeper-server start for x in `cd /etc/init.d ; ls hbase-*` ; do sudo service $x start ; done for x in `cd /etc/init.d ; ls hive-*` ; do sudo service $x start ; done