当前位置: 首页 > news >正文

温州做网站公司有哪些网站怎么设置qq

温州做网站公司有哪些,网站怎么设置qq,删除wordpress网页无用,重庆房产信息网官网SQOOP安装及使用 SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数据的方式使用Navicat运行SQL文件导出MySQL数据库impo…SQOOP安装及使用 SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数据的方式使用Navicat运行SQL文件导出MySQL数据库importMySQLToHDFS编写脚本保存为MySQLToHDFS.conf执行脚本注意事项MySQLToHive编写脚本并保存为MySQLToHive.conf文件执行脚本--direct--e参数的使用MySQLToHBase编写脚本并保存为MySQLToHBase.conf在HBase中创建student表执行脚本exportHDFSToMySQL编写脚本并保存为HDFSToMySQL.conf先清空MySQL student表中的数据不然会造成主键冲突执行脚本查看sqoop helpSqoop 在从HDFS中导出到关系型数据库时的一些问题问题一问题二问题三**增量同步数据总结 SQOOP安装 1、上传并解压 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/soft/ 2、修改文件夹名字 mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6 3、修改配置文件 # 切换到sqoop配置文件目录 cd /usr/local/soft/sqoop-1.4.6/conf # 复制配置文件并重命名 cp sqoop-env-template.sh sqoop-env.sh # vim sqoop-env.sh 编辑配置文件并加入以下内容 export HADOOP_COMMON_HOME/usr/local/soft/hadoop-2.7.6 export HADOOP_MAPRED_HOME/usr/local/soft/hadoop-2.7.6/share/hadoop/mapreduce export HBASE_HOME/usr/local/soft/hbase-1.4.6 export HIVE_HOME/usr/local/soft/hive-1.2.1 export ZOOCFGDIR/usr/local/soft/zookeeper-3.4.6/conf export ZOOKEEPER_HOME/usr/local/soft/zookeeper-3.4.6 ​ # 切换到bin目录 cd /usr/local/soft/sqoop-1.4.6/bin # vim configure-sqoop 修改配置文件注释掉没用的内容就是为了去掉警告信息 4、修改环境变量 vim /etc/profile # 将sqoop的目录加入环境变量 5、添加MySQL连接驱动 # 从HIVE中复制MySQL连接驱动到$SQOOP_HOME/lib cp /usr/local/soft/hive-1.2.1/lib/mysql-connector-java-5.1.49.jar /usr/local/soft/sqoop-1.4.6/lib/ 6、测试 # 打印sqoop版本 sqoop version # 测试MySQL连通性 sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456 准备MySQL数据 登录MySQL数据库 mysql -u root -p123456; 创建student数据库 create database studentdb; 切换数据库并导入数据 # mysql shell中执行 use studentdb; source /usr/local/soft/bigdata29/student.sql; source /usr/local/soft/bigdata29/score.sql; 另外一种导入数据的方式 # linux shell中执行 mysql -uroot -p123456 studentdb /usr/local/soft/shujia/student.sql mysql -uroot -p123456 studentdb /usr/local/soft/shujia/score.sql 使用Navicat运行SQL文件 也可以通过Navicat导入 导出MySQL数据库 mysqldump -u root -p123456 数据库名任意一个文件名.sql import 从传统的关系型数据库导入HDFS、HIVE、HBASE...... MySQLToHDFS 编写脚本保存为MySQLToHDFS.conf sqoop执行脚本有两种方式第一种方式直接在命令行窗口中直接输入脚本第二种方式是将命令封装成一个脚本文件然后使用另一个命令执行 第一种方式 sqoop import \ --append \ --connect jdbc:mysql://master:3306/studentdb \ --username root \ --password 123456 \ --table student \ --m 1 \ --split-by id \ --target-dir /bigdata29/sqoopdata/student1/ \ --fields-terminated-by \t ​ 第二种方式使用脚本文件的形式 mysql2hdfs.conf import --append --connect jdbc:mysql://master:3306/studentdb --username root --password 123456 --table student --m 1 --split-by id --target-dir /bigdata29/sqoopdata/student2/ --fields-terminated-by , ​ ​ 执行脚本 sqoop --options-file MySQLToHDFS.conf 注意事项 1、--m 表示指定生成多少个Map任务不是越多越好因为MySQL Server的承载能力有限 2、当指定的Map任务数1那么需要结合--split-by参数指定分割键以确定每个map任务到底读取哪一部分数据最好指定数值型的列最好指定主键或者分布均匀的列避免每个map任务处理的数据量差别过大 3、如果指定的分割键数据分布不均可能导致数据倾斜问题 4、分割的键最好指定数值型的而且字段的类型为int、bigint这样的数值型 5、编写脚本的时候注意例如--username参数参数值不能和参数名同一行 --username root // 错误的 ​ // 应该分成两行 --username root 6、运行的时候会报错InterruptedExceptionhadoop2.7.6自带的问题忽略即可 21/01/25 14:32:32 WARN hdfs.DFSClient: Caught exception java.lang.InterruptedExceptionat java.lang.Object.wait(Native Method)at java.lang.Thread.join(Thread.java:1252)at java.lang.Thread.join(Thread.java:1326)at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.closeResponder(DFSOutputStream.java:716)at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.endBlock(DFSOutputStream.java:476)at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:652) ​ 7、实际上sqoop在读取mysql数据的时候用的是JDBC的方式所以当数据量大的时候效率不是很高 8、sqoop底层通过MapReduce完成数据导入导出只需要Map任务不许需要Reduce任务 part-m-00000 9、每个Map任务会生成一个文件 MySQLToHive 先会将MySQL的数据导出来并在HDFS上找个目录临时存放默认为/user/用户名/表名 然后再将数据加载到Hive中加载完成后会将临时存放的目录删除 编写脚本并保存为MySQLToHive.conf文件 import --connect jdbc:mysql://master:3306/studentdb?useUnicodetruecharacterEncodingUTF-8useSSLfalse --username root --password 123456 --table student --m 1 --hive-import --hive-overwrite --hive-database bigdata29 --create-hive-table --hive-table sqoop_students1 --fields-terminated-by , 执行脚本 sqoop --options-file MySQLToHive.conf --direct 加上这个参数可以在导出MySQL数据的时候使用MySQL提供的导出工具mysqldump加快导出速度提高效率 需要将master上的/usr/bin/mysqldump分发至 node1、node2的/usr/bin目录下 scp /usr/bin/mysqldump node1:/usr/bin/ scp /usr/bin/mysqldump node2:/usr/bin/ --e参数的使用 sqoop在导入数据时可以使用--e搭配sql来指定查询条件并且还需在sql中添加$CONDITIONS来实现并行运行mr的功能。 只要有--esql就需要加$CONDITIONS哪怕只有一个maptask。 sqoop通过继承hadoop的并行性来执行高效的数据传输。 为了帮助sqoop将查询拆分为多个可以并行传输的块需要在查询的where子句中包含$conditions占位符。 sqoop将自动用生成的条件替换这个占位符这些条件指定每个任务应该传输哪个数据片。 # 需求将学号1500100007学生从mysql查出来导入到hive中 select * from student where id1500100007 ​ ​ ​ import --connect jdbc:mysql://master:3306/studentdb?useUnicodetruecharacterEncodingUTF-8useSSLfalse --username root --password 123456 --query select * from score where id1500100007 and $CONDITIONS --target-dir /shujia/history/score1 --m 1 --hive-import --hive-overwrite --hive-database bigdata29 --create-hive-table --hive-table sqoop_score1 --fields-terminated-by , --direct MySQLToHBase 编写脚本并保存为MySQLToHBase.conf sqoop1.4.6 只支持 HBase1.0.1 之前的版本的自动创建 HBase 表的功能 import --connect jdbc:mysql://master:3306/studentdb?useUnicodetruecharacterEncodingUTF-8useSSLfalse --username root --password 123456 --query select * from student where id1500100003 and $CONDITIONS --target-dir /shujia/history/hbase_student --m 1 --hbase-create-table --hbase-table mysql2hbase1 --column-family info --hbase-row-key id --direct 在HBase中创建student表 create studentsq,cf1 执行脚本 sqoop --options-file MySQLToHBase.conf export HDFSToMySQL 编写脚本并保存为HDFSToMySQL.conf 在往关系型数据库中导出的时候我们要先在关系型数据库中创建好库以及表这些sqoop不会帮我们完成。 export --export-dir /bigdata29/teachers/ --columns id,name,grade,clazz --fields-terminated-by , --connect jdbc:mysql://master:3306/studentdb?useUnicodetruecharacterEncodingUTF-8useSSLfalse --username root --password 123456 --table sqoop_teacher --num-mappers 1 先清空MySQL student表中的数据不然会造成主键冲突 执行脚本 sqoop --options-file HDFSToMySQL.conf 查看sqoop help sqoop help ​ 21/04/26 15:50:36 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6 usage: sqoop COMMAND [ARGS] ​ Available commands:codegen           Generate code to interact with database recordscreate-hive-table Import a table definition into Hiveeval               Evaluate a SQL statement and display the resultsexport             Export an HDFS directory to a database tablehelp               List available commandsimport             Import a table from a database to HDFSimport-all-tables Import tables from a database to HDFSimport-mainframe   Import datasets from a mainframe server to HDFSjob               Work with saved jobslist-databases     List available databases on a serverlist-tables       List available tables in a databasemerge             Merge results of incremental importsmetastore         Run a standalone Sqoop metastoreversion           Display version information ​ See sqoop help COMMAND for information on a specific command. # 查看import的详细帮助 sqoop import --help 1、并行度不能太高就是 -m 2、如果没有主键的时候-m 不是1的时候就要指定分割字段不然会报错如果有主键的时候-m 不是1 可以不去指定分割字段默认是主键不指定 -m 的时候Sqoop会默认是分4个map任务。 export --export-dir /user/hive/warehouse/bigdata29.db/t_movie1/ --columns id,name,types --fields-terminated-by , --connect jdbc:mysql://master:3306/bigdata29?useUnicodetruecharacterEncodingUTF-8useSSLfalse --username root --password 123456 --table sqoop_movie --num-mappers 1 --direct Sqoop 在从HDFS中导出到关系型数据库时的一些问题 问题一 在上传过程中遇到这种问题 ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter 驱动版本的过低导致的其实在尝试这个方法的时候我们可以先进行这样加一行命令--driver com.mysql.jdbc.Driver \ 然后问题解决 ​ 如果添加命令之后还没有解决就把jar包换成高点版本的。 问题二 依旧是导出的时候会报错但是我们很神奇的发现也有部分数据导入了。这也就是下一个问题。 Caused by: java.lang.NumberFormatException: For input string: null 解决方式因为数据有存在null值得导致的 ​ 在命令中加入一行方式一中的修改方式方式二也就是转换一下格式--input-null-string \\N \   ​ --input-null-string \\N 问题三** java.lang.RuntimeException: Cant parse input data: 1998/5/11 出现像这样的问题大多是因为HDFS上的数据与关系型数据库创建表的字段类型不匹配导致的。仔细对比修改后就不会有这个报错啦 增量同步数据 我们之前导入的都是全量导入一次性全部导入但是实际开发并不是这样例如web端进行用户注册mysql就增加了一条数据但是HDFS中的数据并没有进行更新但是又再全部导入一次又完全没有必要。 所以sqoop提供了增量导入的方法。 1、数据准备 CREATE TABLE sqoop_stu2( id int, name STRING, age int, gender STRING, clazz STRING, last_mod TIMESTAMP )row format delimited fields terminated by , 2、将其先用全量导入到HDFS(hive)中去 ​ 3、先在mysql中添加一条数据在使用命令进行追加 4、根据时间进行大量追加不去重 #前面的案例中hive本身的数据也是存储在HDFS上的所以我今后要做增量操作的时候需要指定HDFS上的路径 import --connect jdbc:mysql://master:3306/student --username root --password 123456 --table student --target-dir /user/hive/warehouse/testsqoop.db/from_mysql_student --fields-terminated-by \t --incremental append --check-column id --last-value 3 ​ 结果但是我们发现有两个重复的字段 5、往往开发中需要进行去重操作sqoop提供了一个方法进行去重内部是先开一个map任务将数据导入进来然后再开一个map任务根据指定的字段进行合并去重 结果 之前有重复的也进行合并去重操作最后生成一个结果。 总结 –check-column 用来指定一些列这些列在增量导入时用来检查这些数据是否作为增量数据进行导入和关系型数据库中的自增字段及时间戳类似. 注意:这些被指定的列的类型不能使任意字符类型如char、varchar等类型都是不可以的同时–check-column可以去指定多个列 –incremental 用来指定增量导入的模式两种模式分别为Append和Lastmodified –last-value 指定上一次导入中检查列指定字段最大值 总结 RDBMS--HDFS     import HDFS---RDBMS    export ​ Mysql---HDFS(hive) 要知道你要数据的来源和数据的目的地 mysql: --connect jdbc:mysql://master:3306/student --username root --password 123456 --table student ​ hdfs: --target-dir /user/hive/warehouse/sqooptest.db/from_mysql_student --fields-terminated-by \t ​ hive: 1) --hive-import --hive-overwrite --create-hive-table (如果表不存在自动创建如果存在报错就不需要这个参数) --hive-database testsqoop --hive-table from_mysql_student --fields-terminated-by \t 2) --target-dir /user/hive/warehouse/bigdata29.db/sqoop_stu2 --fields-terminated-by , # 增量需要添加的参数 --incremental append --check-column id --last-value 3 或者是------------------------------------------------------------ --fields-terminated-by \t --check-column hive的列名 last_mod --incremental lastmodified --last-value 2022-06-18 16:40:09 --m 1# 如果需要去重请先搞清楚根据什么去重否则结果可能不是你想要的 --merge-key name   这里是根据姓名去重你可以改成自己的去重列名 # 经过实践得出如果要追加导入到hive中并且要进行去重的话建议最好使用lastmodified以时间戳的方式追加以写入hdfs的路径方式追加这样可以实现追加的同时并且去重。 ​ ​ hbase:如果hbase导入要创建表的话需要将--hbase-create-table参数放到hbase参数的第一个才会生效 --hbase-create-table --hbase-table studentsq --column-family cf1 --hbase-row-key id (mysql中的列名) --m 1 ​ ​ ​ HDFS---mysql ​ hdfs: --columns id,name,age,gender,clazz --export-dir /shujia/bigdata17/sqoopinput/ --fields-terminated-by , # 如果数据分割出来的字段值有空值需要添加以下参数面试可能会面到 --null-string \\N --null-non-string \\N
http://www.hkea.cn/news/14270343/

