Wireless sensor networks (WSNs) are new generation of computer networks which have many potential applications and unique challenges. They usually consist of hundreds or thousands small sensor nodes such as MICA2, which operate autonomously; conditions such as cost, invisible deployment and many application domains, lead to small size and limited resources sensors. WSNs are susceptible to energy criterion and most of traditional networks architectures (i.e. Flat) are unusable on WSNs; due to count of existent sensor nodes, large-scale networks and their constraints. Also, WSNs have dynamic topology. One of most important method against to these problems is clustering. Clustering leads to more scalability, energy efficiency and prolong network lifetime in large-scale WSNs. As a result, this paper is focused on clustering in WSNs. It is including of: an overview of WSNs and clustering in WSNs, consist of its functionality, advantages, weaknesses, applications and various classifications. This work enables us to verify the purpose and capabilities of the WSNs and clustering techniques; also, the goal and effects of clustering techniques on WSNs are introduced. This would enable WSNs designers and managers to design and manage WSNs, more significant.