什么是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]#
解压文件并查看:
[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)
接下来安装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
编译安装
[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
- configure
Linux 平台有各种不同的配置,安装时需要通过 configure 来确定,如:编译器用的是 cc 还是 gcc、不同库文件所在目录等。执行 configure 后会生成 Makefile,Makefile 规定了用什么编译器、编译参数等信息。 - make
根据 Makefile 中规定的内容进行编译,生成的可执行文件放在当前目录或某个子目录。 - 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) 再重新编译。