欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop编译

程序员文章站 2023-12-25 12:54:15
...

什么是Apache Hadoop?

Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件。

Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。

该项目包括以下模块:

  • Hadoop Common:支持其他Hadoop模块的常用实用程序。
  • Hadoop分布式文件系统(HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
  • Hadoop YARN:作业调度和集群资源管理的框架。
  • Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集。

Apache的其他Hadoop相关项目包括:

  • Ambari™:基于Web的工具,用于配置,管理和监控Apache Hadoop集群,包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari还提供了一个用于查看群集运行状况的仪表板,例如热图,以及可视化查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。
  • Avro™:数据序列化系统。
  • Cassandra™:可扩展的多主数据库,没有单点故障。
  • Chukwa™:用于管理大型分布式系统的数据收集系统。
  • HBase™:可扩展的分布式数据库,支持大型表的结构化数据存储。
  • Hive™:一种数据仓库基础架构,提供数据汇总和即席查询。
  • Mahout™:可扩展的机器学习和数据挖掘库。
  • Pig™:用于并行计算的高级数据流语言和执行框架。
  • Spark™:用于Hadoop数据的快速通用计算引擎。Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL,机器学习,流处理和图形计算。
  • Tez™:基于Hadoop YARN构建的通用数据流编程框架,它提供了一个功能强大且灵活的引擎,可以执行任意DAG任务来处理批量和交互式用例的数据。Tez正在被Hadoop生态系统中的Hive™,Pig™和其他框架以及其他商业软件(例如ETL工具)采用,以取代Hadoop™MapReduce作为底层执行引擎。
  • ZooKeeper™:用于分布式应用程序的高性能协调服务。

上传下载好的包

[aaa@qq.com opt]# mkdir /opt/software /opt/sourcecode 
[aaa@qq.com opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 9月   7 2017 rh
drwxr-xr-x. 2 root root 6 8月   1 18:44 software
drwxr-xr-x. 2 root root 6 8月   1 18:44 sourcecode
[aaa@qq.com opt]# cd /opt/sourcecode/[aaa@qq.com sourcecode]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
  100%   33714 KB 16857 KB/s 00:00:02       0 Errors

[aaa@qq.com sourcecode]#

 

Hadoop编译

 

解压文件并查看:

[aaa@qq.com sourcecode]# tar -xzvf hadoop-2.8.1-src.tar.gz 
。。。。。。##此处省略一大片

[aaa@qq.com sourcecode]# ll 总用量
33720 drwxr-xr-x. 17 root root 4096 6月 2 2017 hadoop-2.8.1-src -rw-r--r--. 1 root root 34523353 8月 1 17:47 hadoop-2.8.1-src.tar.gz [aaa@qq.com sourcecode]#
查看要求文档:
[aaa@qq.com sourcecode]# cd hadoop-2.8.1-src [aaa@qq.com hadoop-2.8.1-src]# ll 总用量 164 -rw-rw-r--. 1 root root 15623 5月 24 2017 BUILDING.txt //要求文档 drwxr-xr-x. 4 root root 137 8月 1 18:51 dev-support drwxr-xr-x. 3 root root 32 8月 1 18:51 hadoop-assemblies drwxr-xr-x. 3 root root 32 8月 1 18:51 hadoop-build-tools drwxrwxr-x. 2 root root 21 8月 1 18:51 hadoop-client drwxr-xr-x. 10 root root 192 8月 1 18:51 hadoop-common-project drwxr-xr-x. 2 root root 21 8月 1 18:51 hadoop-dist drwxr-xr-x. 8 root root 167 8月 1 18:51 hadoop-hdfs-project drwxr-xr-x. 9 root root 164 8月 1 18:51 hadoop-mapreduce-project drwxr-xr-x. 3 root root 32 8月 1 18:51 hadoop-maven-plugins drwxr-xr-x. 2 root root 21 8月 1 18:51 hadoop-minicluster drwxr-xr-x. 3 root root 32 8月 1 18:51 hadoop-project drwxr-xr-x. 2 root root 39 8月 1 18:51 hadoop-project-dist drwxr-xr-x. 18 root root 4096 8月 1 18:51 hadoop-tools drwxr-xr-x. 3 root root 40 8月 1 18:51 hadoop-yarn-project -rw-rw-r--. 1 root root 99253 5月 24 2017 LICENSE.txt -rw-rw-r--. 1 root root 15915 5月 24 2017 NOTICE.txt drwxrwxr-x. 2 root root 6 6月 2 2017 patchprocess -rw-rw-r--. 1 root root 20477 5月 29 2017 pom.xml -rw-r--r--. 1 root root 1366 5月 20 2017 README.txt -rwxrwxr-x. 1 root root 1841 5月 24 2017 start-build-env.sh [aaa@qq.com hadoop-2.8.1-src]#

查看要求文档

Building on Windows

----------------------------------------------------------------------------------
Requirements:

* Windows System
* JDK 1.7+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer
* Windows SDK 7.1 or Visual Studio 2010 Professional
* Windows SDK 8.1 (if building CPU rate control for the container executor)
* zlib headers (if building native code bindings for zlib)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)

Hadoop编译

接下来安装java:

 

[aaa@qq.com usr]# mkdir -p /usr/java
[aaa@qq.com usr]# cd /usr/java
[aaa@qq.com java]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
  100%  169210 KB 28201 KB/s 00:00:06       0 Errors

[aaa@qq.com java]# tar -xzvf jdk-8u45-linux-x64.gz
解压后查看:
[aaa@qq.com java]# ll
总用量 169212
drwxr-xr-x. 8   10  143       255 4月  11 2015 jdk1.8.0_45
-rw-r--r--. 1 root root 173271626 8月   1 17:21 jdk-8u45-linux-x64.gz
[aaa@qq.com java]#

修改用户用户组:

[aaa@qq.com java]# ll
总用量 169212
drwxr-xr-x. 8   10  143       255 4月  11 2015 jdk1.8.0_45
-rw-r--r--. 1 root root 173271626 8月   1 17:21 jdk-8u45-linux-x64.gz
[aaa@qq.com java]# chown -R root:root jdk1.8.0_45
[aaa@qq.com java]# ll
总用量 169212
drwxr-xr-x. 8 root root       255 4月  11 2015 jdk1.8.0_45
-rw-r--r--. 1 root root 173271626 8月   1 17:21 jdk-8u45-linux-x64.gz
[aaa@qq.com java]# 

配置环境变量:

[aaa@qq.com java]# vi /etc/profile

追加如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH

配置完以后wq保存退出,修改完配置文件要生效,接下来生效配置文件,并且查看java位置以及版本
[aaa@qq.com java]# source /etc/profile
[aaa@qq.com java]# which java
/usr/java/jdk1.8.0_45/bin/java
[aaa@qq.com java]#  java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
[aaa@qq.com java]# 

接下来安装需求文档上传maven解压:

[aaa@qq.com java]# cd /opt/software/
[aaa@qq.com software]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
  100%    8415 KB 8415 KB/s 00:00:01       0 Errors

[aaa@qq.com software]# ll
总用量 8416
-rw-r--r--. 1 root root 8617253 8月   1 17:44 apache-maven-3.3.9-bin.zip
[aaa@qq.com software]# unzip apache-maven-3.3.9-bin.zip
Archive:  apache-maven-3.3.9-bin.zip
   creating: apache-maven-3.3.9/
   creating: apache-maven-3.3.9/boot/
  inflating: apache-maven-3.3.9/boot/plexus-classworlds-2.5.2.jar  
   creating: apache-maven-3.3.9/lib/
  inflating: apache-maven-3.3.9/lib/maven-embedder-3.3.9.jar  

接下来配置环境变量,生效配置文件,查看版本


[aaa@qq.com software]# vi /etc/profile

添加以下内容
export MAVEN_HOME=/opt/software/apache-maven-3.3.9
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH

[aaa@qq.com software]# source /etc/profile
[aaa@qq.com software]# mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/software/apache-maven-3.3.9
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_45/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
[aaa@qq.com software]# 

protobuf的安装

[aaa@qq.com software]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
  100%    2345 KB 2345 KB/s 00:00:01       0 Errors

[aaa@qq.com software]# ll
总用量 10764
drwxr-xr-x. 6 root root      99 11月 10 2015 apache-maven-3.3.9
-rw-r--r--. 1 root root 8617253 8月   1 17:44 apache-maven-3.3.9-bin.zip
-rw-r--r--. 1 root root 2401901 8月   1 17:16 protobuf-2.5.0.tar.gz
[aaa@qq.com software]# tar -xzvf protobuf-2.5.0.tar.gz
[aaa@qq.com software]# ll
总用量 10768
drwxr-xr-x.  6 root   root      99 11月 10 2015 apache-maven-3.3.9
-rw-r--r--.  1 root   root 8617253 8月   1 17:44 apache-maven-3.3.9-bin.zip
drwxr-xr-x. 10 109965 5000    4096 2月  27 2013 protobuf-2.5.0
-rw-r--r--.  1 root   root 2401901 8月   1 17:16 protobuf-2.5.0.tar.gz
[aaa@qq.com software]#

安装gcc gcc-c++ cmake

[aaa@qq.com software]# cd protobuf-2.5.0
[aaa@qq.com protobuf-2.5.0]# yum install -y gcc gcc-c++ make cmake

Hadoop编译

 

编译安装
[aaa@qq.com protobuf-2.5.0]# ./configure --prefix=/usr/local/protobuf
.
/configure是编译你的源码文件 --prefix=/usr/local 是指定文件安装目录 [aaa@qq.com protobuf-2.5.0]# make && make install
  1. configure
    Linux 平台有各种不同的配置,安装时需要通过 configure 来确定,如:编译器用的是 cc 还是 gcc、不同库文件所在目录等。执行 configure 后会生成 Makefile,Makefile 规定了用什么编译器、编译参数等信息。
  2. make
    根据 Makefile 中规定的内容进行编译,生成的可执行文件放在当前目录或某个子目录。
  3. make install
    将 make 生成的文件安装到系统目录中或指定目录,如 /usr/bin,这一步需要 root 权限,所以通常得用 sudo make install。如果没有这一步,在命令行中输入程序名字不能启动相应程序
配置环境变量,生效,查看
[aaa@qq.com protobuf-2.5.0]# vi /etc/profile

添加如下内容
export PROTOC_HOME=/usr/local/protobuf
export PATH=$PROTOC_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH

[aaa@qq.com protobuf-2.5.0]# source /etc/profile
[aaa@qq.com protobuf-2.5.0]# protoc --version
libprotoc 2.5.0

 findbugs安装

[aaa@qq.com software]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
  100%    7369 KB 7369 KB/s 00:00:01       0 Errors

[aaa@qq.com software]# ll
总用量 18140
drwxr-xr-x.  6 root   root      99 11月 10 2015 apache-maven-3.3.9
-rw-r--r--.  1 root   root 8617253 8月   1 17:44 apache-maven-3.3.9-bin.zip
-rw-r--r--.  1 root   root 7546219 8月   1 17:45 findbugs-1.3.9.zip
drwxr-xr-x. 10 109965 5000    4096 8月   2 10:24 protobuf-2.5.0
-rw-r--r--.  1 root   root 2401901 8月   1 17:16 protobuf-2.5.0.tar.gz
[aaa@qq.com software]# 
[aaa@qq.com software]# unzip  findbugs-1.3.9.zip

环境变量:

[aaa@qq.com software]# vi /etc/profile

添加如下内容
export FINDBUGS_HOME=/opt/software/findbugs-1.3.9
export PATH=$FINDBUGS_HOME/bin:$PROTOC_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH

[aaa@qq.com software]# source /etc/profile
[aaa@qq.com software]# findbugs -version
1.3.9

下载其它依赖

[aaa@qq.com software]#yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
[aaa@qq.com software]#yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake

开始编译:

[aaa@qq.com sourcecode]# cd hadoop-2.8.1-src
[aaa@qq.com hadoop-2.8.1-src]# mvn clean package -Pdist,native -DskipTests -Dtar


编译好的文件
/opt/sourcecode/hadoop-2.8.1-src/hadoop-dist/target/hadoop-2.8.1.tar.gz

1. 有时候编译过程中出现假死,按ctrl+c,重新运行编译命令。
2. 如果出现缺少了某个文件的情况,则要先清理maven(使用命令 mvn clean) 再重新编译。



 

上一篇:

下一篇: