Hadoop安装和部署手册

简介: Hadoop安装和部署手册


Hadoop简介:

Hadoop是一个分布式基础框架,主要由分布式存储HDFS,分布式计算YARN组成,不仅可以提供数据查询功能,还可以提供海量的数据存储;Hadoop也提供了快速的搜索功能,百万亿条数据,毫秒级查询结果,对于银行来说,可以在最短时间为客户提供实时的数据交易;hadoop也具有数据挖掘功能,可以编写数据挖掘算法,利用交易数据,能够快速定位非法交易记录,为监管带来了方便,提供了有力的技术支撑。hadoop虽然是开源项目,还需要继续完善,但很多大公司都已经投入使用,像国内的淘宝、百度、腾讯,国外的雅虎、亚马逊、Facebook等都在使用hadoop。

部署环境:

系统信息

名称

版本

操作系统

CentOS release 6.9 (Final)

系统内核

2.6.32-696.el6.x86_64

部署信息

IP地址

主机名

配置信息

部署组建

192.168.199.132

cdh1

2c/1g/20G

NameNodeResourceManagerHBaseHive metastoreImpala CatalogImpala statestoreSentry

 

192.168.199.133

cdh2

2c/1g/20G

DataNodeSecondaryNameNodeNodeManagerHBaseHive Server2Impala Server

 

192.168.199.134

cdh3

2c/1g/20G

DataNodeHBaseNodeManagerHive Server2Impala Server


第一部分:前期准备

1.配置主机名,分别是cdh1cdh2cdh3

2.配置hosts文件,使三个主机互相认识

cdh1cdh2cdh3上配置如下:

192.168.199.132 cdh1

192.168.199.133 cdh2

192.168.199.134 cdh3

3.做好时间同步

cdh1上,ntpdate cn.pool.ntp.org

cdh2上,ntpdate cdh1

cdh3上,ntpdate cdh1

4.相互之间,配置免密码登陆

(1)cdh2

生成公钥和私钥密钥对

ssh-keygen -t rsa(一直回车就可以)

将生成的公钥拷贝给cdh1cdh3

ssh-copy-id -i .ssh/id_rsa.pub cdh1

ssh-copy-id -i .ssh/id_rsa.pub cdh3

ssh-copy-id -i .ssh/id_rsa.pub cdh2

(2)cdh3

ssh-keygen -t rsa

ssh-copy-id -i .ssh/id_rsa.pub cdh1

ssh-copy-id -i .ssh/id_rsa.pub cdh2

ssh-copy-id -i .ssh/id_rsa.pub cdh3

(3)cdh1

ssh-keygen -t rsa

ssh-copy-id -i .ssh/id_rsa.pub cdh1

ssh-copy-id -i .ssh/id_rsa.pub cdh2

ssh-copy-id -i .ssh/id_rsa.pub cdh5

5.CDH 要求使用 IPv4IPv6 不支持,在cdh1cdh2cdh3上分别禁用,禁用IPv6方法:

vim /etc/sysctl.conf

在最后一行添加如下内容

#disable ipv6

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

使其生效:

sysctl -p

最后确认是否已禁用:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

1

6.关闭防火墙

iptables -F

7.cdh1cdh2cdh3上分别安装jdk1.7

rpm -ivh jdk-7u55-linux-x64.rpm

java -version查看其版本

8.下载cdh5.4.0.tar.gz的压缩包,也可以选择原生态安装

解压之后重新配置yum源,否则后面步骤无法进行yum安装

第二部分:开始部署安装hadoop

1.安装软件包

cdh1上,安装 hadoop-hdfs-namenode

yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-namenode

cdh2上,安装 hadoop-hdfs-secondarynamenodehadoop-hdfs-datanode

yum install hadoop-hdfs-secondarynamenode -y

yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-datanode -y

cdh3上,安装 hadoop-hdfs-datanode

yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-datanode -y

2.修改hadoop配置文件

NameNode(cdh1)上配置如下参数:

vim /etc/hadoop/conf/core-site.xml

在最后一行<configuration></configuration>之间添加如下内容:

<configuration>
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://cdh1:8020</value>
  </property>
</configuration>

vim /etc/hadoop/conf/hdfs-site.xml

在最后一行<configuration></configuration>之间添加如下内容:

<configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value>
  </property>
  <property>
     <name>dfs.permissions.superusergroup</name>
     <value>hadoop</value>
  </property>
