Hadoop集群环境安装

配置服务器间免密登录

  1. 执行生成密钥命令
1
2
3
ssh-keygen -t rsa

默认生成id_rsa的私钥文件和id_rsa.pub的公钥文件。
  1. 把文件拷贝到需要免密登录的机器
1
ssh-copy-id -i id_rsa.pub root@192.168.7.252
  1. 验证是否可以免密登录
1
2
ssh root@192.168.7.252
查看authorized_keys文件,文件内部会新增对应的公钥内容
  1. The authenticity of host 192.168.0.xxx can’t be established.
1
2
修改/etc/ssh/ssh_config中的 StrictHostKeyChecking=no
这样第一次登录就不会提示。

如果需要通过ssh 登录自己的IP免密。在本机把id_rsa.pub公钥拷贝到本机的授权authorized_keys文件中去。

ZooKeeper

集群生成环境安装

Coordinating Distributed Applications with ZooKeeper 通过ZK协调分布式程序。

ZK建议的最小集群机器数量是3台,当3台机器的情况允许1台机器进入维护状态。

如果是5台机器的集群,当1台维护状态的时候,允许4台中的其中1台在发生故障不影响服务运行。

集群中的5台机器分布在同一个交换机下,如果交换机出现故障,将会导致全部发生异常。

  1. Zk需要JDK1.6以上版本。
  2. 设置Java堆大小。

端口

  1. 2181 服务端口
  2. 2888 集群内部通讯端口
  3. 3888 选举leader端口

防火墙
firewall-cmd –zone=public –permanent –add-port=2181/tcp –add-port=2888/tcp –add-port=3888/tcp
firewall-cmd –reload
firewall-cmd –list-ports
systemctl enable firewalld
systemctl start firewalld

配置文件

  1. 在conf目录下新建zoo.cfg文件内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/zk/data
    clientPort=2181
    server.1=master-252.com:2888:3888
    server.2=slaves-251.com:2888:3888
    server.3=slaves-229.com:2888:3888
  1. scp -r /home/zk root@master-252.com:/home/
  2. 在数据目录分别执行echo 1 > myid
  3. bin/zkServer.sh start
  4. bin/zkServer.sh stop
  5. bin/zkServer.sh status
  6. bin/zkCli.sh -server master-252.com:2181,slaves-251.com:2181,slaves-229.com:2181

Hadoop

  1. 其中一台机器作为NameNode,另外一台作为ResourceManager,其它机器DataNode和NodeManager作为Slaves。

Configuring Hadoop in Non-Secure Mode

Hadoop被2种类型配置驱动

  1. 只读配置 core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml 没找到在哪。
  2. 每个节点配置 etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.
  3. 每个节点配置 etc/hadoop/hadoop-env.sh and etc/hadoop/yarn-env.sh and etc/hadoop/mapred-env.sh.

HDFS daemons are NameNode, SecondaryNameNode, and DataNode.
YARN damones are ResourceManager, NodeManager, and WebAppProxy.
If MapReduce is to be used, then the MapReduce Job History Server will also be running.
[3]配置中必须至少指定JAVA_HOME的环境变量。

NameNode HADOOP_NAMENODE_OPTS
DataNode HADOOP_DATANODE_OPTS
Secondary NameNode HADOOP_SECONDARYNAMENODE_OPTS
ResourceManager YARN_RESOURCEMANAGER_OPTS
NodeManager YARN_NODEMANAGER_OPTS
WebAppProxy YARN_PROXYSERVER_OPTS
Map Reduce Job History Server HADOOP_JOB_HISTORYSERVER_OPTS
Daemons Process Id Files HADOOP_PID_DIR
HDaemons Logs Files Path HADOOP_LOG_DIR

配置
grep -ri hadoop_deprecate_envvar

启动Hadoop

  1. 先格式化分布式文件系统。
    $HADOOP_PREFIX/bin/hdfs namenode -format <cluster_name>

  2. 启动名称节点
    $HADOOP_PREFIX/sbin/hadoop-daemon.sh –script hdfs start namenode

  3. 启动数据节点
    $HADOOP_PREFIX/sbin/hadoop-daemon.sh –script hdfs start datanode

  4. 启动HDFS合并2和3操作。
    $HADOOP_PREFIX/sbin/start-dfs.sh

  5. 停止HDFS。
    $HADOOP_PREFIX/sbin/stop-dfs.sh

  6. 打开8088-65535的所有端口
    firewall-cmd –zone=public –permanent –add-port=8088-65535/tcp
    firewall-cmd –zone=public –permanent –add-port=8030-8033/tcp
    firewall-cmd –zone=public –permanent –add-port=8040/tcp
    firewall-cmd –zone=public –permanent –add-port=8042/tcp
    firewall-cmd –zone=public –permanent –add-port=8045-8048/tcp

  7. 启动资源管理节点
    $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start resourcemanager

  8. 启动节点管理
    $HADOOP_YARN_HOME/sbin/yarn-daemons.sh start nodemanager

  9. 启动代理服务器
    $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver

  10. 启动yarn
    $HADOOP_PREFIX/sbin/start-yarn.sh

  11. Start the MapReduce JobHistory Server
    $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh start historyserver

  12. 获取RM中节点激活状态
    yarn rmadmin -getServiceState rm1

  13. 转移激活状态
    yarn rmadmin -transitionToActive rm1

Hadoop 集群配置
Hadoop Yarn HA 配置
Hadoop Hdfs HA 配置