| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> sqoop安装以及使用(保会) -> 正文阅读 |
|
[大数据]sqoop安装以及使用(保会) |
?sqoop安装及使用tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 创建软连接 Ln -s sqoop............ sqoop 1)切换到sqoop配置文件目录 cd /home/hadoop/app/sqoop/conf 2) 复制配置文件并重命名 cp sqoop-env-template.sh sqoop-env.sh 3) vim sqoop-env.sh 编辑配置文件,并加入以下内容(以下是我hadoop,zookeeper,hbase,hive安装路径) export HADOOP_COMMON_HOME=/home/hadoop/app/hadoop export HADOOP_MAPRED_HOME=/home/hadoop/app/hadoop/share/hadoop/mapreduce export HBASE_HOME=/home/hadoop/app/hbase export HIVE_HOME=/home/hadoop/app/hive export ZOOCFGDIR=/home/hadoop/app/zookeeper/conf export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper 4) 切换到bin目录 cd /home/hadoop/app/qoopbin # vim configure-sqoop 修改配置文件,注释掉没用的内容(就是为了去掉警告信息) vim ~/.bashrc # 将sqoop的目录加入环境变量 1)添加mysql连接驱动 sqoop可能会用到MySQL导入到hdfs上,就需要myssql驱动 cp mysql-connector-java-5.1.49.jar /home/hadoop/app/sqoop/lib/ 错误:如何寻找sqoop-1.4.6.jar文件包,解决找不到或无法加载主类org.apache.sqoop.sqoop的问题 解决方案: 1.sqoop-1.4.x.tar.gz在1.4.5以上的安装包已经没有了这个jar包,必须下载sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz这个安装包。 2.然后解压这个安装包,打开安装包取出sqoop-1.4.6.jar放在hadoop的lib下,或者放到share/hadoop/yarn下. 3.再次导入数据,查看报错是否存在,一般情况都会解决。 1)测试 sqoop version 2)测试MySQL连通性 sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456 再执行脚本之前打开zookeeper,hdfs,yarn? (sqooo用的就是mapreduce)
import --connect jdbc:mysql://master:3306/student --username root --password 123456 --table student --m 2 --split-by age --target-dir /sqoop/data/student --fields-terminated-by ',' 执行脚本: sqoop --options-file MySQLToHDFS.conf 注意事项: 1、--m 表示指定生成多少个Map任务,不是越多越好,因为MySQL Server的承载能力有限 2、当指定的Map任务数>1,那么需要结合--split-by参数,指定分割键,以确定每个map任务到底读取哪一部分数据,最好指定数值型的列 3、如果指定的分割键数据分布不均,可能导致数据倾斜问题 4、编写脚本的时候,注意:例如:--username参数,参数值不能和参数名同一行 2)MysqlToHive import --connect jdbc:mysql://master:3306/student --username root --password 123456 --table score --fields-terminated-by "\t" --lines-terminated-by "\n" --m 2 --split-by student_id --hive-import --hive-overwrite --create-hive-table --hive-database testsqoop --hive-table Score 执行脚本: sqoop --options-file 脚本名 注意:--direct 加上这个参数,可以在导出MySQL数据的时候,使用MySQL提供的导出工具mysqldump,加快导出速度,提高效率 注意:在hive中不能建表 问题:Sqoop异常解决ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException 解决:Hbase和hive的libthrift版本分别是libthrift-0.8.0.jar,libthrift-0.9.0.jar copy libthrift-0.9.0.jar 到sqoop/lib目录下,问题解决。 再次支持导入语句的时候出现目录已经存在的问题 ?ERROR security.UserGroupInformation: PriviledgedActionException as:jifeng cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory project already exists 14/09/08 01:28:56 ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory project already exists 删除目录问题解决: [hadoop@master ~]$ hadoop dfs -rmr /user/hadoop/score Warning: $HADOOP_HOME is deprecated. Deleted hdfs://jifeng01:9000/user/jifeng/project 3)MysqlToHbase import --connect jdbc:mysql://master:3306/student --username root --password 123456 --table student --hbase-table student --hbase-row-key id --m 1 --column-family cf1 注意:在HBase中创建student表 create 'student','cf1' 执行脚本: sqoop --options-file 脚本名
export --connect jdbc:mysql://master:3306/student?useUnicode=true&characterEncoding=UTF-8 --username root --password 123456 -m 1 --columns id,name,age,gender,clazz --export-dir /sqoop/data/student/ --fields-terminated-by ',' --table Student 注意:先清空MySQL student表中的数据,不然会造成主键冲突 执行脚本: sqoop --options-file 脚本名 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:03:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |