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

很简单,不是什么 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中

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

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