Hadoop 入门教程(超详细)

您所在的位置:网站首页 Hadoop基本原理和理念 Hadoop 入门教程(超详细)

Hadoop 入门教程(超详细)

2024-06-10 20:27| 来源: 网络整理| 查看: 265

文章目录 1 Hadoop 介绍1.1 Hadoop 是什么1.2 Hadoop 的发展历史1.3 Hadoop 三大发行版本1.4 Hadoop 的优势1.5 Hadoop 的组成1.6 大数据技术生态体系 2 Hadoop 环境搭建2.1 虚拟机环境准备2.2 安装 jdk2.3 安装 Hadoop 3 Hadoop 的运行模式3.1 本地运行模式3.1.1 官方 Grep 案例3.1.2 官方 WordCount 案例 3.2 伪分布式运行模式3.2.1 启动 HDFS 并运行 MapReduce 程序3.2.2 启动 YARN 并运行 MapReduce 程序3.2.3 配置历史服务器3.2.4 配置日志的聚集 3.3 完全分布式运行模式3.3.1 虚拟机准备3.3.2 编写集群分发脚本 xsync3.3.3 集群配置3.3.4 集群单点启动3.3.5 配置 SSH 无密登录3.3.6 群起集群3.3.7 集群时间同步 4. Hadoop 编译源码4.1 前期工作准备4.2 jar 包安装4.3 编译源码

1 Hadoop 介绍 1.1 Hadoop 是什么 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说,Hadoop 通常是指一个更广泛的概念 —— Hadoop 生态圈。 1.2 Hadoop 的发展历史

Lucene 框架是 Doug Cutting 开创的开源软件,用 java 书写代码,实现与 Google 类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎 。

2001年年底 Lucene 成为 apache 基金会的一个子项目。

对于海量数据的场景,Lucene 面对与 Google 同样的困难:存储数据困难,检索速度慢。

学习和模仿 Google 解决这些问题的办法 :微型版 Nutch。

可以说 Google 是 hadoop 的思想之源(Google 在大数据方面的三篇论文)。

GFS —>HDFS Map-Reduce —>MR BigTable —>Hbase

2003-2004 年,Google 公开了部分 GFS 和 Mapreduce 思想的细节,以此为基础 Doug Cutting 等人用了 2 年业余时间实现了 DFS 和 Mapreduce机制,使 Nutch 性能飙升 。

2005 年Hadoop 作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。

2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。

名字来源于 Doug Cutting 儿子的玩具大象。 在这里插入图片描述

Hadoop 就此诞生并迅速发展,标志这云计算时代来临。

1.3 Hadoop 三大发行版本

  Apache、Cloudera、Hortonworks

Apache 版本最原始(最基础)的版本,对于入门学习最好。

Cloudera在大型互联网企业中用的较多。

① 2008 年成立的 Cloudera 是最早将 Hadoop 商用的公司,为合作伙伴提供 Hadoop 的商用解决方案,主要是包括支持、咨询服务、培训。 ② 2009 年 Hadoop 的创始人 Doug Cutting 也加盟 Cloudera 公司。Cloudera 产品主要为 CDH,Cloudera Manager,Cloudera Support。 ③ CDH 是Cloudera 的 Hadoop 发行版,完全开源,比 Apache Hadoop 在兼容性,安全性,稳定性上有所增强。 ④ Cloudera Manager 是集群的软件分发及管理监控平台,可以在几个小时内部署好一个 Hadoop 集群,并对集群的节点及服务进行实时监控。Cloudera Support 即是对 Hadoop 的技术支持。 ⑤ Cloudera 的标价为每年每个节点 4000 美元。Cloudera 开发并贡献了可实时处理大数据的 Impala 项目。

Hortonworks 文档较好。