</configuration>

vim /etc/hadoop/conf/hdfs-site.xml

在最后一行<configuration></configuration>之间添加如下内容:

<configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value>
  </property>
  <property>
     <name>dfs.permissions.superusergroup</name>
     <value>hadoop</value>
  </property>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///data/dfs/nn</value>
  </property>
  <property>
     <name>dfs.datanode.data.dir</name>
     <value>file:///data/dfs/dn</value>
  </property>
</configuration>

NameNode(cdh1)上创建dfs.name.dir目录:

mkdir -p /data/dfs/nn

chown -R hdfs:hdfs /data/dfs/nn

chmod 700 /data/dfs/nn

DataNode(cdh2,cdh3)上创建dfs.data.dir目录:

mkdir -p /data/dfs/dn

chown -R hdfs:hdfs /data/dfs/dn

namenode(cdh1)配置 SecondaryNameNode

vim /etc/hadoop/conf/hdfs-site.xml

<configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value>
  </property>
  <property>
     <name>dfs.permissions.superusergroup</name>
     <value>hadoop</value>
  </property>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///data/dfs/nn</value>
  </property>
  <property>
     <name>dfs.datanode.data.dir</name>
     <value>file:///data/dfs/dn</value>
  </property>
  <property>
     <name>dfs.secondary.http.address</name>
     <value>cdh2:50090</value>
  </property>
<property>
</configuration>

namenode(cdh1)上开启WebHDFS

yum install hadoop-httpfs -y

然后修改 /etc/hadoop/conf/core-site.xml配置代理用户:

vim /etc/hadoop/conf/core-site.xml

<configuration>
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://cdh1:8020</value>
  </property>
  <property>
    <name>hadoop.proxyuser.httpfs.hosts</name>
     <value>*</value>
  </property>
  <property>
     <name>hadoop.proxyuser.httpfs.groups</name>
     <value>*</value>
  </property>
</configuration>

namenodecdh1)上配置lzo

cd /etc/yum.repos.d

vim cloudera-gplextras5.repo

[cloudera-gplextras5]

# Packages for Cloudera's GPLExtras, Version 5, on RedHat or CentOS 6 x86_64

name=Cloudera's GPLExtras, Version 5

baseurl=http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/5/

gpgkey = http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/RPM-GPG-KEY-cloudera    

gpgcheck = 1

yum clean all

yum install hadoop-lzo* impala-lzo  -y

vim /etc/hadoop/conf/core-site.xml

configure之间添加如下

<property>
  <name>io.compression.codecs</name>
  <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
  <name>io.compression.codec.lzo.class</name>
  <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

第三部分:启动hdfs

cdh1上的配置文件同步到每一个节点:

scp -r /etc/hadoop/conf root@cdh2:/etc/hadoop/

scp -r /etc/hadoop/conf root@cdh3:/etc/hadoop/

cdh1节点格式化NameNode

sudo -u hdfs hadoop namenode -format

在每个节点启动hdfs

for x in `ls /etc/init.d/|grep  hadoop-hdfs` ; do service $x start ; done

创建 /tmp目录,设置权限为 1777

sudo -u hdfs hadoop fs -mkdir /tmp

sudo -u hdfs hadoop fs -chmod -R 1777 /tmp

启动 HttpFS 服务:

service hadoop-httpfs start

测试

通过http://192.168.0.102:50070/可以访问 NameNode 页面。

第三部分:安装和配置YARN

安装服务:

cdh1 节点安装:

yum install hadoop-yarn hadoop-yarn-resourcemanager -y

cdh1安装 historyserver

yum install hadoop-mapreduce-historyserver hadoop-yarn-proxyserver -y

cdh2cdh3 节点安装:

yum install hadoop-yarn hadoop-yarn-nodemanager hadoop-mapreduce -y

 cdh1修改配置参数

vim /etc/hadoop/conf/mapred-site.xml

configure之间添加如下参数

<configuration>
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
  </property>
</configuration>

vim /etc/hadoop/conf/yarn-site.xml

configure中添加如下参数

<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
<value>cdh1:8031</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
<value>cdh1:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
<value>cdh1:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
<value>cdh1:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
<value>cdh1:8088</value>
</property>

 cdh1/etc/hadoop/conf/yarn-site.xml 中添加如下配置:

