sqoop import mysql数据到hdfs 失败错误(sqoop list OK import不OK)(communications link failure)

本文介绍了如何编辑Hadoop配置文件,调整Sqoop连接参数,以及在MySQL集群中设置权限,以确保顺利将MySQL数据导入HDFS。步骤包括修改mapreduce内存限制、连接主机调整和赋予所有节点root权限。

让我来救人 !!!!!!!!!!!!!!!!

很简单,不是什么 mysql-connector-...... jar的问题(可以先忽略,我用的就是5.1.40)


1.编辑Hadoop/etc/hadoop.mapred-site.xml

        这些基于集群之外,专门为该错误提供的5项property

        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>2048</value>
        </property>
        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>4096</value>
        </property>
        <property>
                <name>mapreduce.job.ubertask.maxmaps</name>
                <value>4</value>
        </property>
        <property>
                <name>mapreduce.job.ubertask.maxreduces</name>
                <value>1</value>
        </property>
        <property>
                <name>mapreduce.job.ubertask.maxbytes</name>
                <value>2147483648</value>
        </property>
2.调整执行主体,将localhost调整为master

        调整前

sqoop import --connect jdbc:mysql://localhost:3306/test?useSSL=false --username root --password 123456 --table test1 -m 1
        调整后
sqoop import --connect jdbc:mysql://master1:3306/test?useSSL=false --username root --password 123456 --table test1 -m 1
3.将主机和从机(集群)的映射名(或者ip)设置全部权限,添加到MySQL的数据库中

     直接添加即可

grant all privileges on * . * to root@ip地址   identified by '密码';

grant all privileges on * . * to root@172.18.0.2 identified by '123456';
flush privileges;

grant all privileges on * . * to root@172.18.0.3 identified by '123456';
flush privileges;

grant all privileges on * . * to root@172.18.0.4 identified by '123456';
flush privileges;

#也可以最后刷新
flush privileges;

调整完成这三部之后

重新启动集群,启动mysql(mysql添加权限,不用重启,保证启动状态即可)

即可
使用sqoop将mysql数据导入hdfs中

如果,救到了大家,就先转发一下吧!!帮助更多伙伴

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值