① 2011 年成立的 Hortonworks 是雅虎与硅谷风投公司 Benchmark Capital 合资组建。 ② 公司成立之初就吸纳了大约 25 名至 30 名专门研究Hadoop的雅虎工程师,上述工程师均在 2005 年开始协助雅虎开发 Hadoop,贡献了 Hadoop 80% 的代码。 ③ 雅虎工程副总裁、雅虎 Hadoop 开发团队负责人 Eric Baldeschwieler 出任 Hortonworks 的首席执行官。 ④ Hortonworks 的主打产品是 Hortonworks Data Platform(HDP),也同样是 100% 开源的产品,HDP 除常见的项目外还包括了 Ambari,一款开源的安装和管理系统。 ⑤ HCatalog,一个元数据管理系统,HCatalog 现已集成到 Facebook 开源的 Hive 中。Hortonworks 的 Stinger 开创性的极大的优化了 Hive 项目。Hortonworks 为入门提供了一个非常好的,易于使用的沙盒。 ⑥ Hortonworks 开发了很多增强特性并提交至核心主干,这使得 Apache Hadoop 能够在包括 Window Server 和 Windows Azure 在内的 microsoft Windows 平台上本地运行。定价以集群为基础,每10 个节点每年为 12500 美元。

1.4 Hadoop 的优势 高可靠性: Hadoop 底层维护多个数据副本,所以即使 Hadoop 某个计算元素或存储出现故障,也不会导致数据的丢失。高扩展性: 在集群间分配任务数据,可方便的扩展数以千计的节点。高效性: 在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度。高容错性: 能够自动将失败的任务重新分配。 1.5 Hadoop 的组成

Hadoop 1.x 和 hadoop 2.x 的区别 在这里插入图片描述 在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。 在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。

HDFS 框架概述

① NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块所在的 DataNode 等。 ② DataNode(dn): 在本地文件系统存储文件块数据,以及块数据校验和。 ③ Secondary DataNode(2nn): 用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS 元数据的快照。

Yarn 结构概述 在这里插入图片描述 ① ResourceManager(RM):

  (1)处理客户端请求。   (2)监控 NodeManager。   (3)启动或监控 ApplicationMaster。   (4)资源的分配与调度。

② NodeManager(NM):

  (1)管理单个节点上的资源。   (2)处理来自 ResourceManager 的命令。   (3)处理来自 ApplicationMaster 的命令。   (4)资源的分配与调度。

③ ApplicationMaster(AM):

  (1)负责数据的切分。   (2)为应用程序申请资源并分配给内部的任务。   (3)任务的监控与容错。

④ Container:

  Container 是 Yarn 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 阶段和 Reduce 阶段。

① Map 阶段并行处理输入的数据。 ② Reduce 阶段对 Map 结果进行汇总。

1.6 大数据技术生态体系

在这里插入图片描述

2 Hadoop 环境搭建 2.1 虚拟机环境准备

克隆虚拟机

修改克隆虚拟机的静态IP

① vim /etc/sysconfig/network-scripts/ifcfg-网卡名称

终端上输入 ifconfig 或 ip addr,找出网卡名称在这里插入图片描述 ② 将 BOOTPROTO=dhcp 改成 BOOTPROTO=static、ONBOOT=no 改成 ONBOOT=yes ③ 并在文件尾部添加以下内容

IPADDR=192.168.217.129 NETMASK=255.255.255.0 GATEWAY=192.168.217.2 DNFS1=192.168.217.2

  在这里插入图片描述

  ④ 重启网关服务

systemctl restart network 修改主机名 hostnamectl set-hostname lyh

关闭防火墙

① 关闭防火墙

systemctl stop firewalld

  ② 禁止防火墙开机启动

systemctl disable firewalld

  ③ 关闭 Selinux

vim /etc/sysconfig/selinux

  将 SELINUX=enforcing 改成 SELINUX=disabled

