初识Hadoop一,配置及启动服务
一、Hadoop简介:
Hadoop是由Apache基金会所开发的分布式系统基础架构,实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS;Hadoop框架最核心设计就是HDFS和MapReduce,HDFS为海量数据提供了存储,MapReduce为海量数据提供了计算。
Hadoop要解决的问题:海量数据的存储(HDFS)、海量数据的分析(MapReduce)和资源管理调度(YARN)
Hadoop主要作用于分布式
二、Hadoop实现机制
1、Hadoop是把一个文件切割成多个块(block),分别存储到不同服务器上,而且其中某些服务器又存有这个文件的多个块,如下图把文件A分成4块(A1\A2\A3\A4)存放在4个服务器上;这样不仅解决了并发请求一个文件时造成的阻塞,增大吞吐量,还做了副本备份

2、Hadoop分布式部署服务器,那就分主服务器和辅服务器。主服务器也就是NameNode,存储文件分块的相关信息,如哪个块在哪个服务器哪个路径下,而真正存储文件的是辅服务器,即DataNode。客户端请求文件时无需关心如何请求块,只需要知道HDFS为文件虚拟的一个文件路径即可,也就是直接请求NameNode。

3、Hadoop只有一个NameNode,可以有多个DataNode,当DataNode不够用时还可以添加
三、Hadoop安装、配置及启动(CentOS7系统)
1、官网下载Hadoop hadoop-2.7.3.tar.gz
2、需要的软件环境JDK、SSH、rsync;JDK安装和部署参照本博文linux学习之系统管理、网络配置、软件安装第九步;ssh、rsync安装直接用yum install安装,一般这两个系统自带
2、在/home下新建文件夹hadoop,然后通过FlashFXP工具将下载好的hadoop压缩包上传至此文件夹下,使用tar命令解压
3、在解压后的文件下修改配置
(1)、设置JAVA_HOME环境变量(我的JDK安装目录为/home/jdk/jdk1.8.0_73/)
vi命令编辑etc/hadoop/hadoop-env.sh,找到相应位置修改如下:
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/jdk/jdk1.8.0_73
(2)、编辑文件etc/hadoop/core-site.xml文件,指定默认文件系统和工作空间(现在还路径下还没有tmp文件夹,执行完hdfs格式化后便可看到相关文件)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.7.3/tmp/</value>
</property>
</configuration>
(3)、编辑文件etc/hadoop/hdfs-site.xml文件,设置文件副本数,也就是文件分割成块后,要复制块个数(由于此处就本机一个节点,伪分布式,所以就配置为1,文件本身,不需要副本)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(4)、编辑文件etc/hadoop/mapred-site.xml文件,此文件其实不存在,二存在mapred-site.xml.template,所以执行命令mv mapred-site.xml.template mapred-site.xml修改此文件名,指定资源调度框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)、编辑文件etc/hadoop/yarn-site.xml文件,yarn也是分布式管理的,所以配置一个主服务器;然后还要配置中间数据调度的机制
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4、配置完成后,格式化hdfs系统
hadoop命令一般在bin文件夹下,所以要执行相关命令要在bin目录下进行操作,为了以后方便,所以要先把hadoop的bin目录配置到环境变量中,还有些命令在sbin目录中,所以也要配置到环境变量
vi /etc/profile环境变量部分代码如下
export JAVA_HOME=/home/jdk/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后记得用命令source /etc/profile配置立即生效
(执行前可以看下hadoop安装目录下不存在tmp文件夹)然后执行hadoop namenode -format命令,会发现以前hadoop安装路径下不存在tmp文件夹,现在已经有了
5、启动HDFS(sbin下有start-dfs.sh)
HDFS是分布式系统,所以启动HDFS时,会启动配置的各个服务器节点,包括本机,在启动过程中是通过ssh远程操作的,所以在不做特殊配置下,每次启动到节点(包括本机)相关操作时,都要输入密码,如果想避免每次都输入密码,可执行下面命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
执行start-dfs.sh启动HDFS(由于配置了环境变量,所以可以直接执行,不用切换到sbin目录下) 启动完后jps命令可以查看正在启动的java服务
[root@localhost bin]# jps
28800 SecondaryNameNode
28619 DataNode
28524 NameNode
29068 Jps
[root@localhost bin]#
netstat -nltp命令查看所监听的端口
[root@localhost bin]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 28800/java
tcp 0 0 192.168.36.133:1521 0.0.0.0:* LISTEN 2485/tnslsnr
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2397/dnsmasq
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 28524/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1080/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1084/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2263/master
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 28619/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 28619/java
tcp 0 0 127.0.0.1:38242 0.0.0.0:* LISTEN 28619/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 28619/java
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 28524/java
tcp6 0 0 :::22 :::* LISTEN 1080/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1084/cupsd
tcp6 0 0 :::23 :::* LISTEN 1087/xinetd
tcp6 0 0 ::1:25 :::* LISTEN 2263/master
tcp6 0 0 :::36794 :::* LISTEN 2558/ora_d000_orcl
[root@localhost bin]#
NameNode和DataNode是通过9000端口通信的
50070端口是提供的一个Web页面,我的系统ip是192.168.36.133,访问网址http://192.168.36.133:50070/可查看效果

