在hadoop 里安装 sqoop 并把mysql数据导入hdfs
来源:互联网 发布:flash播放器mac版 编辑:程序博客网 时间:2024/04/28 18:33
hadoop 2.6.0
sqoop:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
然后把sqoop 解压。这里解压发生的问题是,
tar: /home/luis:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出
tar -xzvf XXXXX -C ~/ 大写-C 不要忘记加上。
配置环境变量:sudo nano /etc/bash.bashrc
加上SQOOP_HOME=/home/hadoop/sqoop-1.4.6
PATH=$PATH:$SQOOP_HOME
source/etc/profile
修改配置文件
在$SQOOP_HOME/conf 目录下拷贝sqoop-env-template.sh改名为sqoop-env.sh.
cp sqoop-env-template.sh sqoop-env.sh
#Setpath to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/luis/hadoop-2.6.0
#Setpath to where hadoop-*-core.jar is available
#export HADOOP_MAPRED_HOME=/home/luis/hadoop-2.6.0
#setthe path to where bin/hbase is available
export HBASE_HOME=/home/luis/hbase-1.0.1.1
#Setthe path to where bin/hive is available
#export HIVE_HOME=
#Setthe path for where zookeper config dir is
export ZOOCFGDIR=/home/hadoop/zookeeper-3.4.6
修改$SQOOP_HOME/bin/configure-sqoop
注释掉HCatalog,Accumulo检查(除非你准备使用HCatalog,Accumulo等HADOOP上的组件)
##Moved to be a runtime check in sqoop.
#if[ ! -d "${HCAT_HOME}" ]; then
# echo "Warning: $HCAT_HOME does notexist! HCatalog jobs will fail."
# echo 'Please set $HCAT_HOME to the root ofyour HCatalog installation.'
#fi
#if[ ! -d "${ACCUMULO_HOME}" ]; then
# echo "Warning: $ACCUMULO_HOME does notexist! Accumulo imports will fail."
# echo 'Please set $ACCUMULO_HOME to the rootof your Accumulo installation.'
#fi
#Add HCatalog to dependency list
#if[ -e "${HCAT_HOME}/bin/hcat" ]; then
# TMP_SQOOP_CLASSPATH=${SQOOP_CLASSPATH}:`${HCAT_HOME}/bin/hcat-classpath`
# if [ -z "${HIVE_CONF_DIR}" ]; then
# TMP_SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}:${HIVE_CONF_DIR}
# fi
# SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}
#fi
#Add Accumulo to dependency list
#if[ -e "$ACCUMULO_HOME/bin/accumulo" ]; then
# for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*accumulo.*jar |cut -d':' -f2`; do
# SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
# done
# for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*zookeeper.*jar |cut -d':' -f2`; do
# SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
# done
#fi
同时我还把zookeeper 的内容给注释掉了。因为老是卡在那里报错。
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
# echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
#fi
就配置完了,然后运行命令,还是会有常见异常:
Streaming result set com.mysql.jdbc.RowDataDynamic@12e9d40f is still active
执行sqoop脚本时,出现这个异常是因为mysql的驱动的原因,使用最新的mysql驱动包。
但是即使我更新到最新的java链接mysql的包,放入lib 目录里还是会出错。
原因是,不止一个地方我放入了 java连接mysql 的包,要把所有共享基础包的地方的连接方式的包都换成最新的。比如黄底位置
$ sudo find -name mysql-connector-java*
./home/luis/下载/mysql-connector-java-5.1.32
./home/luis/下载/mysql-connector-java-5.1.32/mysql-connector-java-5.1.32-bin.jar
./home/luis/weka/weka-3-6-13/lib/mysql-connector-java-5.1.6-bin.jar
./home/luis/sqoop-1.4.6/lib/mysql-connector-java-5.1.32-bin.jar
./home/luis/.eclipse/org.eclipse.platform_3.8_155965261/plugins/org.python.pydev.jython_4.2.0.201507041133/cachedir/packages/mysql-connector-java-5.1.6-bin.pkc
./usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/mysql-connector-java-5.1.32-bin.jar
./usr/share/java/mysql-connector-java-5.1.32-bin.jar
然后可以使用 命令把mysql 导入 hdfs了
导入全部 表 sqoop import-all-tables --connect jdbc:mysql://192.168.1.113:3306/weibocatch
1、每个表必须都只有一个列作为主键;
2、必须将每个表中所有的数据导入,而不是部分;
3、必须使用默认分隔列,且WHERE子句无任何强加的条件
导入单张表:
./sqoop import --connect jdbc:mysql://192.168.1.113:3306/weibocatch --username root --password xxxxx --table w_transfer -m1 这里的m 1 表示的是启动map 的个数
测试连接
sqoop list-databases --connect jdbc:mysql://172.16.247.140:3306/ --username xxx --password xxx
列出表
sqoop list-tables --connect jdbc:mysql://172.16.247.140:3306/sqoop --username hive --password 123456
然后就可以进到hadoop的hdfs里头看看内容了。
hdfs 的命令 ls 和 ls -al ,rm , rmr
- 在hadoop 里安装 sqoop 并把mysql数据导入hdfs
- 大数据基础(二)hadoop, mave, hbase, hive, sqoop在ubuntu 14.04.04下的安装和sqoop与hdfs,hive,mysql导入导出
- mysql数据导入Hadoop之Sqoop安装
- Sqoop 数据从HDFS导入到mysql
- SQOOP从MySQL导入数据到HDFS
- Hadoop 0.20.2+Sqoop 1.44+HBase 0.94从MySql往HDFS导入数据报错
- Hadoop Sqoop;从HDFS导入数据到MYSQL数据库中出现中文字符乱码
- Sqoop安装配置及将mysql数据导入到hdfs中
- Sqoop安装配置及将mysql数据导入到hdfs中
- Sqoop-1.4.6安装配置及Mysql->HDFS->Hive数据导入(基于Hadoop2.7.3)
- Sqoop MySQL 导入到HDFS
- Sqoop导入数据到hdfs
- 通过sqoop 实现hdfs与mysql的数据导入导出
- 使用sqoop将mysql数据导入到hdfs
- 使用Sqoop将HDFS中数据导入MYSQL中
- sqoop:mysql和Hbase/Hive/Hdfs之间相互导入数据
- sqoop 从mysql导入数据到hdfs、hive
- sqoop从mysql数据库导入数据到hdfs中
- Tree of Life(easy) Codeforces 690F1
- 当论文看不懂,PY学不会的时候。
- F - TIANKENG’s restaurant hd 4886
- H5学习之1 audio标签的使用
- 【排序】【Java】Java实现几种常见排序方法
- 在hadoop 里安装 sqoop 并把mysql数据导入hdfs
- PAT甲级.1009. Product of Polynomials (25)
- js基础学习之--DOM总结
- Hibernate学习笔记----双向多对多关联
- Hadoop+Spark集群搭建
- UVa 10003
- DroidPlugin源码分析安装和卸载
- Nginx HTTP负载均衡示例
- 15、Spring Boot使用Druid和监控配置【从零开始学Spring Boot】