2.2 安装 jdk 将 jdk-8u151-linux-x64.tar.gz 安装包通过 xftp 传到 CentOS 7 上创建 /usr/local/java 文件夹 mkdir /usr/local/java 将 jdk 压缩包解压到 /usr/local/java 目录下 tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java/ 配置 jdk 的环境变量 vim /etc/profile

  添加以下内容:

# JAVAHOME export JAVA_HOME=/usr/local/java/jdk1.8.0_151 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin 让配置文件生效 source /etc/profile

输入 java、javac、java -version 命令检验 jdk 是否安装成功

注意:如果之前安装过 jdk 或 系统自带 jdk,我们需要卸载这些 jdk

① 查询已安装的 jdk 列表

rpm -qa | grep jdk

  ② 删除已经安装的 jdk

yum -y remove XXX(上面查询到的 jdk 名称)

   注意:如果终端出现以下错误:/var/run/yum.pid 已被锁定,PID 为 1610 的另一个程序正在运行。则输入以下命令:

rm -f /var/run/yum.pid

   之后再执行以上删除 jdk 的命令

  ③ 重新让配置文件生效

source /etc/profile

  ④ 输入 java、javac、java -version 命令检验 jdk 是否安装成功

2.3 安装 Hadoop

Hadoop 官网

将 hadoop-2.7.7.tar.gz 安装包通过 xftp 传到 CentOS 7 上创建 /hadoop 文件夹 mkdir /hadoop 将 hadoop 压缩包解压到 /haddop 的目录下 tar -zxvf hadoop-2.7.7.tar.gz -C /hadoop/

配置 hadoop 环境变量

① 在 /etc/profile 文件的尾部添加以下内容:

#HADOOP export HADOOP_HOME=/hadoop/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

  ② 使配置文件生效

source /etc/profile 测试是否安装成功 hadoop version

在这里插入图片描述

3 Hadoop 的运行模式

  Hadoop 的运行模式包括:本地模式、伪分布式模式、完全分布式模式。

