mysql - 如何将mysql表中的数据加载到cloudera中(使用virtual box启动)

标签 mysql hadoop cloudera

我有一个使用 WAMP 服务器访问的 Web 应用程序,该服务器询问用户当前位置并获取他的纬度和经度。

这些纬度和经度值存储在 mysql 数据库的表中。

现在我需要处理这个纬度和经度值,以便为用户提供他/她最近的位置。

所以我想将mysql数据库中的这些经纬度值导入到hadoop中。

我安装了cloudera并使用virtual box启动了它。 现在,当我尝试使用这样的查询导入 mysql 表中的值时,在 cloudera 命令提示符中

$ bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1

其中 testDb 是我的数据库名称,latlog 是我的表名称

它显示这样的错误:

Error executing statement: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO) java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

如何将本地机器的mysql数据库中的表加载到虚拟机(cloudera)中的hadoop?

我尝试了网上提供的很多解决方案,但无法解决它。任何帮助将不胜感激..

最佳答案

将数据从 MySQL 导入到 Cloudera VM 的分步过程如下:

  1. 下载mysql-connector-java-5.1.26-bin.jar并将其保存在Cloudera的桌面中
  2. 使用命令将此 jar 文件复制到 sqoop 库中

    sudo cp/home/cloudera/Desktop/mysql-connector-java-5.1.26-bin.jar/usr/lib/sqoop/lib

  3. 现在使用命令 cd/usr/lib/sqoop 将当前工作目录更改为 sqoop

  4. 以系统管理员身份打开命令提示符,并通过运行 ipconfig 命令了解系统的 IPV4 地址,例如:192.168.56.1

  5. 现在在你的MySQL中使用命令发出所有权限

    .上的所有权限授予root@192.168.56.1,由“root”通过授予选项识别;

  6. 现在在cloudera命令行中输入此命令来导入数据bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1
    其中 testDb 是数据库名称,latlog 是表名称。然后它要求输入密码。输入 root 作为密码。现在使用 Sqoop 将数据从 MySQL 导入到 cloudera(Hadoop)

  7. 要查看导入的数据,请输入命令

    hadoop dfs -ls -R latlog

    它显示了存储导入数据的文件。要查看该文件中的内容,请输入命令

    hadoop dfs -cat latlog/part-m-00000

    打印 latlog 表中的所有数据。

    谢谢..

关于mysql - 如何将mysql表中的数据加载到cloudera中(使用virtual box启动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799408/

相关文章:

hadoop - 使用 Hive 将由双引号和逗号分隔的 CSV 文件导入 Hbase

solr - 有关 Nutch、Hadoop、Solr、MapReduce 和 Mahout 的信息

hadoop - pig - 包含多个 jar 的注册目录

java - 连接到Cloudera Impala环境时出现Kerberos错误

mysql - 检查连接时无法连接到任何指定的 MySQL 主机

php - 我需要将数据库中的数据显示到下拉模式 CodeIgniter

java - Hive 查询 Json 错误

asp.net - 从 Web 应用程序访问 HDFS

mysql - 对于典型的 Web 使用,将 MySQL 隔离设置为 “Read Uncommitted”(脏读)是否安全?即使有复制?

mysql - 编译 SELECT 查询时检测到未定义的绑定(bind) :