日结
昨天进行了数据导入hive。然后清洗的时候遇到问题,运行大约1分钟之后报错退出。看了报错信息是内存不足,我调大了虚拟机的内存,还是不行。然后今天我看了同学的虚拟机配置,内存只有4g,我意识到可能我给虚拟机分配的太多了,电脑自身剩的太少了,然后调整了一下。在尝试清洗,还是报错,可能内存还是不够。然后我调整清洗limit为100w条,成功。只能这样了,我的电脑只有8g运存,给了虚拟机4g。没法了。
然后昨天下午还遇到一个离谱的问题,中午睡了一觉,下午再启动hive就疯狂不停报错。然后查看了报错
解决:hdfs dfsadmin -safemode forceExit 退出安全模式
然后再启动还是报错,后来排查了好久,发现hive.site.xml有个propertity元素没闭合,加上后没问题了。
然后今天下午完成了以下问题
在尝试用sqoop将hive中的表传到mysql也遇到了问题
主要问题:
Container [pid=29125,containerID=container_1695476393586_0001_01_000003] is running 160897536B beyond the 'VIRTUAL' memory limit. Current usage: 151.0 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.
Caused by: java.lang.RuntimeException: Can't parse input data: '2023-09-12,C19,4080.0,2669576.0'
一个是内存不足,一个是由于数据格式不符合预期,可能是数据中包含了不正确的值或字段分隔符。
这个暂时不知道是不是建表的问题。
我的解决方法是把hive的表导出为csv文件,再导入mysql,也挺快的
没什么问题的话明天进行可视化的部分