3.1 本地运行模式 3.1.1 官方 Grep 案例 在 hadoop-2.7.7 文件下面创建一个 input 文件夹 mkdir input 将 Hadoop 的 xml 配置文件复制到 input cp etc/hadoop/*.xml input 在 hadoop-2.7.7 目录下,执行 share 目录下的 MapReduce 程序 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input/ output 'dfs[a-z.]+' 查看输出结果 在这里插入图片描述 3.1.2 官方 WordCount 案例 在 hadoop-2.7.7 文件下面创建一个 wcinput 文件夹 mkdir wcinput 在 wcinput 文件下创建一个 wc.input 文件 vim wc.input

  在文件中输入以下内容:

hadoop yarn hadoop mapreduce spark spark 在 hadoop-2.7.7 目录下,执行 share 目录下的 MapReduce 程序 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount wcinput/ wcoutput 查看结果 在这里插入图片描述 3.2 伪分布式运行模式 3.2.1 启动 HDFS 并运行 MapReduce 程序

配置集群,修改 Hadoop 的配置文件(/hadoop/hadoop-2.7.7/etc/hadoop 目录下)

① core-site.xml

fs.defaultFS hdfs://lyh:9000 hadoop.tmp.dir /hadoop/hadoop-2.7.7/data/tmp

  ② hadoop-env.sh

   修改 JAVA_HOME 路径:

# The java implementation to use. export JAVA_HOME=/usr/local/java/jdk1.8.0_151

  ③ hdfs-site.xml

dfs.replication 1

启动集群

① 格式化 NameNode(第一次启动时格式化,以后就不要总格式化)

hdfs namenode -format

  ② 启动 NameNode

hadoop-daemon.sh start namenode

  ③ 启动 DataNode

hadoop-daemon.sh start datanode

查看集群

① 查看是否启动成功 在这里插入图片描述 ② web 端查看 HDFS 文件系统

http://192.168.217.129:50070 在这里插入图片描述

操作集群

① 在 HDFS 文件系统上创建一个 input 文件夹

hdfs dfs -mkdir -p /user/lyh/input

  ② 将测试文件内容上传到文件系统上

hdfs dfs -put wcinput/wc.input /user/lyh/input/

  ③ 在 hadoop-2.7.7 目录下,运行 MapReduce 程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /user/lyh/input/ /user/lyh/output

  ④ 查看输出结果

   命令行查看:

hdfs dfs -cat /user/atguigu/output/*

在这里插入图片描述    浏览器页面查看: 在这里插入图片描述

3.2.2 启动 YARN 并运行 MapReduce 程序

配置集群,修改 Hadoop 的配置文件(/hadoop/hadoop-2.7.7/etc/hadoop 目录下)

① yarn-site.xml

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname lyh

  ② yarn-env.sh

   修改 JAVA_HOME 路径:

export JAVA_HOME=/usr/local/java/jdk1.8.0_151

  ③ mapred-env.sh

   修改 JAVA_HOME 路径:

export JAVA_HOME=/usr/local/java/jdk1.8.0_151

  ④ 将 mapred-site.xml.template 重新命名为 mapred-site.xml

mv mapred-site.xml.template mapred-site.xml mapreduce.framework.name yarn

启动集群

① 启动前必须保证 NameNode 和 DataNode 已经启动 ② 启动 ResourceManager

yarn-daemon.sh start resourcemanager

  ③ 启动NodeManager

yarn-daemon.sh start nodemanager

查看集群

① 查看是否启动成功 在这里插入图片描述 ② web 端查看 YARN 页面

http://192.168.217.129:8088 在这里插入图片描述

操作集群

① 删除 HDFS 文件系统上的 output 文件

hdfs dfs -rm -R /user/lyh/output

  ② 在 hadoop-2.7.7 目录下,运行 MapReduce 程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /user/lyh/input /user/lyh/output

  ③ 查看运行结果

   命令行查看:

hdfs dfs -cat /user/lyh/output/*

在这里插入图片描述    浏览器页面查看: 在这里插入图片描述

3.2.3 配置历史服务器

  为了查看程序的历史运行情况,需要配置一下历史服务器。

配置 mapred-site.xml

在该文件里面增加以下配置:

mapreduce.jobhistory.address lyh:10020 mapreduce.jobhistory.webapp.address lyh:19888 启动历史服务器 mr-jobhistory-daemon.sh start historyserver

查看历史服务器是否启动 在这里插入图片描述

查看 JobHistory

http://192.168.217.129:19888/ 在这里插入图片描述

3.2.4 配置日志的聚集

  日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。   日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

  注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和 HistoryManager。

关闭 NodeManager 、ResourceManager 和 HistoryManager yarn-daemon.sh stop resourcemanager yarn-daemon.sh stop nodemanager mr-jobhistory-daemon.sh stop historyserver

配置 yarn-site.xml

在该文件里面增加以下配置:

yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 604800 启动 NodeManager 、ResourceManager 和 HistoryManager yarn-daemon.sh start resourcemanager yarn-daemon.sh start nodemanager mr-jobhistory-daemon.sh start historyserver 删除HDFS上已经存在的输出文件 hdfs dfs -rm -R /user/lyh/output 在 hadoop-2.7.7 目录下,执行 WordCount 程序 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /user/lyh/input /user/lyh/output 查看日志 在这里插入图片描述 3.3 完全分布式运行模式 3.3.1 虚拟机准备 准备(克隆) 3 台客户机 主机名称IP 地址master192.168.217.130slave1192.168.217.131slave2192.168.217.132 每台机器分别修改 /etc/hosts 文件,将每个机器的 hostname 和 ip 对应 vim /etc/hosts 192.168.217.130 master 192.168.217.131 slave1 192.168.217.132 slave2 之后详细操作查看 2.1 3.3.2 编写集群分发脚本 xsync

scp(secure copy)安全拷贝

① scp 定义:

  scp 可以实现服务器与服务器之间的数据拷贝。

② 基本语法:

scp -r 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称

rsync(remote synchronize)远程同步工具

① rsync 定义:

  rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

  rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。

② 基本语法:

rsync -rvl 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称

  说明:-v:显示复制过程 、-l:拷贝符号链接

xsync 集群分发脚本

需求:循环复制文件到所有节点的相同目录下

① 在 /usr/local/bin 目录下创建 xsync 文件

vim xsync

   在文件中输入以下内容:

#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for i in master slave1 slave2 do echo "****************** $i *********************" rsync -rvl $pdir/$fname $user@$i:$pdir done

  ② 修改脚本 xsync 具有执行权限

chmod 777 xsync

  ③ 调用脚本形式:xsync 文件名称

3.3.3 集群配置 集群部署规划 masterslave1slave2HDFSNameNode DataNodeDataNodeSecondaryNameNodeDataNodeYARNNodeManagerResourceManagerNodeManagerNodeManager

配置集群

⑴ 配置核心文件

  配置 core-site.xml

fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /hadoop/hadoop-2.7.7/data/tmp

  ⑵ HDFS 配置文件

   ① 配置 hadoop-env.sh

    修改 JAVA_HOME 路径:

# The java implementation to use. export JAVA_HOME=/usr/local/java/jdk1.8.0_151

   ② 配置 hdfs-site.xml

dfs.replication 3 dfs.namenode.secondary.http-address slave2:50090

  ⑶ YARN 配置文件

   ① 配置 yarn-env.sh

   修改 JAVA_HOME 路径:

export JAVA_HOME=/usr/local/java/jdk1.8.0_151

   ② 配置 yarn-site.xml

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname slave1 yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 604800

  ⑷ MapReduce 配置文件

   ① 配置 mapred-env.sh

    修改 JAVA_HOME 路径:

export JAVA_HOME=/usr/local/java/jdk1.8.0_151

   ② 配置 mapred-site.xml

mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888 在集群上分发配置好的 Hadoop 目录 xsync /hadoop/ 3.3.4 集群单点启动 如果集群是第一次启动,需要格式化 NameNode hadoop namenode -format 在 master上启动 NameNode hadoop-daemon.sh start namenode 在 master、slave1 和 slave2 上分别启动 DataNode hadoop-daemon.sh start datanode 3.3.5 配置 SSH 无密登录

免密登录原理 在这里插入图片描述

生成公钥和私钥

在 /root 目录下输入:

ssh-keygen -t rsa

  然后敲(三个回车),就会在 .ssh 目录下生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上 ssh-copy-id master ssh-copy-id slave1 ssh-copy-id slave2 在另两台机器上也做 2、3 操作 3.3.6 群起集群

配置 slaves(/hadoop/hadoop-2.7.7/etc/hadoop/slaves)

① 在该文件中增加如下内容:

master slave1 slave2

  注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

  ② 同步所有节点配置文件

xsync slaves

启动集群

① 如果集群是第一次启动,需要格式化 NameNode (注意格式化之前,一定要先停止上次启动的所有 namenode 和 datanode 进程,然后再删除 data 和 log 数据)

hdfs namenode -format

  ② 启动 HDFS

start-dfs.sh

  ③ 启动 YARN(slave1 上)

注意:NameNode 和 ResourceManger 如果不是同一台机器,不能在 NameNode 上启动 YARN,应该在 ResouceManager 所在的机器上启动 YARN。

start-yarn.sh

编写查看集群所有节点 jps 脚本 alljps

① 在 /usr/local/bin 目录下创建文件 alljps

vim alljps

   在文件中输入以下内容:

#!/bin/bash for i in master slave1 slave2 do echo "****************** $i *********************" ssh $i "source /etc/profile && jps" done

  ② 修改脚本 alljps 具有执行权限

chmod 777 alljps

  ③ 调用脚本形式:alljps   在这里插入图片描述

3.3.7 集群时间同步

  时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。

时间服务器配置(必须 root 用户)

① 安装 ntp

yum install ntp

  ② 修改 ntp 配置文件

vim /etc/ntp.conf

  修改内容如下:

   ⑴ 授权 192.168.1.0-192.168.1.255 网段上的所有机器可以从这台机器上查询和同步时间

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

   ⑵ 集群在局域网中,不使用其他互联网上的时间

#server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst

   ⑶ 当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步

server 127.127.1.0 fudge 127.127.1.0 stratum 10

  ③ 修改/etc/sysconfig/ntpd 文件

vim /etc/sysconfig/ntpd

   添加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

  ④ 重新启动 ntpd 服务

systemctl restart ntpd.service

  ⑤ 设置 ntpd 服务开机启动

systemctl enable ntpd.service

其他机器配置(必须root用户)

在其他机器配置10分钟与时间服务器同步一次

crontab -e

   编写定时任务如下:

*/10 * * * * /usr/sbin/ntpdate master 4. Hadoop 编译源码 4.1 前期工作准备

