13_尚硅谷大数据之常见错误及解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第13章常见错误及解决方案
1)SecureCRT 7.3出现乱码或者删除不掉数据,免安装版的SecureCRT 卸载或者用虚拟机直接操作或者换安装版的SecureCRT
2)连接不上mysql数据库
(1)导错驱动包,应该把mysql-connector-java-5.1.27-bin.jar导入/opt/module/hive/lib的不是这个包。错把mysql-connector-java-5.1.27.tar.gz导入hive/lib包下。
(2)修改user表中的主机名称没有都修改为%,而是修改为localhost
3)hive默认的输入格式处理是CombineHiveInputFormat,会对小文件进行合并。
hive (default)> set hive.input.format;
hive.input.format=bineHiveInputFormat
可以采用HiveInputFormat就会根据分区数输出相应的文件。
hive (default)> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
4)不能执行mapreduce程序
可能是hadoop的yarn没开启。
5)启动mysql服务时,报MySQL server PID file could not be found! 异常。
在/var/lock/subsys/mysql路径下创建hadoop102.pid,并在文件中添加内容:4396
6)报service mysql status MySQL is not running, but lock file (/var/lock/subsys/mysql[失败])异常。
解决方案:在/var/lib/mysql 目录下创建:-rw-rw----. 1 mysql mysql 5 12月22 16:41 hadoop102.pid 文件,并修改权限为777。
附录:Sqoop常用命令及参数手册
这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。
命令&参数详解
刚才列举了一些Sqoop的常用命令,对于不同的命令,有不同的参数,让我们来一一列举说明。
首先来我们来介绍一下公用的参数,所谓公用参数,就是大多数命令都支持的参数。
公用参数:数据库连接
公用参数:import
公用参数:export
公用参数:hive
公用参数介绍完之后,我们来按照命令介绍命令对应的特有参数。
命令&参数:import
将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。
1) 命令:
如:导入数据到hive中
如:增量导入数据到hive中,mode=append
supported. Please remove the parameter --append-mode)
如:增量导入数据到hdfs中,mode=lastmodified
尖叫提示:使用lastmodified方式导入数据要指定增量数据是要--append(追加)还是要--merge-key(合并)
尖叫提示:last-value指定的值是会包含于增量导入的数据中
命令&参数:export
从HDFS(包括Hive和HBase)中奖数据导出到关系型数据库中。
1) 命令:
如:
命令&参数:codegen
将关系型数据库中的表映射为一个Java类,在该类中有各列对应的各个字段。如:
命令&参数:create-hive-table
生成与关系数据库表结构对应的hive表结构。命令:
如:
命令&参数:eval
可以快速的使用SQL语句对关系型数据库进行操作,经常用于在import数据之前,了解一下SQL语句是否正确,数据是否正常,并可以将结果显示在控制台。
命令:
参数:
命令&参数:import-all-tables
可以将RDBMS中的所有表导入到HDFS中,每一个表都对应一个HDFS目录
命令:
参数:
命令&参数:job
用来生成一个sqoop任务,生成后不会立即执行,需要手动执行。
命令:
如:
尖叫提示:如果需要连接metastore,则--meta-connect jdbc:hsqldb:hsql://linux01:16000/sqoop 参数:
尖叫提示:在执行一个job时,如果需要手动输入数据库密码,可以做如下优化
命令&参数:list-databases
命令:
如:
参数:与公用参数一样
命令&参数:list-tables
命令:
如:
命令&参数:merge
将HDFS中不同目录下面的数据合并在一起并放入指定目录中
尖叫提示:上边数据的列之间的分隔符应该为\t,行与行之间的分割符为\n,如果直接复制,请检查之。
命令:
如:
命令&参数:metastore
记录了Sqoop job的元数据信息,如果不启动该服务,那么默认job元数据的存储目录为~/.sqoop,可在sqoop-site.xml中修改。
命令:
如:启动sqoop的metastore服务