Hadoop安装

Hadoop模块

1.hadoop common ——公共模块,支持其他模块

        hadoop-common-xxx.jar

        core-site.xml

        core-default.xml

2.HDFS ——分布式文件系统

        HDFS:NameNode+DataNode+SecondaryNameNode

        hdfs-site.xml

        hdfs-default.xml

3.Hadoop YARN ——作业调度和资源管理框架

        YARN:ResourceManager(资源管理器)+NodeManager(节点管理器)

        yarn-site.xml

        yarn-default.xml

4.Hadoop MapReduce ——基于yarn系统的大数据集并行处理技术

        mapred-site.xml

        mapred-default.xml

 

一  独立模式(没有守护进程,所有程序运行在同一JVM中,利于test和debug)

 

1.下载hadoop的tar包(包括源包和二进制包)到宿主机和虚拟机共享的文件夹

2.tar开hadoop文件,移动到/soft文件夹下

3.创建hadoop链接

4.配置环境变量

系统级环境变量在 /etc 中的environment文件里,进入编辑界面

5. 立刻生效

6.测试安装是否成功

hadoop  version

独立模式没有守护进程,所有程序运行在同一JVM中,利于test和debug

查看文件系统

$ hadoop fs -ls /

 

 

 

二  伪分布模式

1.[ 配置文件${hadoop_home}/etc/hadoop/*-site.xml ]

core-site.xml

hdfs-site.xml

mapreduce-site.xml

yarn-site.xml

如上是hdfs-site.xml的默认内容,<!--   -->内的都是注释

<?xml version="1.0"?>
<!-- core-site.xml -->
<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://localhost/</value>
 </property>
</configuration>
<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>
</configuration>
<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>
<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>localhost</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
</configuration>

 

2.配置SSH

 

1) 首先查询软件包

$sudo apt-cache search ssh | grep ssh

2) 安装SSH

$ sudo apt-get install ssh

通过以上命令实际安装了两个软件:sshd(服务端)和ssh(客户端)

查看进程会发现有了ssh

用ssh  localhost启动

但是每次登陆都需要密码

3) 配置秘钥

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa         //-t指的是算法,用rsa算法;-P指的是密码,' '指的是无密码;-f指的是生成id_rsa秘钥文件

id_rsa是私钥,id_rsa.pub是公钥

然后追加公钥到对方的认证库中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后就可以不需要密码了

此时相当于进入了远程机的shell界面进行操作,exit然后退回到本机操作界面

3.格式化HDFS文件系统

HDFS在第一次使用前必须要格式化,直接输入以下命令即可

$ hdfs namenode -format

4.启动和终止守护进程

启动HDFS守护进程:

$ start-dfs.sh

(这里来一个插曲,由于系统是32位,hadoop官网下载的包是64位,因此运行会出现warn,详情以及解决办法见https://cloud.tencent.com/developer/article/1010750)

启动yarn守护进程:

$ start-yarn.sh

启动MapReduce守护进程:

$ mr-jobhistory-daemon.sh start historyserver

或者直接

$ start-all.sh

 

jps查看进程

 

(再来一个插曲,有次查看进程发现没有NameNode进程,此时需要格式化NameNode ,节点信息可以在/tmp/hadoop-ubuntu/dfs中查看,但此方法每次开启hadoop都需要格式化NameNode,还可以将/tmp/hadoop-ubuntu/dfs/data/current 中的VERSION文件里的 clusterID值与/tmp/hadoop-ubuntu/dfs/name/current 中VERSION 文件里的 clusterID的值保持相同即可)

$ hadoop namenode -format

 

关闭守护进程:

$ mr-jobhistory-daemon.sh stop historyserver
$ stop-yarn.sh
$ stop-dfs.sh

还可以采用绝对路径指向配置目录

$ start-dfs.sh --config path-to-config-directory
$ start-yarn.sh --config path-to-config-directory
$ start-all.sh --config path-to-config-directory

还可通过设置环境变量HADOOP_CONF_DIR

$ export HADOOP_CONF_DIR=/soft/hadoop/etc/hadoop ...

 

为了使同一台机器上有多种配置模式,将原来 /soft/hadoop/etc/hadoop 改为 /soft/hadoop/etc/hadoop_localhadoop_local中的core-site-xml,hdfs-site-xml,mapreduce-site.xml,yarn-site.xml没有配置信息和/soft/hadoop/etc/hadoop_pseudo,用哪种模式就给哪种模式建立一个hadoop链接。下图为使用伪分布模式。

5.创建用户目录

$ hadoop fs -mkdir /test

$ hadoop fs -ls / ——查看hadoop文件系统根目录

$ hadoop fs -ls -R  / ——递归显示目录结构

$ hadoop fs -lsr / ——同上

浏览器登陆 http://localhost:50070/,localhost:8088 可查看文件信息

6.存放文件

$ hadoop fs -put a.txt /test

将a.txt放入hadoop文件系统的test目录

进入如下目录,blk_1073741825文件的12表示有12个字节

7.查看日志

可进入 /soft/hadoop/logs 查看其中的 *.log文件来查看各节点的日志

也可进入网站 :

http://localhost:50070/ 查看名称节点  Windows下浏览器进入192.168.75.130:50070/ 查看

http://localhost:8088/ 查看资源管理器  Windows下浏览器进入192.168.75.130:8088/ 查看

 http://localhost:19888/ 查看历史服务器  Windows下浏览器进入192.168.75.130:19888/ 查看

hdfs://namenode:8020/ 远程过程调用 (name rpc) 

如下,查看监听端口号会发现有50070 8088等

 

三.完全分布模式

NameNode:目录、类型、权限等元数据

SecondaryNameNode:辅助名称节点,防止NameNode丢失

DataNode:存放真实数据

在Hadoop中:

        HDFS:NameNode+DataNode+SecondaryNameNode

        YARN:ResourceManager(资源管理器)+NodeManager(节点管理器)

因此一般情况下ResourceManager(资源管理器)放在NameNode上,NodeManager(节点管理器)放在DataNode上

所以在NameNode主机上有两个进程:NameNode+ResourceManager

在DataNode主机上有两个进程:DataNode+NodeManager

 

如上图,在/soft/hadoop/etc/hadoop下的文件中,hadoop-env.sh ,mapred-env.sh ,yarn-env.sh 是环境变量的信息

 slaves文件表示有哪些主机来运行数据节点,在伪分布模式下slaves文件中只有localhost,如下

 

1.克隆虚拟机4台

2.拷贝hadoop完全分布式包

3.配置hadoop配置文件

<?xml version="1.0"?>
<!-- core-site.xml -->
<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://namenode/</value>
 </property>
</configuration>

<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
 <property>
  <name>dfs.replication</name>
  <value>3</value>
 </property>
</configuration>

<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>
<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>namenode</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
</configuration>

然后将三个数据节点的主机名称配置到slaves中,每个节点占一行

<!-- slaves -->
ubuntu1
ubuntu2
ubuntu3

 

4.远程复制 /etc/hosts 文件到其他主机

进入hosts文件添加如下内容,这样在 ping 时可直接ping 主机名而不需要写IP地址

然后将hosts文件远程拷贝到其他主机 

# scp root@ubuntucp:/etc/hosts root@ubuntu1:/etc

5.配置ssh无密登陆

在ubuntu下进入 ~/.ssh

因为其余四台是拷贝的,所以~/.ssh中的id_rsa.pub是一样的,需要在其余四台虚拟机下删除~/.ssh中的文件,然后重新生成

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

接着把 ~/.ssh/id_rsa.pub 远程拷贝到其余四台主机

$ scp id_rsa.pub ubuntu@ubuntu1:~/.ssh/id_rsa.pub.ubuntucp

然后在其余主机上可以发现有了 id_rsa.pub.ubuntucp,如下

接着将id_rsa.pub.ubuntucp追加到其余四台的秘钥库中

cat ~/.ssh/id_rsa.pub.ubuntucp >> ~/.ssh/authorized_keys

然后在最开始的主机上就可以无密登陆其余四台主机了

 

 

6.远程拷贝配置好的hadoop包到其他主机

$ scp -r hadoop_cluster/ ubuntu@ubuntu1:/soft/hadoop/etc/

-r 是递归复制

1)格式化HDFS

$ hdfs --config /soft/hadoop/etc/hadoop_cluster namenode -format

成功后在/tmp目录下可以找到name文件夹

2)启动HDFS

$ start-dfs.sh --config /soft/hadoop/etc/hadoop_cluster

或者创建hadoop_cluster的链接hadoop,然后

$ start-dfs.sh

3)启动yarn

$ start-yarn.sh --config /soft/hadoop/etc/hadoop_cluster

或者创建hadoop_cluster的链接hadoop,然后

$ start-yarn.sh

 

7.配置辅助名称节点(具体请点击)

 

打开 hdfs-default.xml ,复制里面的secondarynamenode 配置信息

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>0.0.0.0:50090</value>
  <description>
    The secondary namenode http server address and port.
  </description>
</property>

 

粘到 /soft/hadoop/etc/hadoop/hdfs-site.xml 中,并把value值0.0.0.0 改为 ubuntu4。

 

然后把修改过的hdfs-site.xml 发给所有主机

用getconf命令查看辅助名称节点

最后格式化namenode,重新开启后

 

八.存放目录修改

由于hadoop存放目录默认在 /tmp 目录下,每次开机都清空了,所以要修改存放路径

在 /soft/hadoop/etc/hadoop 中修改 core-site.xml文件,添加

 <property>
  <name>hadoop.tmp.dir</name>
  <value>/home/ubuntu/hadoop</value>
 </property>

然后发给其他主,接着格式化namenode,开启

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值