Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 – 非HA方式 (一台服务器)「建议收藏」

Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 – 非HA方式 (一台服务器)「建议收藏」本教程是在Centos6下使用yum来安装CDH5版本的hadoop的教程,适合新手并且只有一个linux服务器的情况下最快速度的上手hadoop

大家好,又见面了,我是你们的朋友全栈君。

原帖地址: http://blog.csdn.net/nsrainbow/article/details/36629741

接上一个教程:http://blog.csdn.net/nsrainbow/article/details/36629339

本教程是在 Centos6 下使用yum来安装 CDH5 版本的 hadoop 的教程。 如果没有添加yum源的请参考上一个教程:http://blog.csdn.net/nsrainbow/article/details/36629339

Hadoop架构图

Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 - 非HA方式 (一台服务器)「建议收藏」

  1. NameNode、DataNode和Client
    NameNode可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。
    DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。
    Client就是需要获取分布式文件系统文件的应用程序。
  2. 文件写入
    Client向NameNode发起文件写入的请求。
    NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
    Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
  3. 文件读取
    Client向NameNode发起文件读取的请求
    NameNode返回文件存储的DataNode的信息。
    Client读取文件信息。

开始安装非HA模式

1. 添加库key

$ sudo rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera

2. 安装CDH5

2.1 安装Resource Manager host

$ sudo yum clean all
$ sudo yum install hadoop-yarn-resourcemanager -y

2.2 安装 NameNode host

$ sudo yum clean all
$ sudo yum install hadoop-hdfs-namenode -y

2.3 安装 Secondary NameNode host

$ sudo yum clean all
$ sudo yum install hadoop-hdfs-secondarynamenode -y

2.4 安装 nodemanager , datanode, mapreduce (官方说明是在除了 Resource Manager以外的机子上装这些,但是我们现在就一台机子,所以就在这台机子上装)

$ sudo yum clean all
$ sudo yum install hadoop-yarn-nodemanager hadoop-hdfs-datanode hadoop-mapreduce -y

2.5 安装 hadoop-mapreduce-historyserver hadoop-yarn-proxyserver (官方说是在cluster中挑一台做host,但是我们就一台,就直接在这台上装)

$ sudo yum clean all
$ sudo yum install hadoop-mapreduce-historyserver hadoop-yarn-proxyserver -y

2.6 安装 hadoop-client (用户连接hadoop的客户端,官方说在客户端装,我们就直接在这台上装)

$ sudo yum clean all
$ sudo yum install hadoop-client -y

3. 部署CDH

3.1 配置计算机名(默认是localhost)

先看看自己的hostname有没有设置

$ sudo vim /etc/sysconfig/network
HOSTNAME=localhost.localdomain

如果HOSTNAME是 localhost.localdomain的话就改一下

HOSTNAME=myhost.mydomain.com

然后再运行下,保证立即生效

$ sudo hostname myhost.mydomain.com

检查一下是否设置生效

$ sudo uname -a

3.2 修改配置文件

先切换到root用户,免得每行命令之前都加一个sudo,所以以下教程都是用root角度写的

$ sudo su -
$ cd /etc/hadoop/conf
$ vim core-site.xml

在 <configuration>…</configuration> 中增加

<property>
	<name>fs.defaultFS</name>
	<value>hdfs://myhost.mydomain.com:8020</value>
</property>

编辑hdfs-site.xml

$ vim hdfs-site.xml

在 <configuration>…</configuration> 中添加

<property>
 <name>dfs.permissions.superusergroup</name>
 <value>hadoop</value>
</property>

3.3 配置存储文件夹

在 namenode 机子上配置 hdfs.xml 用来存储name元数据(我们只有一台机,所以既是namenode又是datanode)

$ vim hdfs-site.xml

修改dfs.name.dir 为 dfs.namenode.name.dir(dfs.name.dir已经过时),并修改属性值,一般来说我们的 /data 或者 /home/data 都是挂载大硬盘数据用的,所以把存储文件夹指向这个路径里面的文件夹比较较好

<property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///data/hadoop-hdfs/1/dfs/nn</value>
  </property>

在 datanode上配置 hdfs.xml 用来存储实际数据(我们只有一台机,所以既是namenode又是datanode)

$ vim hdfs-site.xml

增加dfs.datanode.data.dir(dfs.data.dir已经过时)配置

<property>
     <name>dfs.datanode.data.dir</name>
     <value>file:///data/hadoop-hdfs/1/dfs/dn,file:///data/hadoop-hdfs/2/dfs/dn</value>
  </property>

建立这些文件夹

$ mkdir -p /data/hadoop-hdfs/1/dfs/nn
$ mkdir -p /data/hadoop-hdfs/1/dfs/dn
$ mkdir -p /data/hadoop-hdfs/2/dfs/dn

