It's difficult to say without seeing the model. Can you share? Or at least list the code?
I would suggest you first try loading only a 1000 records into each table (or some other way of limiting your dataset) and keeping an eye on the Performance via Task Manager). Have you got log files switched on?
If it loads, check your table connections and specifically what the hierarchy table is generating.
So, there is no synthetic key? The table joins on NODEID?
How long does the load take (with the 10000 limit) without loading the hierarchy? How long does the hierarchy load on it's own take?
For hierarchy, is there any duplication in data? A 'Load Distinct' would help here. Are there redundant, date delimited nodes which can be removed?
The code if(isnull(PARENTNODEID),-1,PARENTNODEID) as PARENTNODEID, interests me. You may be loading a considerable amount of useless data where the PARENTNODEID is null. On your hierarchy load try putting the qualifier;
How many records are there in TABLE in total and how many of them are PARENTNODEID -1? How long does it take to load the data and hierarchy without the 10000 limit?
One thing is certain, 6000000 records with a hierarchy should be feasible. Of course, this depends upon how many fields, uniqueness of fields, hardware, etc. But we've got some heavy tables, lots of fields with 10,000,000 records attached to a hierarchy and we don't have any issues (at least none that bring the model down).