hadoop环境安装步骤整理

hadoop的安装

虚拟机镜像:centos-7
虚拟机三台:
hadoop1:主节点
hadoop2:从节点
hadoop3:从节点
本博客相关资源文件连接:
编译所需安装包
编译后的hadoop3.3.1

1.服务器ip以及名称的配置

  1. 修改服务器ip为静态ip
	1. 查看本机ip
		ip addr (idconfig)
	2. 进入网卡配置文件
		vi /etc/sysconfig/network-scripts/ifcfg-ens33
	3. 修改ip为静态并配置IP地址
		BOOTPROTO="static"
		IPADDR="192.168.253.137"
		NETMASK="255.255.255.0"
		GATEWAY="192.168.253.2"
		DNS1="192.168.253.2"
  1. 修改服务器名称
	1.配置host
	vim /etc/hosts
	例如(我的三台机器的配置信息):
	192.168.253.138 hadoop1 hadoop1.study.cn
	192.168.253.139 hadoop2 hadoop2.study.cn
	192.168.253.140 hadoop3 hadoop3.study.cn
	2.修改服务器名称
	vim /etc/hostname
	将服务器名字修改成hadoop1,hadoop2,hadoop3
  1. 验证修改
	直接ping hadoop1,hadoop2,hadoop3
	或者ping hadoop1.study.cn,hadoop2.study.cn,hadoop3.study.cn

在这里插入图片描述

2.配置搭建的服务器之间免密登录

  1. 在两台从服务器上输入命令
	mkdir /root/.ssh
  1. 采用dsa加密生成密钥,也可以采用rsa加密
	ssh-keygen -t dsa

然后一直回车
在这里插入图片描述

  1. 上面将密钥生成在默认路径/root/.ssh下,然后将其内容输出/root/.ssh/authorized_keys中
	cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys
  1. 然后将公钥复制到其他两个需要免密钥登录的slave1和slave2中
scp /root/.ssh/authorized_keys  (从服务器1的ip或者配置好的服务器名称):/root/.ssh/
scp /root/.ssh/authorized_keys  (从服务器2的ip或者配置好的服务器名称):/root/.ssh/
  1. 然后再住服务器上ssh登录两台从服务器进行测试
命令:ssh (从服务器1的ip或者配置好的服务器名称)
退出:logout(exit)
注意:免密登录之间的问题。是主服务器到从服务器免密,不是从服务器到主服务器

3.关闭所有服务器的防火墙

关闭防火墙

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

4.CentOS7中多台服务器配置时钟同步:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119276930