CentOS 联网

配置 CentOS 能连接外网。Linux 虚拟机 ping www.baidu.com 是畅通的。

jar 包准备(hadoop 源码、JDK8、maven、ant 、protobuf)

① hadoop-2.7.7-src.tar.gz ② jdk-8u151-linux-x64.tar.gz ③ apache-ant-1.9.9-bin.tar.gz(build 工具,打包用的) ④ apache-maven-3.0.5-bin.tar.gz ⑤ protobuf-2.5.0.tar.gz(序列化的框架)

4.2 jar 包安装

安装 jdk

具体详见 2.2。

安装 Maven

① 解压 Maven

tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /opt/module/

  ② 配置环境变量

vim /etc/profile

   添加以下内容:

#MAVEN_HOME export MAVEN_HOME=/opt/module/apache-maven-3.0.5 export PATH=$PATH:$MAVEN_HOME/bin

   使配置文件生效:

source /etc/profile

  ② 进入解压后的 Maven 目录,编辑配置文件(更改 Maven 镜像)

nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public

   ③ 查看 Maven 是否安装成功

mvn -version

在这里插入图片描述

安装 ant

① 解压 ant

tar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/

  ② 配置环境变量

vim /etc/profile

   添加以下内容:

#ANT_HOME export ANT_HOME=/opt/module/apache-ant-1.9.9 export PATH=$PATH:$ANT_HOME/bin

   使配置文件生效:

