āĻšā§ āĻšāĻžāĻŦāĻ°! āĻāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¯āĻž āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ Apache Kafka āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ AWS RDS āĻā§āĻ˛āĻžāĻāĻĄ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ˛āĻŋāĻāĻŦā§ā§ˇ
āĻāĻ¸ā§āĻ¨ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻŽāĻ¨ā§ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ "āĻĢā§āĻ˛āĻžāĻ" āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻžāĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻā§āĻˇāĻžāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻž āĻŽā§āĻĻā§āĻ°āĻžāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨, āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻ¸ā§āĻŽāĻž āĻŦāĻž āĻāĻ°ā§āĻĨāĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻĻā§āĻ°ā§āĻ¤ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻžāĻĻā§ āĻāĻŦāĻ āĻāĻžāĻĻā§ āĻŽāĻ¨ā§āĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻĄāĻŧāĻž āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ - āĻāĻžāĻāĻž āĻ āĻ§ā§āĻ¨ā§ āĻĒāĻĄāĻŧā§āĻ¨! āĻ¯āĻžāĻāĻ¯āĻŧāĻž!
āĻā§āĻŽāĻŋāĻāĻž
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻĄā§āĻāĻžāĻ° āĻ°āĻŋāĻ¯āĻŧā§āĻ˛-āĻāĻžāĻāĻŽ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻāĻŦāĻ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻāĻ° āĻā§āĻ¨ā§āĻĄā§āĻŽ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻžāĻĢāĻāĻž āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ - āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻ¯āĻāĻ¨ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§āĻˇ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĢāĻŋāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻŖāĻ¨āĻž āĻāĻŦāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨:
āĻāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻŦāĻ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ. āĻ āĻĢāĻ˛āĻžāĻāĻ¨ āĻāĻŦāĻ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻāĻ¯āĻŧ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻĄā§āĻāĻž āĻā§āĻˇāĻ¤āĻŋ āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§, āĻāĻžāĻĢāĻāĻž āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻžāĻĢāĻāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻāĻŋāĻĒāĻžāĻ° āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻĒāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤;āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ - āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ "āĻŽāĻžāĻāĻā§āĻ°ā§-āĻŦā§āĻ¯āĻžāĻ" āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§ āĻā§āĻ āĻĄā§āĻāĻž āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻā§āĻ°āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻā§āĻ āĻŦā§āĻ¯āĻžāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦāĻŋāĻ°āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¯ā§āĻā§āĻ¨ āĻĄā§āĻāĻž āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§āĻ° āĻļā§āĻˇā§, āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŦā§āĻĻā§āĻ§āĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻŦā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§āĻ° āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ;āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ - āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻĄ āĻĄā§āĻāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻŽāĻ¨ āĻĄā§āĻāĻž āĻŦā§āĻāĻžāĻ¯āĻŧ āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻāĻā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻŋāĻ˛ā§āĻĄāĨ¤ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻĄ āĻĄā§āĻāĻž āĻ¸ā§āĻ°ā§āĻ¸ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻžāĻ°āĻŖā§, āĻāĻāĻŋ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻāĻĒāĻŋāĻāĻāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§;AWS RDS āĻāĻāĻāĻŋ āĻ āĻĒā§āĻā§āĻˇāĻžāĻā§āĻ¤ āĻ¸āĻ¸ā§āĻ¤āĻž āĻā§āĻ˛āĻžāĻāĻĄ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸, āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¯āĻž āĻ¸ā§āĻāĻāĻĒ, āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻāĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§, āĻ¯āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻŽāĻžāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻžāĻĢāĻāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§
āĻāĻžāĻĢāĻāĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻāĻž āĻāĻā§, āĻāĻžāĻ°āĻŖ JVM āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ:
sudo apt-get update
sudo apt-get install default-jre
java -version
āĻāĻžāĻĢāĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ:
sudo useradd kafka -m
sudo passwd kafka
sudo adduser kafka sudo
āĻāĻ°āĻĒāĻ°ā§, āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻŋāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨:
wget -P /YOUR_PATH "http://apache-mirror.rbc.ru/pub/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz"
āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻāĻ°ā§āĻāĻžāĻāĻ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨:
tar -xvzf /YOUR_PATH/kafka_2.12-2.2.0.tgz
ln -s /YOUR_PATH/kafka_2.12-2.2.0 kafka
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ āĻāĻā§āĻāĻŋāĻāĨ¤ āĻāĻ¸āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻšāĻ˛ āĻ¯ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻĒāĻ¨āĻžāĻā§ āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻŦāĻŋāĻāĻžāĻ, āĻā§āĻˇā§āĻ ā§ āĻŽā§āĻā§āĻ¨, āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻŋ:
vim ~/kafka/config/server.properties
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻˇā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
delete.topic.enable = true
āĻāĻžāĻĢāĻāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ ZooKeeper āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¯āĻž āĻāĻžāĻĢāĻāĻž āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¸ā§:
Cd ~/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
ZooKeeper āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ āĻāĻžāĻĢāĻāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
bin/kafka-server-start.sh config/server.properties
āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic transaction
āĻāĻ¸ā§āĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻŋ āĻ¯ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
bin/kafka-topics.sh --describe --zookeeper localhost:2181
āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻāĻ āĻāĻŦāĻ āĻā§āĻā§āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻŽā§āĻšā§āĻ°ā§āĻ¤āĻā§āĻ˛āĻŋ āĻŽāĻŋāĻ¸ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻāĻŦāĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻ˛ā§āĻāĻž āĻāĻā§ -
āĻĒā§āĻ°āĻ¯ā§āĻāĻ āĻ˛ā§āĻāĻž
āĻĒā§āĻ°āĻ¯ā§āĻāĻ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻĄā§āĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ - āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 100āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĨ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻĄā§āĻāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻ°āĻž āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ āĻāĻŋāĻ§āĻžāĻ¨ āĻŦāĻ˛āĻ¤ā§ āĻŦā§āĻāĻžāĻ¯āĻŧ:
- āĻļāĻžāĻāĻž - āĻā§āĻ°ā§āĻĄāĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻā§āĻ°āĻ¯āĻŧ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ° āĻ¨āĻžāĻŽ;
- āĻŽā§āĻĻā§āĻ°āĻž - āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻŽā§āĻĻā§āĻ°āĻž;
- āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ - āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ. āĻŦā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻžāĻ°ā§āĻ¨ā§āĻ¸āĻŋ āĻā§āĻ°āĻ¯āĻŧ āĻšāĻ˛ā§ āĻāĻžāĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ§āĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻšāĻŦā§ āĻāĻŦāĻ āĻŦāĻŋāĻā§āĻ°āĻŋ āĻšāĻ˛ā§ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻšāĻŦā§āĨ¤
āĻĒā§āĻ°āĻ¯ā§āĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
from numpy.random import choice, randint
def get_random_value():
new_dict = {}
branch_list = ['Kazan', 'SPB', 'Novosibirsk', 'Surgut']
currency_list = ['RUB', 'USD', 'EUR', 'GBP']
new_dict['branch'] = choice(branch_list)
new_dict['currency'] = choice(currency_list)
new_dict['amount'] = randint(-100, 100)
return new_dict
āĻāĻ°āĻĒāĻ°ā§, āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯, JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§:
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'],
value_serializer=lambda x:dumps(x).encode('utf-8'),
compression_type='gzip')
my_topic = 'transaction'
data = get_random_value()
try:
future = producer.send(topic = my_topic, value = data)
record_metadata = future.get(timeout=10)
print('--> The message has been sent to a topic:
{}, partition: {}, offset: {}'
.format(record_metadata.topic,
record_metadata.partition,
record_metadata.offset ))
except Exception as e:
print('--> It seems an Error occurred: {}'.format(e))
finally:
producer.flush()
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ:
āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŽāĻ°āĻž āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¤ā§āĻŽāĻ¨ āĻāĻžāĻ āĻāĻ°ā§ - āĻĒā§āĻ°āĻ¯ā§āĻāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĨ¤
āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻĒāĻž āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻāĻāĻŋ āĻŦāĻšā§āĻŽā§āĻā§ āĻāĻŦāĻ āĻāĻā§āĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽāĨ¤
āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻŽā§āĻ¯āĻžāĻĒāĻ°āĻŋāĻĄā§āĻ¸ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻā§ āĻāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻ¸āĻš āĻāĻŖāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¤āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāĻ˛āĻ¨ āĻāĻ°ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻ¤āĻŋ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻŋāĻ¨āĻŋāĻ āĻŦāĻž āĻāĻ¨ā§āĻāĻž āĻ āĻĒā§āĻā§āĻˇāĻž āĻ¨āĻž āĻāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻ āĻāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦāĻĄāĻŧ āĻļāĻā§āĻ¤āĻŋ āĻšāĻ˛ āĻāĻāĻŋāĻ° āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĨ¤
āĻāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻāĻŋ āĻ¸ā§āĻāĻžāĻ˛āĻžāĻ¯āĻŧ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
sudo apt-get install scala
āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨:
wget "http://mirror.linux-ia64.org/apache/spark/spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz"
āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°āĻāĻŋ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨:
sudo tar xvf spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz -C /usr/local/spark
āĻŦā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻ˛ā§ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻā§āĻ° āĻĒāĻĨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
vim ~/.bashrc
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$PATH
bashrc āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ¨ā§āĻā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨:
source ~/.bashrc
AWS PostgreSQL āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ āĻŦāĻļā§āĻˇ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĨā§āĻā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻŦāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž AWS RDS āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
AWS āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻ¯āĻžāĻ¨ -> AWS RDS -> āĻĄā§āĻāĻžāĻŦā§āĻ¸ -> āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨:
PostgreSQL āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨:
āĻāĻžāĻ°āĻŖ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļāĻŋāĻā§āĻˇāĻžāĻāĻ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĢā§āĻ°āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ "āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨" (āĻĢā§āĻ°āĻŋ āĻāĻŋāĻ¯āĻŧāĻžāĻ°):
āĻāĻ°āĻĒāĻ°ā§, āĻĢā§āĻ°āĻŋ āĻāĻŋāĻ¯āĻŧāĻžāĻ° āĻŦāĻžāĻā§āĻ¸āĻāĻŋ āĻā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ t2.micro āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§ - āĻ¯āĻĻāĻŋāĻ āĻĻā§āĻ°ā§āĻŦāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻĒāĻ¯ā§āĻā§āĻ¤:
āĻā§āĻŦ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§: DB āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¨āĻžāĻŽ, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄā§ˇ āĻāĻ¸ā§āĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋ: myHabrTest, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§: āĻšāĻžāĻŦāĻ°, āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ: habr12345 āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨:
āĻĒāĻ°ā§āĻ° āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž (āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻŋāĻŦāĻŋāĻ˛āĻŋāĻāĻŋ) āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ˛āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
āĻāĻ¸ā§āĻ¨ VPC āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻˇā§āĻ ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ, āĻ¯āĻž āĻĒā§āĻ°ā§āĻ 5432 (PostgreSQL) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĨ¤
VPC āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ -> āĻ¸āĻŋāĻāĻŋāĻāĻ°āĻŋāĻāĻŋ āĻā§āĻ°ā§āĻĒ -> āĻ¸āĻŋāĻāĻŋāĻāĻ°āĻŋāĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻ¸ā§āĻāĻļāĻ¨ā§ AWS āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻāĻ¨ā§āĻĄā§āĻ¤ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ:
āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻˇā§āĻ ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻāĻŋ - āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛, āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ, āĻāĻ āĻā§āĻ°ā§āĻĒāĻāĻŋ āĻā§āĻ¨ āĻāĻŋāĻĒāĻŋāĻ¸āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨:
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻ 5432-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻ°ā§āĻĒ āĻāĻ¨āĻŦāĻžāĻāĻ¨ā§āĻĄ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻŋ, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻžāĻāĻĒ āĻĄā§āĻ°āĻĒ-āĻĄāĻžāĻāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ PostgreSQL āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻŽāĻžāĻ¨ ::/0 āĻŽāĻžāĻ¨ā§ āĻ¸āĻžāĻ°āĻž āĻŦāĻŋāĻļā§āĻŦ āĻĨā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž, āĻ¯āĻž āĻā§āĻ¯āĻžāĻ¨ā§āĻ¨āĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻĒā§āĻ°āĻŋ āĻ¸āĻ¤ā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ:
āĻāĻŽāĻ°āĻž āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŋ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° "āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨" āĻā§āĻ˛āĻž āĻāĻā§ āĻāĻŦāĻ VPC āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻˇā§āĻ ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ -> āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ VPC āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻˇā§āĻ ā§āĻā§āĻ˛āĻŋ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨ -> āĻŦāĻŋāĻāĻžāĻā§ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛:
āĻāĻ°āĻĒāĻ°ā§, āĻŦāĻŋāĻāĻžāĻā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦāĻŋāĻāĻ˛ā§āĻĒ -> āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¨āĻžāĻŽ -> āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ - habrDB.
āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻŦā§āĻ¯āĻžāĻāĻāĻĒ (āĻŦā§āĻ¯āĻžāĻāĻāĻĒ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛ - 0 āĻĻāĻŋāĻ¨), āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§āĻˇā§āĻāĻŋ āĻ
āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻŦāĻžāĻĻā§ āĻŦāĻžāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻā§āĻĄāĻŧā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨:
āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻžāĻā§āĻ° āĻŦāĻŋāĻāĻžāĻļ āĻšāĻŦā§, āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻĻā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻāĻžāĻĢāĻāĻž āĻĨā§āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻŦā§āĨ¤
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻāĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ-āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻāĻŦāĻ, āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§āĻˇ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĢāĻŋāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻāĻŖāĻ¨āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ-āĻ¸āĻšāĻ¨āĻļā§āĻ˛, āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ (āĻ¯ā§āĻŽāĻ¨ HDFS, S3, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ:
streamingContext.checkpoint(checkpointDirectory)
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ, āĻ¯āĻĨāĻž, āĻ¯āĻĻāĻŋ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄā§āĻāĻž āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¸āĻā§āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻž āĻĨāĻžāĻā§ (āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§), āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ DStreams āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ functionToCreateContext āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ:
from pyspark.streaming import StreamingContext
context = StreamingContext.getOrCreate(checkpointDirectory, functionToCreateContext)
āĻāĻŽāĻ°āĻž KafkaUtils āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° createDirectStream āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ "āĻ˛ā§āĻ¨āĻĻā§āĻ¨" āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ DirectStream āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
from pyspark.streaming.kafka import KafkaUtils
sc = SparkContext(conf=conf)
ssc = StreamingContext(sc, 2)
broker_list = 'localhost:9092'
topic = 'transaction'
directKafkaStream = KafkaUtils.createDirectStream(ssc,
[topic],
{"metadata.broker.list": broker_list})
JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ:
rowRdd = rdd.map(lambda w: Row(branch=w['branch'],
currency=w['currency'],
amount=w['amount']))
testDataFrame = spark.createDataFrame(rowRdd)
testDataFrame.createOrReplaceTempView("treasury_stream")
āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŋ:
select
from_unixtime(unix_timestamp()) as curr_time,
t.branch as branch_name,
t.currency as currency_code,
sum(amount) as batch_value
from treasury_stream t
group by
t.branch,
t.currency
āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻŦāĻĄāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ˛āĻžāĻ¨ā§:
sql_query = get_sql_query()
testResultDataFrame = spark.sql(sql_query)
testResultDataFrame.show(n=5)
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž AWS RDS-āĻ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻ¤ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤āĻāĻ°āĻŖā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ˛ā§āĻāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ:
testResultDataFrame.write
.format("jdbc")
.mode("append")
.option("driver", 'org.postgresql.Driver')
.option("url","jdbc:postgresql://myhabrtest.ciny8bykwxeg.us-east-1.rds.amazonaws.com:5432/habrDB")
.option("dbtable", "transaction_flow")
.option("user", "habr")
.option("password", "habr12345")
.save()
AWS RDS-āĻ āĻāĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻāĨ¤ āĻāĻŽāĻ°āĻž "AWS PostgreSQL āĻ¸ā§āĻĨāĻžāĻĒāĻ¨" āĻ§āĻžāĻĒā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻ°āĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻĄāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¯āĻž āĻ¸āĻāĻ¯ā§āĻ āĻāĻŦāĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻāĻžāĻā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻāĻŦāĻ āĻāĻžāĻĢāĻāĻžāĻā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ°ā§āĻāĻŋāĻĢā§āĻ¯āĻžāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ smark-submit āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻāĻŋāĻ¤ spark-streaming-kafka-0-8_2.11. āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž PostgreSQL āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ˛āĻŋ --packages-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻŦāĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āĻ¤ā§ āĻāĻžāĻ āĻ¤āĻžāĻ āĻŦā§āĻ° āĻāĻ°āĻŦāĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ:
spark-submit
--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2,
org.postgresql:postgresql:9.4.1207
spark_job.py localhost:9092 transaction
āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻāĻ! āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻā§āĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨, āĻĒā§āĻ°āĻ¤āĻŋ 2 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ StreamingContext āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ 2 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ¸ā§āĻ āĻāĻ°āĻŋ:
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻŋāĻ˛ā§ āĻ°ā§āĻāĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ°āĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨_āĻĒā§āĻ°āĻŦāĻžāĻš:
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, Apache Kafka āĻāĻŦāĻ PostgreSQL āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻ¸āĻžāĻĨā§, āĻ°āĻŋāĻ¯āĻŧā§āĻ˛-āĻāĻžāĻāĻŽ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻāĻ¯āĻŧā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯āĻā§ āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻ¸ āĻā§āĻĄ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻŽāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§ āĻāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¤, āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻāĻŋ, āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĒāĻžāĻ āĻāĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻ āĻ¨āĻŽā§āĻ˛āĻ āĻ¸āĻŽāĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻļāĻž āĻāĻ°āĻāĻŋāĨ¤
āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ āĻāĻžāĻŽāĻ¨āĻž āĻāĻ°āĻŋ!
āĻā§āĻ¤āĨ¤ āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ PostgreSQL āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ AWS āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻŽāĻžāĻ° āĻāĻžāĻ˛āĻŦāĻžāĻ¸āĻžāĻ° āĻāĻžāĻ°āĻŖā§, āĻāĻŽāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻāĻŋāĻā§ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻ¸āĻ°āĻžāĻ¨ā§āĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ AWS Kinesis āĻāĻŦāĻ AWS EMR āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ AWS-āĻ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĻā§āĻāĻžāĻŦāĨ¤ āĻāĻŦāĻ° āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨!
āĻāĻ¤ā§āĻ¸: www.habr.com