5.Centos编译hadoop所需软件

  1. Hadoop3.3.1版本 https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1-src.tar.gz
  2. Maven 3.3 or later
    官网下载地址:https://maven.apache.org/download.cgi
    直达下载地址:https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
  3. ProtocolBuffer 2.5.0 必须是这个不能高也不能低,而且需要自己安装,不是解压后就能用
    下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0
    直达下载地址: https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
  4. CMake 3.1 or newer (if compiling native code) 需要手动安装 因为centso7
    的仍然是2.8.5 不能使用
    官网下载地址:https://cmake.org/download/
    我选择的是3.17.5
    直达下執地址:[https://github.com/Kitware/CMake/releases/download/v3.17.5/cmake-3.17.5-Linux-x86 64.sh](https://github.com/Kitware/CMake/releases/download/v3.17.5/cmake-3.17.5-Linux-x86 64.sh)
    如果上面的不能下载:点击此处下载

6.安装jdk

  1. 上传jdk安装包到服务器上
  2. 解压:tar -zxvf jdk-8u191-linux-x64.tar.gz
  3. 配置环境变量:vi /etc/profile
JAVA_HOME=/usr/jdk/jdk1.8.0_191  #jdk安装目录       
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export PATH JAVA_HOME CLASSPATH TOMCAT_HOME

在这里插入图片描述

7.安装maven

  1. 上传压缩包到指定目录
  2. 解压压缩包:tar -zxvf apache-maven-3.8.4-bin.tar.gz
  3. 配置环境变量:vi /etc/profile
export MAVEN_HOME=/home/bisuser/maven/apache-maven-3.8.4
export PATH=$MAVEN_HOME/bin:$PATH 
  1. 刷新配置文件:source /etc/profile
  2. 检查maven版本信息:mvn -v
    在这里插入图片描述
  3. 配置maven远程仓库地址(国外的慢!!)
    切换到maven的配置文件目录:cd /home/bisuser/maven/apache-maven-3.8.4/conf
    打开配置文件:vi settings.xml
    在这里插入图片描述
  4. 找到配置文件中 的mirrors
原配置文件:
<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
  </mirrors>

修改成:

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
   <!-- <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror> -->
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
   
  </mirrors>

将国产地址配置进去

<mirror>
   <id>alimaven</id>
   <mirrorOf>central</mirrorOf>
   <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

8.安装yum可以安装的必要软件

yum -y install gcc*
yum install autoconf automake libtool cmake
yum -y install openssl-devel
yum -y install ncurses-devel
yum install lzo-devel zlib-devel bzip2
yum -y install libs*
yum install fuse-devel

9.安装ProtocolBuffer

  1. 上传protobuf-2.5.0.tar.gz的安装包到服务器
  2. 解压:tar -zxvf protobuf-2.5.0.tar.gz
  3. 进入解压后的目录:cd protobuf-2.5.0
  4. 执行生成配置文件:./autogen.sh
    在这里插入图片描述
  5. 运行配置脚本,配置一些信息:./configure
  6. 编译:make
  7. 安装:make install
  8. 验证:protoc --version which protoc

10.安装cmake(否则在编译的时候会报错,可以先通过11自行验证一下)

  1. yum删除已安装的cmake:yum erase cmake
  2. 解压安装包:tar -zxvf cmake-3.13.5.tar.gz
  3. 跳转至cmake目录:cd /home/bisuser/cmake/cmake-3.17.5
  4. 编译:./configure
  5. 安装: make && make install
  6. 检验安装是否成功:cmake -version

11.编译安装hadoop(编译hadoop后,将安装包复制到两个从服务器)

  1. 将hadoop压缩包上传到服务器(压缩包是源码压缩包)
  2. 解压:tar -zxvf hadoop-3.3.1-src.tar.gz
  3. 在源码目录下:mvn clean package -DskipTests -Pdist,native -Dtar
mvn clean package -DskipTests -Pdist,native -Dtar
  参数:clean → 清理旧的jar包
       package →打包,hadoop源码编译之后的安装包
       -DskipTests →跳过测试
       -Pdist,native  →生成结果目录的后缀dist, native:本地cpu相吻合的.so动态链接库,会将其一并打包到安装包中去
       -Dtar → 打包后的目标压缩包的类型,xxx.tar.gz

报错:
在这里插入图片描述
执行完10步骤后重新执行上面命令:
等待便已完成,
编译后的文件在:/home/bisuser/hadoop/hadoop-3.3.1/hadoop-dist/targer/目录下。
文件名为hadoop-3.3.1.tar.gz

  1. 将编译好得hadoop安装包复制到相应的目录
  2. 解压压缩包:tar -zxvf hadoop-3.3.1.tar.gz
  3. 进入到解压后的目录:cd hadoop-3.3.1
  4. hadoop配置文件目录:/hadoop-3.3.1/etc/hadoop
    在这里插入图片描述
  5. 修改Hapdoop-env.shvi hadoop-env.sh
#在文档最后添加
export JAVA_HOME=/usr/jdk/jdk1.8.0_191
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

在这里插入图片描述

  1. 修改xxx-site.xml,site标识用户定义的配置,会覆盖default中的默认配置:
    包含:
    core-site.xml 核心模块配置
    hdfs-site.xml hdfs文件系统,模块配置
    mapred-site.xml MapReduce模块配置
    yarn-site.xml yarn模块配置

core-site.xml的配置:

<!-- 设置默认的文件系统Hadoop支持file、HDFS、GFS、ali|Amazon云等我恩建系统 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop1:8082</value>
</property>
<!-- 设置Hadoop的本地保存路径 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/bisuser/hadoop/data</value>
</property>
<!-- 设置HDFS  web ui 的用户身份 -->
<property>
	<name>hadoop.http.staticuser.user</name>
	<value>root</value>
</property>
<!-- 整合hive用户代理设置 -->
<property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
</property>
<!-- 文件系统垃圾桶保存时间 -->
<property>
	<name>fs.trash.interval</name>
	<value>1440</value>
</property>

hdfs-site.xml配置

<!-- 设置SNN进行运行机器位置信息 -->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop2:9868</value>
</property>

mapred-site.xml配置

<!-- 设置MR程序默认运行模式,yarn集群模式、local本地模式 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
	<name>mapreduce.jobhistory.address</name>
	<value>hadoop1:10020</value>
</property>
<!-- MR程序历史服务器veb端地址 -->
<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<value>hadoop1:19888</value>
</property>
<property>
	<name>yarn.app.mapreduce.am.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
	<name>mapreduce.map.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
	<name>mapreduce.reduce.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

yarn-site.xml配置

<!-- 设胃YARN集群主角色运行机器位罝 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop1</value>
</property>
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
	<name>yarn.nodemanager.pmem-check-enabled</name>
	<value>false</value>
</property>
<!-- 是否将对容器实施虛拟内存限制 -->
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>
<!-- 设買yarn历史服务器地址 -->
<property>
	<name>yarn.log.server.url</name>
	<value>http://hadoop1:19888/jobhistory/logs</value>
</property>
<!-- 设買历史日志保留天数15天 -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>1296000</value>
</property>
  1. 配置workers:vi workers
hadoop1.study.cn
hadoop2.study.cn
hadoop3.study.cn
  1. 配置hadoop的环境变量:vi /etc/profile
export HADOOP_HOME=/home/bisuser/hadoop/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 刷新配置文件:source /etc/profile
  2. 验证:hadoop
    在这里插入图片描述

12.启动hadoop

首次启动前需要进行初始化(且只能执行一次),初始化需要在主服务器上:
命令:hdfs namenode -format
在这里插入图片描述

是否成功查看是否包含:INFO common.Storage: Storage directory /home/bisuser/hadoop/data/dfs/name has been successfully formatted.

逐个启动

  • HDFS启动
  1. hadoop2.x版本命令
    hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
  2. hadoop3.x版本命令
    hdfs -daemon start|stop namenode|datanode/secondarynamenode
  • YARN启动
  1. hadoop2.x版本命令
    yarn-daemon.sh start|stop resourcemanager|nodemanager
  2. hadoop3.x版本命令
    yarn -daemon start|stop resourcemanager|nodemanager

一键启动(前提:配置好机器之间SSH的免密登录和worker文件)

  • HDFS集群启动
	start-dfs.sh
	stop-dfs.sh
  • YARN集群启动
	start-yarn.sh
	stop-yarn.sh
  • HADOOP集群启动(同时启动HDFS和YARN)
	start-all.sh
	stop-all.sh

在这里插入图片描述
启动成功,安装完毕。

参考:https://blog.csdn.net/m0_52080234/article/details/120758250

ttps://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883
感谢上面两位博主

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走在未来之路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值