我正在研究多节点设置(7个节点)上的SQOOP。
在客户端节点上,我安装了hadoop,sqoop。 在其他节点上只安装了Hadoop。
我正在使用 mySQL 。我创建了数据库 GAME_OF_THRONES 。我创建了表 kings_battles ,如下所示:
创建表kings_battles(名称VARCHAR(50)NOT NULL,年份INT NOT NULL,battle_number INT NOT NULL,attacker_king VARCHAR(50), defender_king VARCHAR(50),attacker_1 VARCHAR(50),attacker_2 VARCHAR(50),attacker_3 VARCHAR(50),attacker_4 VARCHAR(50), defender_1 VARCHAR(50),defender_2 VARCHAR(50),defender_3 VARCHAR(50),defender_4 VARCHAR(50),attacker_outcome VARCHAR(50), battle_type VARCHAR(50),major_death TINYINT,major_capture TINYINT, attacker_size INT,defender_size INT,attacker_commander VARCHAR(50), defender_commander VARCHAR(50),夏天TINYINT,位置VARCHAR(50), region VARCHAR(50),PRIMARY KEY(battle_number));
但是当我从客户端节点执行执行sqoop export命令时,我收到错误:
命令:
sqoop export --connect jdbc:mysql://localhost/GAME_OF_THRONES --table
kings_battles --username root --password hadoop123 --export-dir
/input/5kings_battles.csv
错误:
Error : com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'GAME_OF_THRONES'
我检查过数据库和表是在客户端节点中使用创建的 mysql -u root -p
如何解决此错误..如端口号,所需的IP地址。 谁能帮我吗。感谢。
答案 0 :(得分:0)
您的数据库名称似乎是game_of_thrones
而不是GAME_OF_THRONES
。
尝试:
sqoop export --connect jdbc:mysql://localhost/game_of_thrones --table kings_battles --username root --password hadoop123 --export-dir /input/5kings_battles.csv
为确保数据库名称的区分大小写,您可以使用命令检查所有数据库的列表 -
sqoop list-databases --connect jdbc:mysql://localhost/ --username root --password hadoop123
答案 1 :(得分:0)
您必须使用主机名而不是localhost更改连接链。
sqoop导出--connect jdbc:mysql:/ip-172-31-75-48.ec2.internal/game_of_thrones --table kings_battles-用户名root-密码hadoop123 --export-dir /input/5kings_battles.csv
它会起作用,因为它是YARN的发行问题。
要找到您的主机名,只需在shell中写上主机名。