Hadoop概述

Hadoop是一个能够对大量数据进行分布式处理的软件框架,具有可靠,高效,可伸缩的特点

Hadoop组件

  1. Common一组分布式文件系统和通用I/O的组件和接口(序列化、Java RPC和持久化数据结构)
  2. HDFS(Hadoop Distributed File System)分布式文件系统
  3. MapReduce分布式并行编程模型
  4. Hive分布式、按列存储数据库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译为MapReduce作业)用以查询数据库
  5. HBase一个分布式、按列存储数据库。HBase使用HDFS作为底层存储,支持MapReduce的批量式计算和点查询(随机读取)
  6. Sqoop在数据库和HDFS之间高效传输数据的工具(可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。)
  7. Pig一种数据流语言和运行环境,用以检索非常大的数据集.Pig运行在MapReduce和HDFS的集群上
  8. Avro一种支持高效、跨语言的RPC以及永久存储数据的序列化系统
  9. ZooKeeper分布式、高可用的协调服务,提供分布式锁之类的基础服务,用于构建分布式应用
  10. Flume一个分布式、可靠的、高可用的海量日志聚合系统,可用于日志收集,日志数据处理,日志数据传输
  11. Ambari一个基于Web的攻击,用来创建、管理、监视 Hadoop 的集群

Hodoop安装

搭建本地源

准备工作

  1. 安装nginxyum install nginx
  2. 禁用防火墙或打开ambari/hadoop集群所需要使用端口
  3. 禁用SELinux 重启服务器 编辑/etc/selinux/config修改SELINUX为SELINUX=disabled
  4. 在Ambari Server和Hadoop集群所有机器配置hosts IP地址根据实际的IP设置
    1
    127.0.0.1 ambari.casezhegn.date

压缩包下载

1
2
3
4
5
# Ambari
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.2/ambari-2.6.2.2-centos7.tar.gz
# Hadoop
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.0-centos7-rpm.tar.gz

配置Nginx

1
2
3
4
5
6
7
8
9
10
$cat ambari.casezheng.date.conf 
server {
listen 8088;
server_name ambari.casezheng.date 127.0.0.1;

root /data/hadoop/repo/;
location / {
autoindex on;
}
}

重新加载nginx配置

拷贝文件到配置的nginx根目录下

  1. 解压文件

    1
    2
    3
    tar zxvf ambari-2.6.2.2-centos7.tar.gz
    tar zxvf HDP-2.6.5.0-centos7-rpm.tar.gz
    tar zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
  2. 将解压文件放置在配置的nginx根目录下,目录层次结构如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $ pwd
    /data/hadoop/repo
    $ tree --filelimit 5
    .
    |-- ambari
    | `-- centos7
    | `-- 2.6.2.2-1 [9 entries exceeds filelimit, not opening dir]
    `-- HDP
    |-- HDP
    | `-- centos7
    | `-- 2.6.5.0-292 [48 entries exceeds filelimit, not opening dir]
    `-- HDP-UTILS
    `-- centos7
    `-- 1.1.0.22
    |-- hdp-utils.repo
    |-- openblas [12 entries exceeds filelimit, not opening dir]
    |-- repodata [7 entries exceeds filelimit, not opening dir]
    |-- RPM-GPG-KEY
    | `-- RPM-GPG-KEY-Jenkins
    `-- snappy
    |-- snappy-1.1.0-3.el7.i686.rpm
    |-- snappy-1.1.0-3.el7.x86_64.rpm
    |-- snappy-devel-1.1.0-3.el7.i686.rpm
    `-- snappy-devel-1.1.0-3.el7.x86_64.rpm

    14 directories, 6 files

确保本地源可用

访问,确保可以看到应有的repo内容(域名访问不通,可通过ip:端口号的方式访问)

1
2
http://ambari.casezheng.date:8088/ambari/centos7/
http://ambari.casezheng.date:8088/hdp/

添加ambari yum repo

1
2
3
4
5
6
7
8
9
$ cat /etc/yum.repos.d/ambari.repo
#VERSION_NUMBER=2.6.2.2-1
[ambari-2.6.2.2]
name=ambari Version - ambari-2.6.2.2
baseurl=http://ambari.huishoubao.com:8088/Ambari/centos7/2.6.2.2-1
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.2/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

确保ambari yum repo可用

1
2
3
4
$ yum repolist  | grep ambari
ambari-2.6.2.2 ambari Version - ambari-2.6.2.2 12
$ yum search ambari-server
ambari-server.x86_64 : Ambari Server

Ambari安装

1
yum install ambari-server

集群授权

在ambari server上生成ssh key,并在其它所有节点将pub key设为信任key

1
2
3
$ ssh-keygen -b 4096
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

然后将~/.ssh/id_rsa.pub加入到集群所有机器的~/.ssh/authorized_keys并确保权限为600

配置和启动

  1. mysql-connector

    1
    2
    3
    4
    5
    $ yum install mysql-connector-java*
    $ cd /var/lib/ambari-server/resources/
    $ ln -s /usr/share/java/mysql-connector-java.jar mysql-connector-java.jar
    $ ll mysql-connector-java.jar
    lrwxrwxrwx 1 root root 40 Jan 31 15:18 mysql-connector-java.jar -> /usr/share/java/mysql-connector-java.jar
  2. 配置 一路回车 选错了先ambari-server reset再重新执行setup

    1
    ambari-server setup
  3. 监听端口号修改

    1
    2
    $ cat /etc/ambari-server/conf/ambari.properties | grep 'client.api.port'
    client.api.port=8081
  4. 命令

    1
    2
    3
    4
    5
    6
    #启动
    ambari-server start
    #停止
    ambari-server stop
    #重启
    ambari-server restart

ambari初始帐号/密码为admin,admin

Hadoop安装

  1. 登录ambari
  2. 进入安装流程 Welcome to Apache Ambari -> Launch install Wizard
  3. 输入集群名称
  4. 使用本地HDP源 选择Use Local Repository
  5. os选择redhat7 填入本地源地址

    1
    2
    http://ambari.casezheng.date:8088/HDP/HDP/centos7/2.6.5.0-292/
    http://ambari.casezheng.date:8088/HDP/HDP-UTILS/centos7/1.1.0.22/
  6. 指定要安装Hadoop的机器 提供ambari server的ssh private key(~/.ssh/id_rsa)

  7. 安装会报错 给要安装Hadoop的机器安装ambari agent

    1
    2
    3
    4
    5
    6
    7
    $ yum install ambari-agent
    #给 /etc/ambari-agent/conf/ambari-agent.ini 在[security]下面添加
    force_https_protocol=PROTOCOL_TLSv1_2
    #修改 /etc/python/cert-verification.cfg 中verify的值
    verify=disable
    #重启ambari-agent
    ambari-agent restart
  8. 重试安装失败的安装任务

  9. 根据需要安装Hadoop组件
  10. 指定hadoop集群所有服务各自的master节点
  11. 指定hadoop集群所有服务各自的slave以及client
  12. 配置(后期可以修改,主要指定目录,设置帐号,密码,设置MySQL)
  13. 安装&启动
  14. 参数调整

参考资料