xiaodouya33 发表于 2018-10-28 14:08:40

CLOUD 04:zookeeper,kafka,hadoop高可用

  zookeeper 安装
  1 禁用防火墙和 selinux
  2 设置 /etc/hosts ip 主机名对应关系
  3 安装 openjdk
  zookeeper 角色,选举
  leader 集群主节点
  follower 参与选举的附属节点
  observer 不参与选举的节点,同步 leader 的命名空间
  1 拷贝配置文件
  /usr/local/zookeeper/conf/zoo_sample.cfg 到
  /usr/local/zookeeper/conf/zoo.cfg
  2 修改配置文件vim /usr/local/zookeeper/conf/zoo.cfg
  29 server.1=zk1:2888:3888
  30 server.2=zk2:2888:3888
  31 server.3=zk3:2888:3888
  32 server.4=zk4:2888:3888:observer
  3 创建目录 zookeeper 配置文件里面的 dataDir 指定的目录
  mkdir /tmp/zookeeper

  4 在目录下创建 myid 文件,写入自己的>  echo 主机ID > /tmp/zookeeper/myid
  如:
  echo 1 > /tmp/zookeeper/myid
  5 启动集群,查看角色
  /usr/local/zookeeper/bin/zkServer.sh start
  /usr/local/zookeeper/bin/zkServer.sh status
  kafka 集群安装
  1 禁用防火墙和 selinux
  2 设置 /etc/hosts ip 主机名对应关系
  3 安装 openjdk
  4 安装 kafka 到 /usr/local/kafka
  5 修改配置文件 /usr/local/kafka/config/server.properties

  broker.id=>  zookeeper.connect=zk1:2181,zk4:2181
  启动 kafka
  /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
  同步到其他机器
  rsync -zaSH m11:/usr/local/kafka /usr/local/
  vim kafka/config/server.properties

  broker.id=>  验证:
  jps 能看到 kafka
  netstat 能看到 9092 被监听
  创建主题
  bin/kafka-topics.sh --create --zookeeper zk4:2181 --replication-factor 1 --partitions 1 --topic nsd1703
  查看显示已存在的主题
  bin/kafka-topics.sh --list --zookeeper zk4:2181
  查看主题的详细信息
  bin/kafka-topics.sh --describe --zookeeper zk1:2181,zk2:2181 --topic nsd1703
  生存者发布信息
  bin/kafka-console-producer.sh --broker-list zk1:9092,zk3:9092 --topic nsd1703
  消费者消费信息
  bin/kafka-console-consumer.sh --zookeeper zk1:2181,zk2:2181 --topic nsd1703 --from-beginning
  bin/kafka-console-consumer.sh --bootstrap-server zk1:9092,zk4:9092 --topic nsd1703
  --from-beginning 是从头开始消费消息
  hadoop 高可用
  初始化 4.20 机器
  设置/etc/hosts 可以ping通所有
  关闭selinux,firewalld
  安装openjdk jps
  设置 免密码登陆4.10到所有机器 4.20到所有机器
  core-site.xml
  

  
  fs.defaultFS
  hdfs://mycluster
  
  
  hadoop.tmp.dir
  /var/hadoop
  
  
  ha.zookeeper.quorum
  node1:2181,node2:2181,node3:2181
  
  
  hadoop.proxyuser.nfsuser.groups
  *
  
  
  hadoop.proxyuser.nfsuser.hosts
  *
  
  

  

  hdfs-site.xml
  

  
  dfs.replication
  2
  
  

  
  dfs.nameservices
  mycluster
  
  
  dfs.ha.namenodes.mycluster
  nn1,nn2
  
  
  dfs.namenode.rpc-address.mycluster.nn1
  master1:8020
  
  
  dfs.namenode.rpc-address.mycluster.nn2
  master2:8020
  
  
  dfs.namenode.http-address.mycluster.nn1
  master1:50070
  
  
  dfs.namenode.http-address.mycluster.nn2
  master2:50070
  
  
  dfs.namenode.shared.edits.dir    #使用连接组
  qjournal://node1:8485;node2:8485;node3:8485/mycluster
  
  
  dfs.journalnode.edits.dir
  /var/hadoop/journal#使用此类监控
  
  
  dfs.client.failover.proxy.provider.mycluster
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  
  
  dfs.ha.fencing.methods
  sshfence   #使用SSH切换
  
  
  dfs.ha.fencing.ssh.private-key-files
  /root/.ssh/id_rsa         #默认密钥路径
  
  
  dfs.ha.automatic-failover.enabled
  true   #失败自动切换
  
  

  

  同步配置到所有集群机器
  在其中一台初始化 zookeeper 集群
  在master执行
  bin/hdfs zkfc -formatZK
  在定义的节点启动 journalnode
  在m11,m12,m13执行
  sbin/hadoop-daemon.sh start journalnode
  在其中一台 namenode 上执行格式化命令
  在master执行
  bin/hdfs namenode –format
  格式化以后把数据目录拷贝到另一台 namenode
  在master上执行
  rsync -azSH --delete /var/hadoop new:/var/
  初始化 JournalNode
  在另一台 namenode #new机器上
  ./bin/hdfs namenode -initializeSharedEdits
  停止 JournalNode
  在m11,m12,m13执行
  sbin/hadoop-daemon.sh stop journalnode
  启动 dfs
  在master
  ./sbin/start-dfs.sh
  验证配置
  bin/hadoop dfsadmin -report
  查看集群状态bin/hdfs haadmin -getServiceState nn1bin/hdfs haadmin -getServiceState nn2
  bin/hadoop fs -ls hdfs://mycluster/
  bin/hadoop fs -mkdir hdfs://mycluster/input
  验证高可用,关闭 active namenode
  sbin/hadoop-daemon.sh stop namenode
  

  

  

  
  yarn.nodemanager.aux-services
  mapreduce_shuffle
  
  
  yarn.resourcemanager.ha.enabled
  true
  
  
  yarn.resourcemanager.ha.rm-ids
  rm1,rm2
  
  
  yarn.resourcemanager.hostname.rm1
  master1
  
  
  yarn.resourcemanager.hostname.rm2
  master2
  
  
  yarn.resourcemanager.recovery.enabled
  true
  
  
  yarn.resourcemanager.store.class
  org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
  
  
  yarn.resourcemanager.zk-address
  node1:2181,node2:2181,node3:2181
  
  
  yarn.resourcemanager.cluster-id
  yarn-ha
  
  

  

  启动服务,检查状态
  sbin/start-yarn.sh
  bin/yarn rmadmin -getServiceState rm1
  bin/yarn rmadmin -getServiceState rm2


页: [1]
查看完整版本: CLOUD 04:zookeeper,kafka,hadoop高可用