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

hadoop网络配置ping不通 hadoop配置ip地址_maven

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

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

然后一直回车

hadoop网络配置ping不通 hadoop配置ip地址_hadoop网络配置ping不通_02

  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中多台服务器配置时钟同步:


5.Centos编译hadoop所需软件

  1. Hadoop3.3.1版本 https:///hadoop/common/hadoop-3.3.1/hadoop-3.3.1-src.tar.gz
  2. Maven 3.3 or later
    官网下载地址:https:///download.cgi 直达下载地址:https:///apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
  3. ProtocolBuffer 2.5.0 必须是这个不能高也不能低,而且需要自己安装,不是解压后就能用
    下载地址:https:///protocolbuffers/protobuf/releases/tag/v2.5.0 直达下载地址: https:///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:///Kitware/CMake/releases/download/v3.17.5/cmake-3.17.5-Linux-x86 ](https:///Kitware/CMake/releases/download/v3.17.5/cmake-3.17.5-Linux-x86 )
    如果上面的不能下载:点击此处下载

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

hadoop网络配置ping不通 hadoop配置ip地址_centos_03

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. hadoop网络配置ping不通 hadoop配置ip地址_hadoop网络配置ping不通_04


  4. 配置maven远程仓库地址(国外的慢!!)
    切换到maven的配置文件目录:cd /home/bisuser/maven/apache-maven-3.8.4/conf 打开配置文件:vi settings.xml
  5. hadoop网络配置ping不通 hadoop配置ip地址_maven_05


  6. 找到配置文件中 的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. hadoop网络配置ping不通 hadoop配置ip地址_maven_06


  6. 运行配置脚本,配置一些信息:./configure
  7. 编译:make
  8. 安装:make install
  9. 验证: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

报错:

hadoop网络配置ping不通 hadoop配置ip地址_centos_07


执行完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. hadoop网络配置ping不通 hadoop配置ip地址_服务器_08


  6. 修改vi
#在文档最后添加
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

hadoop网络配置ping不通 hadoop配置ip地址_maven_09

  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
  3. hadoop网络配置ping不通 hadoop配置ip地址_hadoop网络配置ping不通_10


12.启动hadoop

首次启动前需要进行初始化(且只能执行一次),初始化需要在主服务器上:

命令:hdfs namenode -format

hadoop网络配置ping不通 hadoop配置ip地址_hadoop_11

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

逐个启动

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

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

  • HDFS集群启动

	
  • YARN集群启动

	
  • HADOOP集群启动(同时启动HDFS和YARN)

	

hadoop网络配置ping不通 hadoop配置ip地址_maven_12


启动成功,安装完毕。