All queries are so slow on mysql NDB cluster
Redundant index. A PRIMARY KEY is an index, so there is not need for the redundant KEY no(no).  (DROPping this will speed up things a little.)

Agent. Where's the agent in the schema?  Is it a varchar?  or enum?  or normalized SMALLINT UNSIGNED.  The last would save space, hence improve speed, but would complicate the insert.

Better index. Replace INDEX(ip) with INDEX(ip, agent).  This will speed up the given SELECT some.  (But I suspect the agent is usually the same for a given ip.)

Country code There are very standard 2-letter country codes; use them instead of the bulky varchar(50).

Batching. For now for the real speedup...  Batch the inserts.  Collect them in a table, swap tables, INSERT..SELECT, etc.  Details here.  That technique is self-adjusting; so if things get slower, they actions also get more efficient.  That link also explains how to efficiently normalize.

Tuning. IndexMemory=128M seems unreasonably small.

Back to InnoDB?


  The select query also disappointed me, it takes almost 100 times longer than normal InnoDB.


The techniques I have mentioned are well tuned for InnoDB; I have less experience with NDB Cluster.  Maybe you should go back to InnoDB and we can work on making that better?  innodb_buffer_pool_size should be about 70% of RAM.

IPv6. A side note:  IPv4 needs only VARCHAR(15); IPv6 needs (39).  And ip addresses may as well be CHARACTER SET ascii, not utf8.  (No significant performance benefit here.)