source /etc/profile

   ③ 查看 ant 是否安装成功

ant -version

在这里插入图片描述

安装 glibc-headers 和 g++ yum install glibc-headers yum install gcc-c++ 安装 make 和 cmake yum install make yum install cmake

安装 protobuf

① 解压 protobuf

tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/

  ② 配置环境变量

vim /etc/profile

   添加以下内容:

#LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0 export PATH=$PATH:$LD_LIBRARY_PATH

   使配置文件生效:

source /etc/profile

   ③ 进入到解压后 protobuf 主目录,/opt/module/protobuf-2.5.0,然后相继执行命令

./configure make make check make install ldconfig

   ③ 查看 protobuf 是否安装成功

protoc --version

在这里插入图片描述

安装 openssl 库 yum install openssl-devel 安装 ncurses-devel 库 yum install ncurses-devel 4.3 编译源码 解压源码到 /opt/ 目录 tar -zxvf hadoop-2.7.7-src.tar.gz -C /opt/ 进入到 hadoop 源码主目录 /opt/hadoop-2.7.2-src,通过 maven 执行编译命令 mvn package -Pdist,native -DskipTests -Dtar

  等待时间 2 小时左右。

成功的 64 位 hadoop 包在 /opt/hadoop-2.7.2-src/hadoop-dist/target 下


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3