Hadoop安装

**

Hadoop安装

**
Hadoop官网:http://hadoop.apache.org/
一、Hadoop的安装方式:
1.单机安装(不是集群)
在本地进行解压安装,不用配置配置文件,不存在分布式文件系统
2.伪分布式集群安装(安装在单个节点)
在本地进行解压安装,需要配置配置文件,存在分布式,但是分布式只有一个节点。主节点和子节点在同一台主机上(学习,测试)
3.完全分布式集群安装(分布式安装)
几台机器共同进行安装,组成一个集群,需要进行配置的,存在分布式
学习使用,公司里不会用,存在单点故障的问题
4.高可用完全分布式集群安装(zookeeper)
5.联邦
安装版本
原生apache Hadoop 学习
公司 cdh(商业版本)
二、伪分布式安装
1、准备工作
(1)设置静态的IP地址(必须)
在这里插入图片描述
在这里插入图片描述

sudo systemctl restart network

(2)修改主机名称(必须)

sudo vim /etc/hostname  

修改完之后重启reboot
(3)修改hosts文件(IP和主机映射的。必须的)

sudo vim /etc/hosts

在这里插入图片描述

(4)关闭防火墙
在这里插入图片描述

(5)可选关闭selinux—linux的安全文件系统

sudo vim /etc/selinux/config

在这里插入图片描述

红框改为SELINUX=disabled
2、安装SSH

rpm –qa | grep ssh

在这里插入图片描述

如上图就是已经安装过了,不用安装,如果没有

sudo yum –y install openssh

配置SSH免密码登录(必须做的)

`ssh-keygen –t rsa`    #生成密钥

在这里插入图片描述
在这里插入图片描述

拷贝公有的密钥到你要登录的机器中
在这里插入图片描述

测试
在这里插入图片描述

3、安装JAVA环境
3.1先卸载原来的Java环境
在这里插入图片描述

3.2上传安装进行解压安装
3.2.1如果当前用户无法使用sudo
Vim /etc/sudoers
在这里插入图片描述

保存 :wq!
3.2.2解压安装JDK
(1)解压
在这里插入图片描述
在这里插入图片描述

(2)修改名称,修改属组和属主
在这里插入图片描述
在这里插入图片描述

3.3配置环境变量
修改vim /etc/profile文件添加以下内容
在这里插入图片描述
在这里插入图片描述

让修改的文件生效
在这里插入图片描述

3.4测试Java环境是否安装成功
在这里插入图片描述

4、安装Hadoop
4.1下载安装包上传服务器
在这里插入图片描述

4.2 解压安装Hadoop

sudo tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/

在这里插入图片描述

4.3修改名称及属主属组
在这里插入图片描述

4.4配置Hadoop环境变量

vim /etc/profile
export JAVA_HOME=/home/hadoop/apps/java
export HADOOP_HOME=/home/hadoop/apps/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

bin:hdfs mapreduce的命令
sbin:启动或关闭hdf或者mapreduce程序的命令
4.5测试
在这里插入图片描述

4.6配置HDFS
(1)修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh
配置java的环境变量
在这里插入图片描述

(2)修改/usr/local/hadoop/etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/zxy/tmp/hadoop</value>
    </property>
</configuration>

在这里插入图片描述

(3) 修改/usr/local/hadoop/etc/hadoop/hdfs-site.xml

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
</configuration>

在这里插入图片描述

4.7启动测试HDFS
第一步:必须要先格式化(第一次启动)
在这里插入图片描述
在这里插入图片描述

第二步,启动hdfs

./start-dfs.sh

第三步:查看进程
在这里插入图片描述

Web网页测试
在这里插入图片描述

4.8配置YARN及MapReduce
(1)修改mapred-site.xml
通过mapred-site.xml.template创建mapred-site.xml文件
执行 :cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml
<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

在这里插入图片描述

(2) vim yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

在这里插入图片描述

4.9启动测试mapreduce

./start–yarn.sh

Jps进程查看
在这里插入图片描述

Web网页查看
在这里插入图片描述

5、建议做快照
在这里插入图片描述

三、案例演示
hdfs保存数据的文件系统
根目录是/
将本地数据保存至hdfs的/目录下

hdfs  dfs  -put  wordcount.txt  /

在这里插入图片描述

Yarn跑的是mapreduce计算
自己根据业务开发mapreduce程序
Hadoop中的示例程序/usr/local/hadoop/share/hadoop/mapreduce
在这里插入图片描述

计算一下wordcount.txt每个单词出现的个数(计算的文件在hdfs上,输出的结果也在hdfs)分为两个任务:
Map任务
Reduce任务
执行命令:`

hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /wordcount.txt /out1`

在这里插入图片描述
在这里插入图片描述

最终结果
在这里插入图片描述

四、集群搭建中遇到的问题
(1)格式化的时候报错
可能是配置文件出错
主机找不到 (1)ip配置出错,(2)ip和主机映射文件出问题
core-site.xml
配置的保存数据的文件 /home/stud,要根据自己的实际目录进行配置
如:/home/xxx/
(2)关于hdfs的格式化问题
如果格式化成功之后,就不要再进行格式化了
如果格式化失败,边修改边进行格式化,一直到必须成功
为什么格式化成功之后不能再进行格式化:

