Unix will be a good environment to do this . I am afraid how NCBI will allow this big quay sequences. I am doing kind a same thing but not completely similar. My primary idea for your problem is
1. Get install BLAST on unix
2. Download the NCBI BLAST database on local pc. Before using , read the README file in the ftp site and follow their instruction. [In this point , you can make different BLAST DB according to your requirement]
3. Once BLAST database is created , test the system with one single query sequences (Out of 4,54,871 ). To get the top five results , use "blastp" commend with "-outfmt 6" (tabular format) and extract sequence that belongs to top of the list .
To extract sequence form a big list of file you can use faSomeRecords . Detail instruction is here. Once you extracted , save the file .
4. Repeat STEP 3 for next query sequence. for this repetition (Loop) , you can use PERL.
[Note : You have to develop a analysis pipeline. Also , as you list of query sequence is much large, you can reduce the query sequence by sequence similarity and select a cutoff point to define different cluster. The cut off point should us selected in that way , inside one cluster all query sequence share the same top list sequence. then in STEP 3, use only one member form every cluster of sequence]
** This completely a rough thinking on your problem . You may face some practical problem while implement the whole analysis pipeline.