我爱编程

Hadoop集群介绍和安装

2017-11-10  本文已影响0人  万越天

Hadoop简介

Hadoop是用于存储数据和商用硬件集群运行应用程序的开源软件框架,它提供了海量存储任何类型的数据,极大的处理能力和处理几乎无限的并发任务或作业的能力。

Hadoop的优势

Hadoop博得广大人群眼球的主要原因是它能够存储和处理大两数据的能力,可以支持任何类型的数据,计算快;随着数据量和品种的不断增加,特别是社交媒体和物联网行业,Hadoop是一个重要的考虑因素,其中使用Hadoop的优势如下:

Hadoop组件

其他Hadoop相关组件

Hadoop集群安装

主机规划:

序号 ip 主机名 角色
1 110.12.4.92 LFTd-Hadoop01 NodeManager/ResourceManager/SecondaryNameNode/DataNode/NameNode
2 110.12.4.93 LFTd-Hadoop02 NodeManager/DataNode
3 110.12.4.94 LFTd-Hadoop03 NodeManager/DataNode

Step 1 安装配置Java环境

在所有主机安装配置Java环境,命令如下:

# java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Step 2 创建hadoop用户

在所有主机创建hadoop用户并配置密码,命令如下:

# useradd hadoop
# passwd hadoop

Step 3 配置本地hosts解析

在所有主机配置hosts解析,命令如下:

10.12.4.92  master hadoop-namenode LFTd-Hadoop01
10.12.4.93  slave01 hadoop-datanode-1 LFTd-Hadoop02
10.12.4.94  slave02 hadoop-datanode-2 LFTd-Hadoop03

Step 4 配置ssh免密登陆

在所有主机配置ssh免密登陆,命令如下:

# su - hadoop
$ ssh-keygen -t rsa
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-namenode
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-2
$ chmod 0600 ~/.ssh/authorized_keys

Step 5 安装hadoop源码包

在所有主机下载安装hadoop源码包,命令如下:

# mkdir -p /opt/hadoop
# chown hadoop:hadoop /opt/hadoop
# su - hadoop
$ cd /opt/hadoop
$ wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar xzf hadoop-2.7.3.tar.gz
$ ln -s /opt/hadoop/hadoop-2.7.3 /opt/hadoop/hadoop

Step 6 配置hadoop用户环境变量

为所有主机配置hadoop用户的环境变量,命令如下:

$ cat .bash_profile 
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export HADOOP_PREFIX=/opt/hadoop/hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/jre/bin:$JAVA_HOME/bin

Step 7 修改hadoop配置文件

在master进行修改hadoop配置文件:

cd $HADOOP_HOME/etc/hadoop

core-site.xml:

$ cat core-site.xml 
<configuration>
      <property>
            <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

      </property>

      <property>
                <name>io.file.buffer.size</name>

                <value>131072</value>

      </property>

      <property>

                <name>hadoop.tmp.dir</name>

                <value>file:/opt/hadoop/hadoop/tmp</value>

                <description>Abase for other temporary directories.</description>

        </property>
<property>
        <name>dfs.name.dir</name>
        <value>/opt/hadoop/dfs/name/</value>
    </property>

        <property>

              <name>hadoop.proxyuser.worker.hosts</name>

              <value>*</value>

        </property>

        <property>

              <name>hadoop.proxyuser.worker.groups</name>

              <value>*</value>

      </property>
  
      <property>
              <name>fs.default.name</name>
              <value>hdfs://hadoop-namenode:9000/</value>
      </property>
      <property>
              <name>io.file.buffer.size</name>
              <value>4096</value>
      </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop/hadoop/tmp</value>
      </property>
      <property>
              <name>dfs.permissions</name>
              <value>false</value>
      </property>
</configuration>

hdfs-site.xml:

$ cat hdfs-site.xml
<configuration>
  <property>

            <name>dfs.namenode.secondary.http-address</name>

          <value>master:9001</value>

    </property>

    <property>

              <name>dfs.namenode.name.dir</name>

            <value>file:/opt/hadoop/dfs/name</value>

        </property>

      <property>

                <name>dfs.datanode.data.dir</name>

                <value>file:/opt/hadoop/dfs/data</value>

        </property>

        <property>

                <name>dfs.replication</name>

                <value>3</value>

        </property>

        <property>

                <name>dfs.webhdfs.enabled</name>

                <value>true</value>

    </property>
<property>
        <name>dfs.data.dir</name>
        <value>/opt/hadoop/dfs/data</value>
        <final>true</final>
</property>

<property>
        <name>dfs.name.dir</name>
        <value>/opt/hadoop/dfs/name</value>
        <final>true</final>
</property>

<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>

<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>

<property>
  <name>dfs.http.address</name>
  <value>hadoop-namenode:50070</value>
</property>

</configuration>

mapred-site.xml:

$ cat mapred-site.xml
<configuration>
<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

<property>

        <name>mapreduce.jobhistory.address</name>

        <value>master:10020</value>

</property>

<property>

      <name>mapreduce.jobhistory.webapp.address</name>

      <value>master:19888</value>

</property>
<property>
        <name>mapred.job.tracker</name>
        <value>hadoop-namenode:9001</value>
</property>

</configuration>

同步配置文件至所有slave:

# su - hadoop
$ rsync -auvx $HADOOP_HOME/ hadoop-datanode-1:$HADOOP_HOME/
$ rsync -auvx $HADOOP_HOME/ hadoop-datanode-2:$HADOOP_HOME/

Step 8 配置master的slave节点

只在master节点配置,命令如下:

# su - hadoop
$ cd $HADOOP_HOME/etc/hadoop
$ vi slaves
hadoop-datanode-1
hadoop-datanode-2

Step 9 启动hadoop集群

在master节点启动:

# su - hadoop
$ start-all.sh 

Step 10 检查hadoop集群启动情况

master节点:

$ jps
34720 NodeManager
34609 ResourceManager
34440 SecondaryNameNode
34234 DataNode
43663 Jps
34095 NameNode

slave节点:

# su - hadoop
$ jps
5392 DataNode
5512 NodeManager
13578 Jps
上一篇下一篇

猜你喜欢

热点阅读