Hadoop2.6.1集群安装

说明

  • Hadoop运行在Java虚拟机上,需要安装JDK,参见Linux下安装JDK8
  • 本次搭建的Hadoop集群没有HA配置。
  • 集群节点分布信息
    • hdfs namenode node1
    • hdfs secondary node1
    • hdfs datanode node1
    • hdfs datanode node2
    • hdfs datanode node3
    • yarn resourceManager node1
    • yarn nodemanager node1
    • yarn nodemanager node2
    • yarn nodemanager node3

第一部分 安装Linux

在node1上安装JDK。参见Linux下安装JDK8
在node2上安装JDK。参见Linux下安装JDK8
在node3上安装JDK。参见Linux下安装JDK8

第二部分 配置hosts文件

在node1上配置hosts文件。
在node2上配置hosts文件。
在node3上配置hosts文件。

vi /etc/hosts
添加一下内容
192.168.239.132 node1
192.168.239.133 node2
192.168.239.134 node3

第三部分 设置免密登录

在node1上生成ssh的公钥私钥。然后连续按四个回车。

ssh-keygen

然后将密钥发送到其它机器上。

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

第四部分 关闭防火墙

在node1,node2,node3上,关闭防火墙。

servie iptables stop
chkconfig iptables off  && setenforce 0

第五部分 创建统一的工作目录

在node1,node2,node3上,创建统一的工作目录。

mkdir -p /export/apps/
mkdir -p /export/servers/

/export/apps/ 目录以后存放软件包。
/export/servers/ 目录以后存放解压后的软件包。

第六部分 安装Hadoop集群

1、上传 hadoop安装包到node1的/export/apps/目录。可以使用rz命令。
2、解压 node1上的hadoop安装包到/export/servers/上,并创建软连接。

cd /export/apps/
tar -zxvf hadoop-2.6.1.tar.gz -C /export/servers/
cd /export/servers/
ln -s hadoop-2.6.1 hadoop

3、修改环境变量并使之生效
在node1上操作。

vi /etc/profile
在文件的最末尾添加一下信息
export HADOOP_HOME=/export/servers/hadoop
export PATH=${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin:$PATH

4、让配置文件生效
在node1上操作。

source /etc/profile

5、在node1上修改配置文件
5.1、进入hadoop配置文件目录,删除默认的配置文件。

cd /export/servers/hadoop/etc/hadoop
rm core-site.xml hadoop-env.sh hdfs-site.xml mapred-env.sh mapred-site.xml slaves yarn-site.xml

5.2、配置文件说明:

  • core-site.xml Hadoop核心配置文件 指定文件hdfs://node1:9000 临时目录
  • hadoop-env.sh Hadoop运行的环境,主要配置JDK_HOME
  • hdfs-site.xml Hadoop HDFS的配置文件,配置副本和secondarynamenode
  • mapred-env.sh Hadoop MR的运行环境,主要是JDK_HOME
  • slaves 从机的hostname信息,为一键启动脚本提供目标地址信息
  • yarn-site.xml Yarn调度框架配置文件主要是 提供辅助服务

5.4、创建core-site.sh文件
vi core-site.sh

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://node1:9000</value>
                </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/export/data/hdp/</value>
        </property>
</configuration>

5.4、创建hadoop-env.sh文件,并写入内容。主要是JAVA_HOME的配置。
vi hadoop-env.sh

export JAVA_HOME=/export/servers/jdk
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}

for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
  if [ "$HADOOP_CLASSPATH" ]; then
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
  else
    export HADOOP_CLASSPATH=$f
  fi
done
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"
export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"
export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"
export HADOOP_NFS3_OPTS="$HADOOP_NFS3_OPTS"
export HADOOP_PORTMAP_OPTS="-Xmx512m $HADOOP_PORTMAP_OPTS"
export HADOOP_CLIENT_OPTS="-Xmx512m $HADOOP_CLIENT_OPTS"
export HADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER}
export HADOOP_SECURE_DN_LOG_DIR=${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
export HADOOP_IDENT_STRING=$USER

5.5、创建hdfs-site.xml文件,并写入内容。
vi hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
    <property>
         <name>dfs.secondary.http.address</name>
         <value>node1:50090</value>
    </property>
</configuration>

5.6、创建mapred-env.sh文件,并写入内容。主要是JAVA_HOME的配置。
vi mapred-env.sh

export JAVA_HOME=/export/servers/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

5.7、创建slaves文件,并写入内容
vi slaves

node1
node2
node3

5.8、创建yarn-site.xml文件,并写入内容
vi yarn-site.xml

<?xml version="1.0"?>
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>node1</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

6、分发安装包及配置信息到其它机器上

scp -r /export/servers/hadoop-2.6.1/ node2:/export/servers/
scp -r /export/servers/hadoop-2.6.1/ node3:/export/servers/
scp -r /etc/profile node2:/etc/
scp -r /etc/profile node3:/etc/
scp -r /etc/hosts node2:/etc/
scp -r /etc/hosts node3:/etc/

7、在node2,node3上的目录创建软连接

cd /export/servers/
ln -s hadoop-2.6.1 hadoop
source /etc/profile

第七部分 初始化和启动集群

在node1上操作。

hadoop namenode -format
start-dfs.sh

标签: hadoop

相关文章推荐

添加新评论,含*的栏目为必填