Python3操作MongoDB批量upsert
代码如下:
1 | mongoClient = MongoClient('mongodb://172.16.72.213:27017/') |
Python3连接MySQL并且读取Blob字段信息
MongoDB:listDatabases failed : not master and slaveOk=false
异常描述
如果在MongoDB的SECONDARY上查询数据时会报如下错误信息:
1 | > show databases; |
Java读取Properties文件的方法
Java读取Properties文件有两种简单方法,就是使用ClassLoader中的资源读取方法。
- public InputStream getResourceAsStream(String name)
该方法是非静态方法,所以不能在静态代码中使用。 - public static InputStream getSystemResourceAsStream(String name)
该方法是静态方法,可以在静态代码中使用。
org.apache.kafka.common.errors.TimeoutException
使用kafka-console-producer.sh
向远端Kafka写入数据时遇到以下错误:
1 | $ bin/kafka-console-producer.sh --broker-list 172.16.72.202:9092 --topic test |
在没有配置advertised.host.name
的情况下,Kafka并没有广播我们配置的host.name
,而是广播了主机配置的hostname。远端的客户端并没有配置hosts,所以自然是连接不上这个hostname的,所以在远端客户端配置hosts。在客户端/etc/hosts
中添加以下内容后问题解决:
Kafka RecordTooLargeException问题解决
Producer向Kafka写入数据时遇到异常:org.apache.kafka.common.errors.RecordTooLargeException。该异常是因为单条消息大小超过限制导致的。解决方法是将限制参数调大:
(1)server端:server.properties
message.max.bytes
参数默认值为1000012,调整为适合的值,如10485760。
(2)producer端:
设置Producer的参数max.request.size
的值与server端的message.max.bytes
值一致。
Sqoop导入MySQL中含有回车换行符的数据
MySQL中的数据如下图:
检查HDFS上的目标文件内容可以看出,回车换行符位置的数据被截断了,导致数据列错位。
Sqoop提供了配置参数,在导入时丢弃掉数据的分隔符(\n,\r,\01)。