6、启动yarn(yarn也是集群的)
执行start-yarn.sh命令(在sbin文件夹下),如果前面没有配置ssh免登录,也是要输入登录密码的。执行jps命令查看启动的Java服务,ResourceManager已启动
[root@localhost home]# jps
4080 Jps
3121 DataNode
3320 SecondaryNameNode
3672 ResourceManager
3768 NodeManager
3021 NameNode
[root@localhost home]#
到此已经配置启动完了,下一节开始使用
初识Hadoop一,配置及启动服务的更多相关文章
- MySQL——安装、配置、启动服务、
1.环境变量配置 将启动连接,加入环境变量中. mysqld :启动服务端 msysql -u 用户名 -p 密码 : 启动客户端 2.windows服务:一直在运行中 E:\wupeiqi\mys ...
- Hortonworks HDP Sandbox定制(配置)开机启动服务(组件)
定制Hortonworks HDP开机启动服务能够这样做:本文原文出处: http://blog.csdn.net/bluishglc/article/details/42109253 严禁不论什么形 ...
- Linux 配置脚本 启动服务
之前在mac安装了php和nginx每次都用一堆命令重启 今天没事情干,心血来潮,自己研究写了一段shell脚本来重启 首先vim /usr/sbin/pn 代码如下 #! /bin/bash php ...
- Dubbo 通过Spring 配置具体启动服务
dubbo 服务的启动加载过程,请先看 : http://www.cnblogs.com/ghj1976/p/5316126.html 以 dubbo-demo-provider-2.5.4-SNA ...
- 在Windows子系统(WSL)中配置开机启动服务
在WSL中跑了一些测试服务 比如 mysql nginx等,但关机后每次都要手动开启甚是吃力,本想着用rc.local来编辑开机启动 ,无奈不支持啊!先看看非WSL环境中是怎么实现的. 在 Ubunt ...
- hadoop搭建好,启动服务后,无法从web界面访问50070
在hadoop完全分布式搭建好以后,从主节点启动正常,使用jps查看启动的进程,正常,在几个从节点上使用jps查看,显示正常,但从web上输入下面网址: http://主节点IP:50070 无法正常 ...
- Ubuntu安装sysv-rc-conf配置开机启动服务
ubuntu下chkconfig的替代方案: 第一步:在终端键入sudo apt-get install sysv-rc-conf安装sysv-rc-conf服务. 第二步:检查设置系统开机自启动服务 ...
- centos6 centos7 配置开机启动服务
centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add apache 添加nginx服务 #chkconfig apache on 开机自 ...
- 安装、配置、启动FTP、SSH或NFS服务
(1)准备使用软件维护工具apt-get. Ubuntu7.10中没有安装FTP.SSH.NFS服务器软件,它提供了一个很方便的安装.升级.维护软件的工具apt-get.apt-get从光盘.网络上下 ...
随机推荐
- 作业4-两人编程<词频统计>
协作:苗中峰,刘鑫成 我主要攻克排序,成哥写了文件流的使用.整合工作由我完成,成哥帮我查阅资料,避免和解决语法错误. 这次任务较作业三的变化是: * ...
- 转 -- linux IO子系统和文件系统读写流程
我们含有分析的,是基于2.6.32及其后的内核. 我们在linux上总是要保存数据,数据要么保存在文件系统里(如ext3),要么就保存在裸设备里.我们在使用这些数据的时候都是通过文件这个抽象来访问的, ...
- [转]Hibernate与Jpa的关系,终于弄懂
原文地址:http://blog.sina.com.cn/s/blog_5f1619e80100yoxz.html 我知道Jpa是一种规范,而Hibernate是它的一种实现.除了Hibernate, ...
- 在chrome下-webkit-box布局的一个bug
chrome,也就是webkit内核下作的检测, chrome版本是40, -webkit-box这种布局在移动端用的比较多,主要是因为pc端的浏览器内核参差不齐. 因为在写HTML的时候看上了-we ...
- 100735D
排序+搜索 为什么这是对的呢?其实我不是很清楚 大概是这个样子的:我们希望构成三角形的三个数尽可能集中,因此在搜索中贪心地选取从最小依次往上,选取三条边,但是总感觉有反例,先挖个坑... #inclu ...
- java线程安全
(一).java并发之原子性与可见性 原子性 原子是世界上的最小单位,具有不可分割性.比如 a=0:(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作.再比如:a+ ...
- 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue
介绍背水一战 Windows 10 之 绑定 与 Element 绑定 与 Indexer 绑定 TargetNullValue - 当绑定数据为 null 时显示的值 FallbackValue - ...
- iOS开发基础知识碎片
1:contentSize.contentInset和contentOffset区别 contentSize 是scrollview中的一个属性,它代表scrollview中的可显示区域,假如有一个s ...
- ActiveMQ;RabbitMQ;ZeroMQ
中间件类型: Embedded middleware: As the name suggests, this typeof middleware handles embedded applicatio ...
- 3.Android 优化布局(解决TextView布局)
转载:http://www.jianshu.com/p/d3027acf475a 今天分享一个Layout布局中的一个小技巧,希望看过之后你也可以写出性能更好的布局,我个人的目的是用最少的view写出 ...