济南微信网站制作,如何制作app图标,网站费用单,公司网站建设开发方案sqoop安装教程及sqoop操作 文章目录sqoop安装教程及sqoop操作上传安装包解压并更名添加jar包修改配置文件添加sqoop环境变量启动sqoop操作查看指定mysql服务器数据库中的表在hive中创建一个teacher表跟mysql的mysql50库中的teacher结构相同将mysql中mysql50库中的sc数据导出到h…sqoop安装教程及sqoop操作 文章目录sqoop安装教程及sqoop操作上传安装包解压并更名添加jar包修改配置文件添加sqoop环境变量启动sqoop操作查看指定mysql服务器数据库中的表在hive中创建一个teacher表跟mysql的mysql50库中的teacher结构相同将mysql中mysql50库中的sc数据导出到hdfs指定的文件目录中sqoop -m 参数带条件过滤带条件过滤指定查询列query使用将mysql50中sc表导入到hive bigdata库中重写原数据会被覆盖增量导入上传安装包
这里两个安装包 sqoop-1.4.7 bin_hadoop-2.6.0.tar.gz和sqoop-1.4.7.tar.gz 因为hadoop版本为3.1.3 所以sqoop的版本太低需要自行配置 解压并更名
# 解压
[roothadoop install]# tar -zxf sqoop-1.4.7.tar.gz -C ../soft/
# 切换目录
[roothadoop install]# cd ../soft/
# 更名
[roothadoop soft]# mv sqoop-1.4.7/ sqoop147添加jar包
切换目录到 /opt/soft/sqoop147/lib/ 添加avro-1.8.1.jar
# 将hive312/lib下的两个jar包拷贝过来
[roothadoop lib]# cp /opt/soft/hive312/lib/hive-common-3.1.2.jar ./
[roothadoop lib]# cp /opt/soft/hive312/lib/mysql-connector-java-8.0.29.jar ./将sqoop-1.4.7.jar 拷贝到 /opt/soft/sqoop147/ 修改配置文件
切换到cd /opt/soft/sqoop147/conf
# 将配置文件复制并更名
[roothadoop conf]# cp sqoop-env-template.sh sqoop-env.sh
# 编辑 sqoop-env.sh
[roothadoop conf]# vim ./sqoop-env.sh 22 #Set path to where bin/hadoop is available23 export HADOOP_COMMON_HOME/opt/soft/hadoop31324 25 #Set path to where hadoop-*-core.jar is available26 export HADOOP_MAPRED_HOME/opt/soft/hadoop31327 28 #set the path to where bin/hbase is available29 #export HBASE_HOME30 31 #Set the path to where bin/hive is available32 export HIVE_HOME/opt/soft/hive31233 export HIVE_CONF_DIR/opt/soft/hive312/conf34 35 #Set the path for where zookeper config dir is36 export ZOOCFGDIR/opt/soft/zk345/conf添加sqoop环境变量
# 编辑/etc/profile
[roothadoop conf]# vim /etc/profile
# SQOOP_HOME
export SQOOP_HOME/opt/soft/sqoop147
export PATH$PATH:$SQOOP_HOME/bin
# 刷新文件
[roothadoop conf]# source /etc/profile启动
[roothadoop conf]# sqoop versionsqoop操作
\ 符号为连接符
查看指定mysql服务器数据库中的表
[roothadoop ~]# sqoop list-databases --connect jdbc:mysql://192.168.95.130:3306 --username root --password root 在hive中创建一个teacher表跟mysql的mysql50库中的teacher结构相同
[roothadoop ~]# sqoop create-hive-table --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table teacher --hive-table teacher将mysql中mysql50库中的sc数据导出到hdfs指定的文件目录中
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --target-dir /tmp/mysql50/sc --fields-terminated-by \t -m 1sqoop -m 参数
sqoop并行化是启多个map task实现的-m(或–num-mappers)参数指定map task数默认是四个。当指定为1时可以不用设置split-by参数不指定num-mappers时默认为4当不指定或者num-mappers大于1时需要指定split-by参数。并行度不是设置的越大越好map task的启动和销毁都会消耗资源而且过多的数据库连接对数据库本身也会造成压力。在并行操作里首先要解决输入数据是以什么方式负债均衡到多个map的即怎么保证每个map处理的数据量大致相同且数据不重复。–split-by指定了split column在执行并行操作时(多个map task)sqoop需要知道以什么列split数据其思想是
1、先查出split column的最小值和最大值2、然后根据map task数对(max-min)之间的数据进行均匀的范围切分带条件过滤
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --where SID01 --target-dir /tmp/mysql50/sid01 -m 1带条件过滤指定查询列
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --columns CID,score --where SID01 --target-dir /tmp/mysql50/sid01column -m 1query使用
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --target-dir /tmp/mysql50/scquery --query select * from sc where $CONDITIONS and CID02 and score80 --fields-terminated-by \t -m 1注意如果使用–query这个命令的时候需要注意的是where后面的参数, AND $ CONDITIONS 这个参数必须加上而且存在单引号与双引号的区别如果–query后面使用的是双引号那么需要在$CONDITIONS前加上 \即 \ $ CONDITIONS 如果设置map数量为1个时即-m 1不用加上–split-by ${tablename.column}否则需要加上
将mysql50中sc表导入到hive bigdata库中
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --hive-import --hive-database bigdata -m 1重写原数据会被覆盖
[roothadoop~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --hive-import --hive-overwrite --hive-database bigdata -m 1增量导入
[roothadoop ~]# sqoop import --connect jdbc:mysql://192.168.95.130:3306/mysql50 --username root --password root --table sc --hive-import --incremental append --hive-database bigdata -m 1