使用sqoop数据处理问题汇总
Call From node02/192.168.1.111 to node02:8032 failed on connection exception
背景
我搭建的hadoop集群的三台机子的ip地址为:
node01:192.168.1.105
node02:192.168.1.111
node03:192.168.1.108
这里的ip地址不连续,主要是因为我的是动态ip,之前的机子宕机了,所以它自动更新了ip地址。
①找不到8032端口。
原因是因为resourcemanager监听不到8032端口,从而无法进行数据导入,只需要在yarn-site.xml文件中配置yarn.resourcemanager.address即可,而且必须在node01机子启动yarn之前先启动node02机子的resourcemanager。
<property>
<name>yarn.resourcemanager.address</name>
<value>node02:8032</value>
</property>
resourcemanager的监听端口出现了8032即可以运行sqoop的导入数据了。
②查询hive数据是MySQL查询数据的n倍。
原因是因为在用sqoop导入mysql数据到hive中时,多次重复执行了导入的语句,致使hive数据是MySQL查询数据的n倍。
③node02机子的nodemanager状态为standby。
因为nodemanager为standby的时候,可能会受到一些限制,它在执行一些语句时,会优先选择active的机子来运行,导致在sqoop导入mysql数据到hive中时,遇到Connection refused的情况,只需要将其状态改为active即可,具体命令为hdfs haadmin -transitionToActive --forcemanual nn2。
④node02机子内存不足,自动关闭nodemanager。
因为在执行sqoop导入mysql数据到hive过程中,需要占用一定的内存,所以可以通过调增大所运行机子的nodemanager内存或者通过重新开启nodemanager结点即可。
增大所运行机子的nodemanager内存,需要配置yarn-site.yml:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
如果因为要处理的数据量太大,还需要配置mapred-site.xml:
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx1024m</value>
</property>
这里是本人在实现黑马的“教育大数据分析平台”部分项目所遇到的问题,主要是这些问题反反复复困扰了我n天,所以这里主要是记录一下我所遇到的问题和解决方案。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)