The correct answer is C. Java (programming language).
Hadoop is a software framework for distributed storage and processing of large data sets. It is designed to scale up from single servers to thousands of machines, providing high availability and fault tolerance. Hadoop is written in Java, and it uses a MapReduce programming model to process data.
Option A is incorrect because Java is a software platform, not a programming language.
Option B is incorrect because Perl is a programming language, but it is not used to write Hadoop.
Option D is incorrect because Lua is a programming language, but it is not used to write Hadoop.