centos 部署Hadoop-3.0-高性能集群(一)安装

简介: centos 部署Hadoop-3.0-高性能集群(一)安装

Hadoop概述:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

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

网方网站:http://hadoop.apache.org/

废话不多说,下面开始搭建

一、实验环境 准备
安装前,3台虚拟机IP及机器名称如下:
主机名          IP地址             角色
ha146.cn   192.168.1.146    NameNode
ha147.cn   192.168.1.147    DataNode1
ha120.cn   192.168.1.120    DataNode2

 因为是本地搭建所以直接关闭三台机器防火墙

 systemctl stop firewalld.service
 systemctl disable firewalld.service

(1)三台机器上配置hosts文件,(三台都配置

       vim  /etc/hosts 添加

       192.168.1.146   ha146.cn

       192.168.1.147   ha147.cn

       192.168.1.120   ha120.cn

(2)创建运行hadoop用户账号和Hadoop目录(3台都创建)

         useradd -u 8000 hadoop     #设置账号

         echo 123456 | passwd --stdin hadoop  #设置密码

(3)给hadoop账户增加sudo权限

         vim /etc/sudoers

        添加  hadoop  ALL=(ALL)       ALL

 :wq!强制保存

(4)配置Hadoop环境安装Java环境JDK三台机器上都要配置

我用的是源码安装 jdk1.8.0_131 。也可以yum安装 。

官方地址: http://www.oracle.com/technetwork/java/javase/downloads/index.htm

JDK下载地址   https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tar xvf jdk-linux-x64.tar.gz -C /usr/local/

配置环境变量   vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_131
 PATH=$JAVA_HOME/bin:$PATH
 CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
 export   PATH  JAVA_HOME CLASSPATH

  source /etc/profile

   java -version 查看是否配置成功

(4)配置ssh无密码登录

在146服务器上  切换到hadoop用户   su - hadoop

ssh-keygen

[hadoop@146 ~]$ ssh-copy-id 192.168.1.147

[hadoop@146 ~]$ ssh-copy-id 192.168.1.120

测试 ssh 192.168.1.147  如果直接登录,不需要密码说明成功

 二、配置hadoop

在146上安装Hadoop 并配置成namenode主节点

Hadoop安装目录:/home/hadoop/hadoop-3.0.0

使用root帐号将hadoop-3.0.0.tar.gz  上传到服务器 可以去官网下载http://hadoop.apache.org/  我的是3.0

上传到hadoop的家目录 切换到hadoop解压  只要解压文件就可以,不需要编译安装

tar xvf  hadoop-3.0.0.tar.gz

创建hadoop相关的工作目录每台机上都要创建目录

mkdir -p /home/hadoop/dfs/name /home/hadoop/dfs/data /home/hadoop/tmp     #每台机上都要创建目录

sudo chown -R hadoop:hadoop /home/hadoop/*   # 确定每个目录下的所属都是hadoop 每台机都要执行

配置Hadoop:需要修改7个配置文件。进入配置文件   cd hadoop-3.0.0/etc/hadoop/

文件名称:hadoop-env.sh、yarn-evn.sh、workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

1、 vim hadoop-env.sh     (指定java运行环境变量

         改:54 # export JAVA_HOME=

         为:export JAVA_HOME=/usr/local/jdk1.8.0_131/

2、vim yarn-env.sh  保存yarn框架的运行环境

查看优先规则: 23行

## Precedence rules:

##

## yarn-env.sh > hadoop-env.sh > hard-coded defaults

3、vim core-site.xml,指定访问hadoop web界面访问路径

在19 20行添加

<property>
      <name>fs.defaultFS</name>
          <value>hdfs://ha146.cn:9000</value>
 </property>
 <property>
     <name>io.file.buffer.size</name>
         <value>13107</value>
 </property>
 <property>
     <name>hadoop.tmp.dir</name>
         <value>file:/home/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
 </property>

io.file.buffer.size默认值 4096 。这是读写 sequence file 的 buffer size, 可减少 I/O 次数。在大型的 Hadoop cluster,建议可设定为 65536

4、vim hdfs-site.xml  dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从                机的个数。

还是19 20行 添加

<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>ha146.cn:9001</value>  
  </property>
  <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/hadoop/dfs/name</value>
  </property>
 <property>
    <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/dfs/data</value>
 </property>
 <property>
    <name>dfs.replication</name>
    <value>2</value>    
 </property>
 <property>
    <name>dfs.webhdfs.enabled</name>
        <value>true</value>
 </property>

注:

<property>

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

     <value>ha146.cn:9001</value>   # 通过web界面来查看HDFS状态

 </property>

<property>

   <name>dfs.replication</name>

   <value>2</value>    #每个Block有2个备份。

</property>

5、vim mapred-site.xml  这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,同时指定:Hadoop历史服务器historyserver  Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过下面的命令来启动Hadoop历史服务器

$ /home/hadoop/hadoop-3.0.0/sbin/mr-jobhistory-daemon.sh  start historyserver

historyserverWARNING: Use of this script to start the MR JobHistory daemon is deprecated.

WARNING: Attempting to execute replacement "mapred --daemon start" instead.

WARNING: /home/hadoop/hadoop-3.0.0/logs does not exist. Creating.

这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况。

还是19 20行

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>
 <property>
     <name>mapreduce.jobhistory.address</name>
     <value>0.0.0.0:10020</value>
 </property>
 <property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>0.0.0.0:19888</value>
 </property>

6、vim yarn-site.xml  该文件为yarn框架的配置,主要是一些任务的启动位置

同样还是在<configuration></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>ha146.cn:8032</value>
 </property>
 <property>
     <name>yarn.resourcemanager.scheduler.address</name>
         <value>ha146.cn:8030</value>
 </property>
 <property>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <value>ha146.cn:8031</value>
 </property>
 <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>ha146.cn:8033</value>
 </property>
 <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>ha146.cn:8088</value>
 </property>
<property>
<name>yarn.application.classpath</name>
<value>/home/hadoop/hadoop-3.0.0/etc/hadoop:/home/hadoop/hadoop-3.0.0/share/hadoop/common/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/common/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/*:/home/hadoop/hadoop-3.0.0/share/hadoop/mapreduce/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/* </value>
</property>

注意classpath下面只有一行没有回车

7、vim workers  编辑datanode节点host

ha147.cn
ha120.cn

三、复制配置初始化 启动

上面是146主服务配置完了 需要将=刚刚配置的文件复制到147和120服务器上

scp /home/hadoop/hadoop-3.0.0/etc/hadoop/* 192.168.1.147:/home/hadoop/hadoop-3.0.0/etc/hadoop/

scp /home/hadoop/hadoop-3.0.0/etc/hadoop/* 192.168.1.120:/home/hadoop/hadoop-3.0.0/etc/hadoop/

在146上初始化 Hadoop  hadoop namenode的初始化,只需要第一次的时候初始化,之后就不需要了

/home/hadoop/hadoop-3.0.0/bin/hdfs namenode -format

echo $?     看执行成功没

tree /home/hadoop/dfs/

 

/home/hadoop/hadoop-3.0.0/sbin/start-dfs.sh  启动

/home/hadoop/hadoop-3.0.0/sbin/stop-dfs.sh  关闭

/home/hadoop/hadoop-3.0.0/sbin/start-all.sh 启动全部

添加环境变量 HADOOP_HOME

[root@146~]# vim /etc/profile  #添加追加以下内容:

export HADOOP_HOME=/home/hadoop/hadoop-3.0.0

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

[root@146~]# source /etc/profile

[root@146~]# start  #输入start 按两下tab键,测试命令补齐

 

 

 

 

 

 

 

 

 

 

 

目录
相关文章
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
105 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
93 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
151 2
|
1月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
208 0
|
1月前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
2月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
119 64
|
2月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
125 61