
要关闭所有主机的防火墙
暂时关闭防火墙
systemctl stop firewalld
永久关闭防火墙
systemctl disable firewalld
设置开机禁用防火墙
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld二、安装SQOOP 1、上传并解压
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz2、修改文件夹名字
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.63、修改配置文件
# 切换到sqoop配置文件目录 cd sqoop-1.4.6/conf
# 复制配置文件并重命名 cp sqoop-env-template.sh sqoop-env.sh # vim sqoop-env.sh 编辑配置文件,并加入以下内容 export HADOOP_COMMON_HOME=/home/sunshj/hadoop-2.7.7 export HADOOP_MAPRED_HOME=/home/sunshj/hadoop-2.7.7/share/hadoop/mapreduce export HIVE_HOME=/home/sunshj/hive-1.2.1
# 切换到bin目录 cd /home/sunshj/sqoop-1.4.6/bin
# 修改配置文件,注释掉没用的内容(就是为了去掉警告信息) vim configure-sqoop
并在最后添加以下内容
for f in ${HADOOP_MAPRED_HOME}/*.jar;
do HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done
4、修改环境变量
vim .bashrc # 将sqoop的目录加入环境变量 export SQOOP_HOME=/home/sunshj/sqoop-1.4.6 export PATH=$PATH:$SQOOP_HOME/bin # 刷新 source .bashrc5、添加MySQL连接驱动
# 上传MySQL连接驱动到$SQOOP_HOME/lib cp /home/sunshj/mysql-connector-java-5.1.26-bin.jar /home/sunshj/sqoop-1.4.6/lib/6、测试
# 打印sqoop版本 sqoop version
# 测试MySQL连通性 sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456三、准备MySQL数据 1、登录MySQL数据库
mysql -u root -p123456;2、创建student数据库
create database student;3、切换数据库并导入数据
# mysql shell中执行 use student; set names utf8; source /student.sql; source /score.sql;4、import
MySQLToHDFS从传统的关系型数据库导入HDFS、HIVE、Hbase…
编写脚本,保存为MySQLToHDFS.conf
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
运行成功!
编写脚本,并保存为MySQLToHive.conf文件
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
在Hive中创建testsqoop数据库
create database testsqoop;
执行脚本
sqoop --options-file MySQLToHive.conf
--direct
加上这个参数,可以在导出MySQL数据的时候,使用MySQL提供的导出工具mysqldump,加快导出速度,提高效率
需要将master上的/usr/bin/mysqldump分发至 slave1、slave2的/usr/bin目录下
scp /usr/bin/mysqldump slave1:/usr/bin/ scp /usr/bin/mysqldump slave2:/usr/bin/5、export HDFSToMySQL
编写脚本,并保存为HDFSToMySQL.conf
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 HDFSToMySQL.conf
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)