相关文章:

  • 备案号新增网站建网站 域名
  • 哈尔滨网站搜索优化公司网站怎么自己建设
  • 效果图网站无缝连接wordpress怎么弄主题
  • 企业网站开发服务合同电商网站开发的目的是
  • 网站改版文案包装百度开放平台 wordpress
  • 景区网站建设材料网站批量收录
  • 三亚房产网站开发邯郸做小程序的网络公司
  • 网站模板安装步骤wordpress无插件邮件
  • 门户网站建设好处山西长治一企业
  • 查询网站名有没有收录自己创业网站开发
  • 网站建设的课程都需要什么如何同步目录wordpress
  • 工信部网站验证码一般电脑网站建设及运营多少钱
  • 特产网站怎么做网站域名虚拟主机
  • 创建平台网站下载软件广州条友网广告推荐
  • 用邮箱做网站网站页面外链怎么做
  • 建设工程公司企业简介南宁外包seo服务
  • 柳州网站建设公司哪家好网页设计模板免费下载网站
  • 专业网站建设经费申请报告网站网站建设公
  • 做汽车行业必须注册际零件网站wordpress访问需要密码
  • 青海省高速公路建设管理局网站网站的二级栏目怎么做
  • 网站建设信 信科网络湖南3合1网站建设电话
  • 律师网站素材免费搭建私人网站
  • 青岛网站设计公司成都房地产政策
  • 健身所网站建设策划书业务员自己掏钱做网站可以吗
  • 如何建设一个双语的网站河北建设协会官方网站
  • 向百度提交网站网页设计实训报告结束语
  • ps上怎么做网站轮播图为什么北京一夜封了
  • 企业网站大全网站开发技术的选择
  • 网站设计行业吃香么多少钱网站设计
  • 如何建设提卡网站广西seo排名