Enroll Here: Developing Distributed Applications Using ZooKeeper Cognitive Class Exam Quiz Answers
Developing Distributed Applications Using ZooKeeper Cognitive Class Certification Answers
Module 1 – Introduction Zookeeper Quiz Answers – Cognitive Class
Question 1: What is NOT a benefit that distributed systems offer over centralized systems?
- Price to achieve redundancy
- Redundancy
- Ease of developing your own coordination service
- Scalability
Question 2: A ZooKeeper client can perform a read operation from any server in the ensemble, but a write operation must go through the ZooKeeper leader and requires a majority consensus to succeed. True or false?
- False
- True
Question 3: What’s the benefit of running ZooKeeper in Standalone mode over Replicated mode?
- Cheaper
- Resilience
- Simpler testing and learning
- High availability
Module 2 – The Zoookeeper Data Model Quiz Answers – Cognitive Class
Question 1: Which of the following statements is true?
- A client reading the data stored at a znode can receive some of the data.
- ZooKeeper is designed for high-volume storage.
- The path to a znode must be expressed as a canonical, absolute, and slash-separated path.
- Znodes can be used to store data that exceeds 1MB.
Question 2: A znode can be in multiple states at the same time. True or false?
- False
- True
Question 3: Which of the following commands is used to retrieve the access control list of a znode?
- fetchACL
- setACL
- printACL
- getACL
Module 3 – Programming and Advance Topics Quiz Answers – Cognitive Class
Question 1: In addition to the 4 letter commands, JMX can be used to monitor ZooKeeper. True or false?
- False
- True
Question 2: Which two authentication plugins are included with ZooKeeper?
- ip and MD5
- ip and identify
- digset and MD5
- ip and digest
Question 3: What are the bindings that ZooKeeper comes with out of the box?
- Ruby and Java
- Java and C#
- Python and C
- Java and C
Developing Distributed Applications Using ZooKeeper Final Exam Answers – Cognitive Class
Question 1: What is the primary purpose of ZooKeeper in the Hadoop architecture?
- To provide logging support for Hadoop jobs
- To support the execution of workflows consisting of a collection of actions
- To provide a centralized coordination service for distributed applications
- To move data into HDFS
Question 2: When executing ZooKeeper in Replicated mode, a new leader can be elected if the former leader fails. True or false?
- True
- False
Question 3: Which of the following are consistency guarantees made by ZooKeeper? Select all that apply.
- Atomicity
- Reliability
- Timeliness
- Release
Question 4: ZooKeeper guarantees simultaneously consistent cross-client views. True or false?
- True
- False
Question 5: ZooKeeper can be used to implement several use cases including
- Leader Election
- Queue Management
- Configuration Management
- Locking
- All of the above
Question 6: A ZooKeeper client can maintain a list of servers to connect to, and the client will go through its list until it successfully connects to a ZooKeeper server. True or false?
- True
- False
Question 7: ZooKeeper Watches can be used to
- Watch for failed MapReduce jobs
- Watch for changes to Hadoop configuration
- Watch for changes in the Hadoop Filesystem (HDFS)
- None of the above
Question 8: If you want to be notified of a change in a ZooKeeper znode, you should use
- The ZooKeeper getData() method
- The ZooKeeper sync() method
- The ZooKeeper callback() method
- A ZooKeeper Watch
Question 9: In ZooKeeper, if you want a znode to be deleted when the client session ends, you should create a
- Session znode
- Ephemeral znode
- Temp znode
- Persistent znode
Question 10: Using the –s parameter when creating a znode results in a
- Ephemeral znode
- Sequential znode
- Temp znode
- Session znode
- Persistent znode
Question 11: Which of the ‘four letter word’ commands will show you the status of a ZooKeeper server?
- stat
- dump
- conf
- cons
- ruok
Question 12: When using the ZooKeeper Java API, what do you need to implement in order to receive Watcher notifications?
- A constructor that calls the watch method
- A class that inherits from zNode
- The process method of the Watcher interface
- None of the above
Question 13: In ZooKeeper, setting an ACL only pertains to the specific znode and is not recursive. True or false?
- True
- False
Question 14: In ZooKeeper, what permission do you need to have in order to change the ACL on a znode?
- READ
- ADMIN
- WRITE
- DELETE
- CREATE
Question 15: You can plug in your own authentication scheme rather than using the ones provided out of the box by ZooKeeper. True or false?
- True
- False
Introduction to Developing Distributed Applications Using ZooKeeper
Apache ZooKeeper is a distributed coordination service widely used for building distributed systems and applications. It provides a centralized repository and a set of primitives for distributed coordination and synchronization. Below is a general guide on how to develop distributed applications using ZooKeeper.
1. Understanding ZooKeeper Basics:
- Nodes (ZNodes): ZooKeeper’s data model is similar to a file system, with nodes (ZNodes) organized in a hierarchical structure.
- Watches: Clients can set watches on ZNodes to receive notifications when the data associated with the node changes.
- Consistency: ZooKeeper provides strong consistency guarantees, making it suitable for coordination tasks.
2. Setting Up ZooKeeper:
- Download and install ZooKeeper from the official Apache ZooKeeper website.
- Configure ZooKeeper ensemble (cluster) by setting up multiple nodes.
3. ZooKeeper APIs:
- Use the ZooKeeper client library in your programming language (Java, Python, etc.).
- Connect to the ZooKeeper ensemble using the ZooKeeper client.
- Create, read, update, and delete ZNodes.
4. Distributed Locks with ZooKeeper:
- ZooKeeper can be used to implement distributed locks to ensure mutually exclusive access to a resource.
- Create an ephemeral ZNode as a lock. The client holding the lock continues to hold it until it releases the lock or disconnects.
5. Configuration Management:
- Use ZooKeeper for configuration management in distributed systems.
- Store configuration parameters as ZNodes, and clients can watch for changes to adapt dynamically.
6. Leader Election:
- Implement leader election using ZooKeeper for scenarios where only one node should perform a specific task at a time.
7. Error Handling and Connection Management:
- Implement robust error handling and connection management to handle network partitions and other issues gracefully.
8. Testing:
- Develop comprehensive unit tests to ensure the reliability and correctness of your distributed application.
9. Documentation:
- Document the ZooKeeper integration in your application for future maintenance and collaboration.
10. Monitoring and Metrics:
- Implement monitoring and metrics to keep track of ZooKeeper and your application’s health.
11. Security Considerations:
- Ensure proper security configurations and access controls for ZooKeeper.
12. Scaling:
- Consider the scalability aspects of your application and ZooKeeper ensemble as the system grows.
13. Logging:
- Use logging to capture events and errors for debugging and monitoring purposes.
14. Maintenance:
- Regularly review and update your ZooKeeper usage as the requirements of your distributed application evolve.