vim /etc/hadoop/conf/yarn-site.xml

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.application.classpath</name>
    <value>
    $HADOOP_CONF_DIR,
    $HADOOP_COMMON_HOME/*,
    $HADOOP_COMMON_HOME/lib/*,
    $HADOOP_HDFS_HOME/*,
    $HADOOP_HDFS_HOME/lib/*,
    $HADOOP_MAPRED_HOME/*,
    $HADOOP_MAPRED_HOME/lb/*,
    $HADOOP_YARN_HOME/*,
$HADOOP_YARN_HOME/lib/*
</value>
</property>
<property>
  <name>yarn.log.aggregation.enable</name>
  <value>true</value>
</property>

cdh1/etc/hadoop/conf/yarn-site.xml文件中添加如下配置:

vim /etc/hadoop/conf/yarn-site.xml

<property>
  <name>yarn.nodemanager.local-dirs</name>
    <value>/data/yarn/local</value>
  </property>
  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/yarn/logs</value>
  </property>
  <property>
  <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/yarn/apps</value>
  </property>

cdh1上创建 yarn.nodemanager.local-dirs yarn.nodemanager.log-dirs 参数对应的目录:

mkdir -p /data/yarn/{local,logs}

chown -R yarn:yarn /data/yarn

hdfscdh1) 上创建 yarn.nodemanager.remote-app-log-dir 对应的目录:

sudo -u hdfs hadoop fs -mkdir -p /yarn/apps

sudo -u hdfs hadoop fs -chown yarn:mapred /yarn/apps

sudo -u hdfs hadoop fs -chmod 1777 /yarn/apps

cdh1/etc/hadoop/conf/mapred-site.xml 中配置 MapReduce History Server

vim /etc/hadoop/conf/mapred-site.xml

<property>
      <name>mapreduce.jobhistory.address</name>
<value>cdh1:10020</value>
</property>
<property>
      <name>mapreduce.jobhistory.webapp.address</name>
<value>cdh1:19888</value>
</property>

/etc/hadoop/conf/core-site.xml 中添加如下参数:

<property>
<name>hadoop.proxyuser.mapred.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.mapred.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.yarn.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.yarn.hosts</name>
<value>*</value>
</property>

并在 cdh1hdfs 上创建相应的目录:

sudo -u hdfs hadoop fs -mkdir -p /user

sudo -u hdfs hadoop fs -chmod 777 /user

然后,在cdh1hdfs 上创建目录并设置权限:

sudo -u hdfs hadoop fs -mkdir -p /user/history

sudo -u hdfs hadoop fs -chmod -R 1777 /user/history

sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history

cdh1上同步配置文件

scp -r /etc/hadoop/conf root@cdh2:/etc/hadoop/

scp -r /etc/hadoop/conf root@cdh3:/etc/hadoop/

启动服务

在每个节点启动 YARN :

for x in `ls /etc/init.d/|grep hadoop-yarn` ; do service $x start ; done

测试

访问http://192.168.0.102:8088可以访问 Yarn 的管理页面:

通过http://192.168.0.102:19888/jobhistory可以访问 JobHistory 的管理页面。


相关文章
|
30天前
|
分布式计算 资源调度 Hadoop
centos7二进制安装Hadoop3
centos7二进制安装Hadoop3
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
|
1月前
|
分布式计算 Ubuntu Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
|
1月前
|
分布式计算 Ubuntu Hadoop
在Ubuntu 16.04上如何在独立模式下安装Hadoop
在Ubuntu 16.04上如何在独立模式下安装Hadoop
22 1
|
30天前
|
SQL 分布式计算 Hadoop
centos7通过CDH部署Hadoop
centos7通过CDH部署Hadoop
|
1月前
|
分布式计算 Java Linux
centos7通过Ambari2.74部署Hadoop
centos7通过Ambari2.74部署Hadoop
|
1月前
|
存储 分布式计算 监控
Hadoop在云计算环境下的部署策略
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。随着云计算技术的发展,越来越多的企业开始利用云平台的优势来部署Hadoop集群,以实现更高的可扩展性、可用性和成本效益。本文将探讨如何在公有云、私有云及混合云环境下部署和管理Hadoop集群,并提供具体的部署策略和代码示例。
55 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
45 2
|
3月前
|
分布式计算 Hadoop 网络安全
|
3月前
|
存储 分布式计算 Hadoop