Hadoop集群搭建

简介: Hadoop集群搭建

官网:Apache Hadoop

一、引言

适用人群:了解hadoop的程序猿。

文章目的:记录hadoop集群安装,提供参考。

二、简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

三、下载&解压及java环境搭建(三台服务器都需要)

hadoop安装包可到http://mirrors.tuna.tsinghua.edu.cn/apache/ 网址下载安装包,文中所用版本包为hadoop-2.7.3.tar.gz。将安装包解压缩到/opt/tpapp/文件加下面。

hadoop会使用到java环境,需要早三台机器上分别安装上java环境:此处不做安装说明。

配置hadoop环境变量:

cd /etc/profile 添加以下内容

export HADOOP_HOME=/opt/tpapp/hadoop

export PATH=$PATH:$HADOOP_HOME/sbin

export PATH=$PATH:$HADOOP_HOME/bin

编辑保存后,执行source /etc/profile 使其生效。

四、修改hosts文件添加hadoop用户及免密登陆(三台服务器都需要)

  1. 修改hosts文件,添加hadoop集群的三台服务器域名配置,假设有A、B、C三台服务器,A为master主机。添加配置到hosts

10.100.40.70    master

10.100.40.80    node1

10.100.40.90    node2

  1. 添加专门操作hadoop集群的用户和用户组
  • 添加hadoop 用户组,命令:

groupadd hadoop

  • 添加haddop用户名称,命令:

useradd hadoop


  • 将用户添加到用户组,命令:

usermod  -G hadoop hadoop

  • 添加用户权限,命令:

vi /etc/sudoers

在配置文件中添加hadoop   ALL=(ALL)    ALL

  • 测试连通性,用hadoop用户执行连通性测试,命令:

ping + 配置的域名


  1. 配置免密ssh登陆并验证连通性(A相对B、C免密登陆)
    ssh免密登陆hadoop功能上需要用到所以这个需要配置,详情请见hadoop模块的免密登陆:
    http://gw-publish.tpis.tpaic.com/ATS/index.do#/web/article/detail/web/ARTICLE/1e3e6313-eea7-4a50-affc-2fae1c799c57

五、hadoop配置(先配置一台然后复制)

  1. 创建data文件夹,命令:

cd /opt/tpapp/hadoop/

mkdir -p dfs/name

mkdir -p dfs/data

  1. 修改配置文件,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>/usr/hadoop/tmp</value>
        <description>Abase for other temporary   directories.</description>
    </property>
</configuration>
  1. 修改配置文件,hadoop-env.sh 添加以下内容:

export JAVA_HOME=/opt/tpapp/jdk1.7.0_25

#JAVA_HOME 为机器上的JDK位置

  1. 修改配置文件,hdfs-site.xml 添加以下内容:
<configuration>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
 
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>master:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>/usr/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>/usr/hadoop/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>2</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
</configuration>
  1. 修改配置文件,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>
</configuration>
  1. 修改配置文件,slaves 添加以下内容:

node1

node2

  1. 修改配置文件,yarn-site.xml 添加以下内容:
<configuration>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
        <property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>
  1. 修改完上文件后,将修改好的hadoop文件传给node1、node2服务器:

scp -r /opt/tpapp/hadoop hadoop@node1:/opt/tpapp/

scp -r /opt/tpapp/hadoop hadoop@node2:/opt/tpapp/

  1. 使用root用户对文件夹opt/tpapp/hadoop进行归属操作

chown -R hadoop:hadoop opt/tpapp/hadoop

六、启动hadoop并验证

使用hadoop用户进入A服务器hadoop目录,(因为是集群部署,只需要在A master机器上启动即可)执行以下命令:

   bin/hdfs namenode -format

   sbin/start-all.sh

注:第一次初始化Hadoop集群式需要执行bin/hdfs namenode -format初始化文件系统设置相关参数清除多余文件,在正常使用过程中不需要执行这个命令,直接启停即可;否则文件系统会格式化掉已经存在的数据。

启动后在master和node1、node2服务器执行命令:

jps

如果出现以下界面中红框内容则安装成功:

master :

node1、node2:


相关文章
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
181 6
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
77 4
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
34 3
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
59 3
|
2月前
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
49 3
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
74 3
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
100 3
|
2月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
45 3
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
50 2
|
2月前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
61 2

相关实验场景

更多