hdfs    namenode  -format

在格式化的时候,创建了name文件夹(包括里面的文件) VERSION
在这里插入图片描述

操作hdfs在data的目录中也会有VERSION文字
在这里插入图片描述

如果再进行一次格式化
在这里插入图片描述

通过JPS查看的进程就没有datanode
解决以上问题的方法:
1.关闭所有的进程hdfs
2.删除name和data目录,或者把整个/home/stud/tmp
3.重新进行格式化
五、完全分布式安装(以3台为例)
1.准备工作
1.1修改主机名称
1.2设置静态的IP的
1.3配置hots文件
在这里插入图片描述

1.4设置免密码登录(从一台机器登录到另一台机器)
1.4.1生成密钥
在三台机器分别执行ssh-keygen -t rsa
1.4.2三台主机都要执行下面的操作
互相复制公钥到每台机器(在每台机器中都执行以下三个命令)

ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata101
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata102
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata103

1.5关闭防火墙和selinux
关闭防火墙命令:

sudo systemctl  stop firewalld
sudo systemctl  disable firewalld

在这里插入图片描述

关闭selinux:

vi  /ect/selinux/config

在这里插入图片描述

2.主机进行时间同步
让所有的主机都在一个时间
不能联网采用 date –s “2019-05-13 00:00:00”
如果可以联网:ntpdate 公用时间服务器
yum –y install ntpdate
ntpdate ntp1.aliyun.com
3.安装JDK
三台都需要安装,我们可以安装一台,向其他两台中去分发
Hadoop101中安装
3.1解压修改名称
3.2在用户变量中配置JAVA的环境变量
在这里插入图片描述

4.安装Hadoop并配置环境变量
在这里插入图片描述

5.进行集群规划
hdfs :namenode seconarynamenode datanode
Yarn :resourceManager nodeManager
主节点一个 从节点 采用3个
在这里插入图片描述

在本次安装中,主机名分别为hadoop101 hadoop102 hadoop103
6.修改配置文件
6.1配置hadoop-env.sh
修改JAVA_HOME
在这里插入图片描述

6.2配置 core-site.xml

<configuration>
    <!--配置hadoop的主节点namenode的地址-->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop101:9000</value>
    </property>
    <!--配置hadoop运行产生的临时文件保存目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/stud/app/tmp/hadoop/hadoopdata</value>
    </property>
</configuration

6.3配置hdfs-site.xml

<configuration>
 <!--存储namenode数据的目录-->
        <property>
                <name>dfs.namenode.name.dir</name>
               <value>/home/stud/app/tmp/hadoop/dfs/name</value>
        </property>
        <!--datanode的数据的目录-->
        <property>
                <name>dfs.datanode.data.dir</name>
               <value>/home/stud/app/tmp/hadoop/dfs/data</value>
        </property>
        <!--配置默认的数据的副本的个数,默认共3个副本
        <property>
                <name>dfs.replication</name>
                <value>3</value>
       </property>
        -->
       <!--配置secondaryNamenode节点-->
       <property>
                <name>dfs.secondary.http.address</name>
                <value>hadoop102:50090</value>
       </property>
</configuration>

6.4配置mapred-site.xml

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

6.5.配置yarn-site.xml

<configuration>
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
  <!--配置resourceManager运行在哪台主机上-->
  <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>hadoop103</value>
   </property>
</configuration>

6.6配置从节点(必须要)

hadoop/etc/hadoop/slaves

在这里插入图片描述

7.分发安装包到hadoop102 hadoop103
将app目录分发到另外两台机器

scp  -r  /home/stud/app  stud@hadoop102:/home/stud
scp  -r  /home/stud/app  stud@hadoop103:/home/stud

将.bashrc(配置环境变量的文件)分发到另外两台机器

scp   .bashrc  stud@hadoop102 :/home/stud
scp  .bashrc stud@hadoop103:/home/stud

分别在hadoop102和hadoop103执行source .bashrc命令
8.进行格式化

hdfs  namenode  -format

在这里插入图片描述

9.启动HDFS
9.1执行启动命令
hdfs主节点配置在hadoop101上,在hadoop101中启动hdfs
在这里插入图片描述

9.2JSP查看每个节点的进程
Hadoop101:
在这里插入图片描述

Hadoop102
在这里插入图片描述

Hadoop103
在这里插入图片描述

9.3通过web网页查看
192.168.240.101:50070

10.启动YARN
10.1执行启动命令
Yarn的主节点配置在hadoop103上,在hadoop103启动

./start-yarn.sh

10.2JPS查看每个节点的进程
hadoop103的进程
在这里插入图片描述

Hadoop102的进程
在这里插入图片描述

Hadoop101的进程
在这里插入图片描述

10.3网页web查看
在这里插入图片描述

11.hdfs与yarn启动时如果不在主节点
1.hdfs主节点hadoop101
在hadoop102中启动,所有的进程都正常启动了
2.启动yar 主节点hadoop103
在hadoop102中启动,resourceManager进程是无法启动的
总结:hdfs可以在任意的节点启动,建议在主节点启动
Yarn是只能在yarn的主节点启动,如果在其他非主节点启动,resourceManager启动不了的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值