hadoop的安装总结(一)--hadoop集群基础安装

时间:2024-03-29 09:11:35

        目前在练习hadoop的时候发现每次都要在准备基本环境的时候浪费很多时间,俗话说:“工欲善其事,必先利其器”,干脆横下一条心来,花了两周的时间,整理好了各种集群模板,需要哪项技术就直接克隆模板就好,目前主备的模板大概4套:1..最基本的集群(4台主机),2.基本集群+hive(5台主机),3. hadoop集群的的HA模板(7台主机),4.hadoop集群的HA+Hbase模板(7台主机),如下图所示.:

hadoop的安装总结(一)--hadoop集群基础安装

       大数据确实很锻炼人,要求不光有编写代码的能力、理解底层的能力、理解业务的能力,还要具有运维的能力,否则没有“”实操”,那些高大尚的能力根本没机会得到锻炼,很多初学者都会被大数据的环境所难倒,但是不过这一关,是学不好大数据的,在这上面耽误点时间也是值得的,话不多说,将自己整理的hadoop的基础环境安装文档分享一下。

一、主机规划和环境:

机器名

域名

IP

作用

hdp-01

192.168.33.31

NameNode、SecondaryNameNode、ResourceManager

hdp-02

192.168.33.32

DataNode、NodeManager

hdp-03

192.168.33.33

DataNode、NodeManager

hdp-04

192.168.33.34

DataNode、NodeManager

OS: linux-CentOS6.7 64位

hadoop: hadoop-2.6.4         


二、每台机器准备工作

1. 通过root登录

  创建hadoop用户

   Useradd hadoop

   Passwd hadoop

2. 配置好每一台服务器的主机名、网络IP、域名列表

   修改主机名称:vi /etc/sysconfig/network

   修改IPvi /etc/sysconfig/network-scripts/ifcfg-eth0

   修改主机名和IP的映射关系:vi /etc/hosts

   如:192.168.33.31 hdp-01

3. 配置好yum源 每一台机器需要安装scpyum install -y openssh-clients)、jdk

4. 关闭防火墙

   #查看防火墙状态:service iptables status

   #关闭防火墙开机启动:chkconfig iptables off

5. 配置hadoop用户的sudo权限vi /etc/sudoers

6. 使用刚创建的hadoop用户登录

 

三、安装Hadoop集群

1. 先上传hadoop的安装包到服务器上去/home/hadoop/

Alt+p:开启一个上传的bash

sftp> lcd D:/大数据资料/5.hadoop/

sftp> put cenos-6.5-hadoop-2.6.4.tar.gz

 

在另一个bash中,运行ll,看到上传成功

[[email protected] ~]$ ll

总用量 176580

-rw-rw-r--. 1 hadoop hadoop 180813065 9月  22 09:23 cenos-6.5-hadoop-2.6.4.tar.gz

 

2. 创建在/home/hadoop中创建目录apps/,以后应用都放到这里

[[email protected] ~]$ mkdir apps/

 

3. 解压hadoopapps/

[[email protected] ~]$ tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/

 

4. 进到hadoop的安装目录,找到etc目录

[[email protected] ~]$ cd /home/hadoop/apps/hadoop-2.6.4

[[email protected] hadoop-2.6.4]$ ll

总用量 52

drwxrwxr-x. 2 hadoop hadoop  4096 3月   8 2016 bin

drwxrwxr-x. 3 hadoop hadoop  4096 3月   8 2016 etc

drwxrwxr-x. 2 hadoop hadoop  4096 3月   8 2016 include

drwxrwxr-x. 3 hadoop hadoop  4096 3月   8 2016 lib

drwxrwxr-x. 2 hadoop hadoop  4096 3月   8 2016 libexec

-rw-r--r--. 1 hadoop hadoop 15429 3月   8 2016 LICENSE.txt

-rw-r--r--. 1 hadoop hadoop   101 3月   8 2016 NOTICE.txt

-rw-r--r--. 1 hadoop hadoop  1366 3月   8 2016 README.txt

drwxrwxr-x. 2 hadoop hadoop  4096 3月   8 2016 sbin

drwxrwxr-x. 4 hadoop hadoop  4096 3月   8 2016 share

-rw-r--r--. 1 hadoop hadoop  4436 3月   8 2016 capacity-scheduler.xml

-rw-r--r--. 1 hadoop hadoop  1335 3月   8 2016 configuration.xsl

-rw-r--r--. 1 hadoop hadoop   318 3月   8 2016 container-executor.cfg

-rw-r--r--. 1 hadoop hadoop   774 3月   8 2016 core-site.xml

-rw-r--r--. 1 hadoop hadoop  3670 3月   8 2016 hadoop-env.cmd

-rw-r--r--. 1 hadoop hadoop  4224 3月   8 2016 hadoop-env.sh

-rw-r--r--. 1 hadoop hadoop  2598 3月   8 2016 hadoop-metrics2.properties

-rw-r--r--. 1 hadoop hadoop  2490 3月   8 2016 hadoop-metrics.properties

-rw-r--r--. 1 hadoop hadoop  9683 3月   8 2016 hadoop-policy.xml

-rw-r--r--. 1 hadoop hadoop   775 3月   8 2016 hdfs-site.xml

-rw-r--r--. 1 hadoop hadoop  1449 3月   8 2016 httpfs-env.sh

-rw-r--r--. 1 hadoop hadoop  1657 3月   8 2016 httpfs-log4j.properties

