Skip to main content
 Web开发网 » 操作系统 » linux系统

hadoop安装步骤|hadoop集群基础安装

2021年10月14日6320百度已收录

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

  1、最基本的集群(4台主机)

  2、基本集群+hive(5台主机)

  3、 hadoop集群的的HA模板(7台主机)

  4、hadoop集群的HA+Hbase模板(7台主机)

  如下图所示:

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

  机器名

  域名

  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 hadoo

  Passwd hadoo

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

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

  修改IP:vi /etc/sysconfig/network-scripts/ifcfg-eth0

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

  如:192.168.33.31 hdp-01

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

  4. 关闭防火墙

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

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

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

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

  三、安装Hadoop集群

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

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

  ftp> lcd D:/大数据资料/5.hadoop/ sftp> put cenos-6.5-hadoop-2.6.4.tar.gz

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

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

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

  [hadoop@hdp-01 ~]$ ll 总用量 176580 -rw-rw-r--. 1 hadoop hadoop 180813065 9月 22 09:23 cenos-6.5-hadoop-2.6.4.tar.gz

  [hadoop@hdp-01 ~]$ 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/,以后应用都放到这里

  [hadoop@hdp-01 ~]$ mkdir apps/

  [hadoop@hdp-01 ~]$ mkdir apps/

  3. 解压hadoop到apps/中

  [hadoop@hdp-01 ~]$ tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/

  [hadoop@hdp-01 ~]$ tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/

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

  [hadoop@hdp-01 ~]$ cd /home/hadoop/apps/hadoop-2.6.4 [hadoop@hdp-01 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

  [hadoop@hdp-01 ~]$ cd /home/hadoop/apps/hadoop-2.6.4

  [hadoop@hdp-01 hadoop-2.6.4]$ ll

  总用量 52

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

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

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

  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 sbi

  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 3670 3月 8 2016 hadoop-env.cmd

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

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

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

  -rw-r--r--. 1 hadoop hadoop 1449 3月 8 2016

  -rw-r--r--. 1 hadoop hadoop 1657 3月 8 2016

  -rw-r--r--. 1 hadoop hadoop 21 3月 8 2016

  -rw-r--r--. 1 hadoop hadoop 620 3月 8 2016

  -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.propertie

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

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

  -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 10 3月 8 2016 slave

  -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

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

  v 第一个:修改hadoop-env.sh

  先查看JAVA_HOME的路径

  [hadoop@hdp-01 hadoop]$ echo $JAVA_HOME /usr/local/jdk1.7.0_45

  [hadoop@hdp-01 hadoop]$ echo $JAVA_HOME

  /usr/local/jdk1.7.0_45

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

  [hadoop@hdp-01 hadoop]$ vi hadoop-env.sh

  [hadoop@hdp-01 hadoop]$ vi hadoop-env.sh

  将 export JAVA_HOME=${JAVA_HOME}

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

  第二个:修改core-site.xml

  fs.defaultFS hdfs://hdp-01:9000 hadoop.tmp.dir /home/hadoop/hdpdata

  <configuration>

  <!-- 指定HADOOP所使用的文件系统schema(URI),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

  dfs.replication 2

  <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

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

  mapreduce.framework.name yarn

  <configuration>

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

  <property>

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

  <value>yarn</value>

  </property>

  </configuration>

  第五个:修改yarn-site.xml

  yarn.resourcemanager.hostname hdp-01 yarn.nodemanager.aux-services mapreduce_shuffle

  <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-01的apps/下的hadoop分发到其它机器上去(现在是hadoop登录,切换到root用户拷贝)

  [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-02:/home/hadoop [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-03:/home/hadoop [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-04:/home/hadoo

  [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-02:/home/hadoo

  [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-03:/home/hadoo

  [hadoop@hdp-01 ~] sudo scp -r apps/ hdp-04:/home/hadoo

  7. 将HADOOP_HOME配置到/etc/profile下

  vi /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/sbi

  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/sbi

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

  [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-02:/etc/ [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-03:/etc/ [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-04:/etc/

  [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-02:/etc/

  [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-03:/etc/

  [hadoop@hdp-01 ~] sudo scp /etc/profile hdp-04:/etc/

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

  [hadoop@hdp-01 ~] hdfs namenode -format 或者[hadoop@hdp-01 ~] 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

  [hadoop@hdp-01 ~] hdfs namenode -format 或者[hadoop@hdp-01 ~] 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. 配置免密登录

  [hadoop@hdp-01 ~]$ ssh-keygen [hadoop@hdp-01 ~]$ ssh-copy-id hdp-01 [hadoop@hdp-01 ~]$ ssh-copy-id hdp-02 [hadoop@hdp-01 ~]$ ssh-copy-id hdp-03 [hadoop@hdp-01 ~]$ ssh-copy-id hdp-04

  [hadoop@hdp-01 ~]$ ssh-keyge

  [hadoop@hdp-01 ~]$ ssh-copy-id hdp-01

  [hadoop@hdp-01 ~]$ ssh-copy-id hdp-02

  [hadoop@hdp-01 ~]$ ssh-copy-id hdp-03

  [hadoop@hdp-01 ~]$ ssh-copy-id hdp-04

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

  [hadoop@hdp-01 hadoop]$ vi slaves hdp-02 hdp-03 hdp-04

  [hadoop@hdp-01 hadoop]$ vi slave

  hdp-02

  hdp-03

  hdp-04

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

评论列表暂无评论
发表评论
微信