修改文件夹用户

$ chown -R hdfs:hdfs /data/hadoop-hdfs/1/dfs/nn /data/hadoop-hdfs/1/dfs/dn /data/hadoop-hdfs/2/dfs/dn

修改文件夹权限

$ chmod 700 /data/hadoop-hdfs/1/dfs/nn

3.4 格式化namenode

$ sudo -u hdfs hdfs namenode -format

3.5 配置 Secondary NameNode

在hdfs-site.xml中加入

<property>
  <name>dfs.namenode.http-address</name>
  <value>0.0.0.0:50070</value>
  <description>
    The address and the base port on which the dfs NameNode Web UI will listen.
  </description>
</property>

3.6 启动hadoop

$ for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x start ; done
Starting Hadoop nodemanager:                               [  OK  ]
starting nodemanager, logging to /var/log/hadoop-yarn/yarn-yarn-nodemanager-xmseapp03.ehealthinsurance.com.out
Starting Hadoop proxyserver:                               [  OK  ]
starting proxyserver, logging to /var/log/hadoop-yarn/yarn-yarn-proxyserver-xmseapp03.ehealthinsurance.com.out
Starting Hadoop resourcemanager:                           [  OK  ]
starting resourcemanager, logging to /var/log/hadoop-yarn/yarn-yarn-resourcemanager-xmseapp03.ehealthinsurance.com.out
Starting Hadoop datanode:                                  [  OK  ]
starting datanode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-datanode-xmseapp03.ehealthinsurance.com.out
Starting Hadoop namenode:                                  [  OK  ]
starting namenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-namenode-xmseapp03.ehealthinsurance.com.out
Starting Hadoop secondarynamenode:                         [  OK  ]
starting secondarynamenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-secondarynamenode-xmseapp03.ehealthinsurance.com.out
...

都成功后用jps看下

$jps
17033 NodeManager
16469 DataNode
17235 ResourceManager
17522 JobHistoryServer
16565 NameNode
16680 SecondaryNameNode
17593 Jps

4 客户端测试

打开你的浏览器输入 http://<hadoop server ip>:50070

如果看到

Hadoop Administration

DFS Health/Status

这样的字样就成功进入了hadoop的命令控制台

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137549.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 常用正则表达式合集,这一篇就够了!!(含完整案例,建议收藏)

    常用正则表达式合集,这一篇就够了!!(含完整案例,建议收藏)正是掌握了这些正则表达式,冰河平均每天比别人少写200行代码,极大的提高了研发效率,有了很多摸鱼的时间!!

    2022年9月24日
    3
  • 负载均衡的算法有哪些_流量负载均衡

    负载均衡的算法有哪些_流量负载均衡G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。数据保证一定有解。输入格式第 1 行中有 1 个正整数 n,表示有 n 个仓库。第 2 行中有 n 个正整数,表示 n 个仓库的库存量。输出格式输出最少搬运量。数据范围1≤n≤100,每个仓库的库存量不超过 100。输入样例:517 9 14 16 4输出样例:11#include<bits/stdc++.

    2022年8月11日
    4
  • Java之多线程断点下载的实现

    Java之多线程断点下载的实现

    2022年2月1日
    43
  • extjs中的flex_Extjs 教程「建议收藏」

    extjs中的flex_Extjs 教程「建议收藏」基本介绍ExtJS代表扩展JavaScript,是基于YUI(Yahoo用户界面)的sencha的JavaScript框架和产品。它基本上是一个具有现代UI的桌面应用程序开发平台。本教程完全理解ExtJS。这个参考将带你通过简单和实用的方法,同时学习ExtJS。适用人群本教程为初学者准备,帮助他们了解ExtJS的概念,以构建动态WebUI。学习前提对于本教程,读者应该具有HTML,CSS…

    2022年6月18日
    31
  • XSS漏洞介绍及反射型XSS

    XSS漏洞介绍及反射型XSS什么是XSS攻击:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制–例如同源策略(sameoriginpolicy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。XSS分类:类型A,本地利用漏洞,这种漏…

    2022年5月6日
    42
  • 开通阿里云短信服务

    开通阿里云短信服务阿里云短信服务1,阿里云用户权限操作1.1、找到后台放在个人头像上面选择AccessKey管理1.2、选择子用户1.3、创建用户组1.4、给用户组添加权限然后就可以看到你的权限里面多了一个sms的短信权限1.5、创建用户注意!注意!注意点击确认后只可以看到一次密码返回就看不到了注意!注意!注意点击确认后只可以看到一次密码返回就看不到了注意!注意!注意点击确认后只可以看到一次密码返回就看不到了1.6、把用户加入到用户组2、开通阿里云短信服务

    2025年7月9日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号