Hadoop集群介绍和安装

Hadoop简介

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

Hadoop的优势

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

  • 计算能力:它的分布式计算模型快速处理大数据,用的越多计算节点,数据的处理能力会更大;
  • 灵活性:不同于传统的关系型数据库,你不要存放前必须进行预处理的数据,只要需要使用,可以保存尽可能多的数据,并决定以后怎么使用它,这包括文本、图像和视频的非结构化数据;
  • 容错能力:数据和应用程序处理保护,以防止硬件故障,如果一个节点出现故障,作业自动重定向到其他的节点,以确分布式计算不会失败,它会自动存储所有数据的多个副本;
  • 低成本:开源框架是免费的,使用商业硬件来存储大量数据;
  • 可扩展性:可以轻松简单地通过增加更多的节点增加你的系统。

Hadoop组件

  • Hadoop Common -- 其它Hadoop的模块使用的库和工具
  • Hadoop Distributed File System (HDFS) -- 存储在多台计算机的数据,恕不另行组织基于Java的可扩展系统。
  • MapReduce -- 软件编程模型的并行处理大型数据集
  • YARN -- 从分布式应用程序的调度和处理资源请求的资源管理框架。

其他Hadoop相关组件

  • Ambari™:配置管理和监控的Apache Hadoop集群基于Web的工具,其中包括Hadoop的HDFS,MapReduce的Hadoop的Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop支持,Ambari还提供查看集群运行状态,如热图,并直观地查看MapReduce的Pig和Hive应用非常久远的功能,诊断一个用户友好的方式表现自己的能力特点的仪表板。
  • Avro的™:数据序列化系统
  • Chukwa™:用于管理大型分布式系统的数据采集系统。
  • HBase的™:支持大表结构化数据存储可扩展的分布式数据库。
  • Hive™:数据仓库基础设施,提供数据汇总和及时查询。
  • Mahout™:一种可扩展的机器学习和数据挖掘库。
  • Pig™:并行计算的高级数据流语言和执行框架。
  • Spark™:Hadoop的数据的快速和通用计算引擎。Spark提供了支持广泛的应用,包括ETL,机器学习,流处理和图形计算的简单和表现的编程模型。
  • Tez™:广义数据流编程框架,建立在Hadoop的YRAN,它提供了一个强大而灵活的引擎来执行任务的任意DAG来处理批处理和交互式的使用数据情况,TEZ正在通过Hive,pig和Hadoop的生态系统中其他框架,也可以通过其他商业软件(例如:ETL工具)以取代的Hadoop MapReduce的™作为底层执行引擎。
  • ZooKeeper的™:分布式应用的高性能协调服务。

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容