Zookeeper needs to write transactions to disk, otherwise if you restart zookeeper, it would forget about any transasctions it has heard. The way zookeeper writes to disk, is that before zookeeper responds to a transaction, it will append the transaction to a transaction log file. When the transaction log file reaches a certain size, a new transaction log file is created.
Writing to transaction log files is not efficient by itself, since on startup zookeeper would have to replay every transaction it ever processed. So periodically, zookeeper will write a snapshot of the current state of its in memory database to file. Then when starting up, zookeeper only has to load the snapshot, and any transaction logs since the snapshot was created.