-rw-r--r--. 1 hadoop hadoop    21 3月   8 2016 httpfs-signature.secret

-rw-r--r--. 1 hadoop hadoop   620 3月   8 2016 httpfs-site.xml

-rw-r--r--. 1 hadoop hadoop  3523 3月   8 2016 kms-acls.xml

-rw-r--r--. 1 hadoop hadoop  1325 3月   8 2016 kms-env.sh

-rw-r--r--. 1 hadoop hadoop  1631 3月   8 2016 kms-log4j.properties

-rw-r--r--. 1 hadoop hadoop  5511 3月   8 2016 kms-site.xml

-rw-r--r--. 1 hadoop hadoop 11291 3月   8 2016 log4j.properties

-rw-r--r--. 1 hadoop hadoop   938 3月   8 2016 mapred-env.cmd

-rw-r--r--. 1 hadoop hadoop  1383 3月   8 2016 mapred-env.sh

-rw-r--r--. 1 hadoop hadoop  4113 3月   8 2016 mapred-queues.xml.template

-rw-r--r--. 1 hadoop hadoop   758 3月   8 2016 mapred-site.xml.template

-rw-r--r--. 1 hadoop hadoop    10 3月   8 2016 slaves

-rw-r--r--. 1 hadoop hadoop  2316 3月   8 2016 ssl-client.xml.example

-rw-r--r--. 1 hadoop hadoop  2268 3月   8 2016 ssl-server.xml.example

-rw-r--r--. 1 hadoop hadoop  2237 3月   8 2016 yarn-env.cmd

-rw-r--r--. 1 hadoop hadoop  4567 3月   8 2016 yarn-env.sh

-rw-r--r--. 1 hadoop hadoop   690 3月   8 2016 yarn-site.xml

 

5. 进入etc/hadoop目录,修改5个配置文件

第一个:修改hadoop-env.sh

先查看JAVA_HOME的路径

[[email protected] hadoop]$ echo $JAVA_HOME

/usr/local/jdk1.7.0_45

 

修改hadoop-env.sh中的部分内容

[[email protected] hadoop]$ vi hadoop-env.sh

 

export JAVA_HOME=${JAVA_HOME}

修改成真正的JAVA_HOME地址 :export JAVA_HOME=/usr/local/jdk1.7.0_45

 

第二个:修改core-site.xml

<configuration>

   <!-- 指定HADOOP所使用的文件系统schemaURI),HDFS的老大(NameNode)的地址-->

   <property>

        <name>fs.defaultFS</name>

        <value>hdfs://hdp-01:9000</value>

   </property>

   <!-- 指定hadoop运行时产生文件的存储目录-->

   <property>

        <name>hadoop.tmp.dir</name>

        <value>/home/hadoop/hdpdata</value>

   </property>

</configuration>

 

第三个:修改hdfs-site.xml

<configuration>

   <!-- 指定HDFS副本的数量-->

   <property>

       <name>dfs.replication</name>

       <value>2</value>

   </property>

</configuration>

 

第四个:修改mapred-site.xml (将文件改名:mv mapred-site.xml.template mapred-site.xml)

mv mapred-site.xml.template mapred-site.xml

 

<configuration>

   <!-- 指定mr运行在yarn-->

   <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

   </property>

</configuration>

 

第五个:修改yarn-site.xml

<configuration>

    <!-- 指定YARN的老大(ResourceManager)的地址-->

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>hdp-01</value>

    </property>

    <!-- reducer获取数据的方式-->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

 

6. hdp-01apps/下的hadoop分发到其它机器上去(现在是hadoop登录,切换到root用户拷贝)

[[email protected] ~] sudo scp -r apps/ hdp-02:/home/hadoop

[[email protected] ~] sudo scp -r apps/ hdp-03:/home/hadoop

[[email protected] ~] sudo scp -r apps/ hdp-04:/home/hadoop

 

7. HADOOP_HOME配置到/etc/profile

vi /etc/profile

 

export JAVA_HOME=/usr/local/jdk1.7.0_45

export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

8. /etc/profile拷贝到其它的机器上(现在是hadoop登录,切换到root用户拷贝)

[[email protected] ~] sudo scp /etc/profile hdp-02:/etc/

[[email protected] ~] sudo scp /etc/profile hdp-03:/etc/

[[email protected] ~] sudo scp /etc/profile hdp-04:/etc/

 

9. 格式化namenode(是对namenode进行初始化)

[[email protected] ~] hdfs namenode -format  或者[[email protected] ~] hadoop namenode -format

18/01/05 21:42:33 INFO common.Storage:Storage directory /home/hadoop/hdpdata/dfs/name has been successfully formatted.

18/01/05 21:42:33 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0

 

10. 配置免密登录

[[email protected] ~]$ ssh-******

[[email protected] ~]$ ssh-copy-id hdp-01

[[email protected] ~]$ ssh-copy-id hdp-02

[[email protected] ~]$ ssh-copy-id hdp-03

[[email protected] ~]$ ssh-copy-id hdp-04

 

11. 找到hadoop安装目录下的/etc/hadoop/slaves,将要启动的datenodenodeManager加入到这个文件中

[[email protected] hadoop]$ vi slaves

hdp-02

hdp-03

hdp-04


        现在就可以启动hadoop了。以上的文档,都在本人的机器上调试通过,所整理的文档也是将输入命令记录下来。下一篇将介绍hadoop的集群之上的hive的安装