hadoop分布式部署(2014-3-8)
hadoop简介:
(维基百科)Apache Hadoop是一款支持數據密集型分佈式應用并以Apache 2.0許可協議發佈的開源軟體框架。它支持在商品硬件構建的大型集群上運行的應用程序。Hadoop是根據Google公司發表的MapReduce和Google檔案系統的論文自行實作而成。
Hadoop框架透明地為應用提供可靠性和數據移動。它實現了名為MapReduce的編程範式:
應用程序被分割成許多小部分,而每個部分都能在集群中的任意節點上執行或重新執行。此外,Hadoop還提供了分佈式文件系統,用以存儲所有計算節點的數
據,這為整個集群帶來了非常高的帶寬。MapReduce和分佈式文件系統的設計,使得整個框架能夠自動處理節點故障。它使應用程序與成千上萬的獨立計算
的電腦和PB級的數據。現在普遍認為整個Apache
Hadoop“平台”包括Hadoop內核、MapReduce、Hadoop分佈式文件系統(HDFS)以及一些相關項目,有Apache
Hive和Apache HBase等等。
主节点包括名称节点、从属名称节点和 jobtracker 守护进程(即所谓的主守护进程)以及管理
集群所用的实用程序和浏览器。从节点包括 tasktracker 和数据节点(从属守护进程)。两种设
置的不同之处在于,主节点包括提供 Hadoop 集群管理和协调的守护进程,而从节点包括实现
Hadoop 文件系统(HDFS)存储功能和 MapReduce 功能(数据处理功能)的守护进程。
每个守护进程在 Hadoop 框架中的作用。namenode 是 Hadoop 中的主服务器,它管理文件系
统名称空间和对集群中存储的文件的访问。还有一个 secondary namenode,它不是
namenode 的冗余守护进程,而是提供周期检查点和清理任务。在每个 Hadoop 集群中可以找
到一个 namenode 和一个 secondary namenode。
datanode 管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一
个 datanode 守护进程。
每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个
tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨
datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个
datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。
环境:rhel6.3 selinux and iptables disabled, sshd enabled
主机: 192.168.1.120 master
192.168.1.122 slave
192.168.1.123 slave
192.168.1.121 slave(在线添加)
软件:hadoop.apache.org
master 配置:
sh jdk-6u32-linux-x64.bin
mv jdk1.6.0_32/ /usr/local/jdk
tar zxf hadoop-1.1.2.tar.gz -C /usr/local/
cd /usr/local/hadoop-1.1.2/
mv hadoop-1.1.2/ hadoop //便于以后升级
mv jdk/ hadoop/ //便于以后升级
vi conf/hadoop-env.sh :
# The java implementation to use. Required.
export JAVA_HOME=/usr/local/hadoop/jdk
cd conf/
vi core-site.xml :
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.120:9000</value>
</property>
</configuration>
vi hdfs-site.xml :
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
vi mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.120:9001</value>
</property>
</configuration>
yum install openssh-clients -y
ssh-keygen
ssh-copy-id localhost
ssh-copy-id 192.168.1.122
ssh-copy-id 192.168.1.123
scp -r hadoop/ 192.168.1.122:/usr/local/
scp -r hadoop/ 192.168.1.123:/usr/local/
cd /usr/local/hadoop
bin/hadoop namenode -format
bin/start-all.sh //启动hadoop
jdk/bin/jps //查看时候否启动成功,正常如下:
[root@server120 hadoop]# jdk/bin/jps
12681 NameNode
13260 Jps
12918 JobTracker
12826 SecondaryNameNode
slave配置:
只要在master作scp之前:yum install openssh-clients -y
在master启动之后,cd /usr/local/hadoop
jdk/bin/jps //查看slave是否启动成功,正常如下:
3182 TaskTracker
4075 Jps
3095 DataNode
上述启动成功之后,还可以在web页面查看状态:
NameNode:http://192.168.1.120:50070
http:/JobTracker://192.168.1.120:50030
测试:
在master:
cd /usr/local/hadoop
bin/hadoop fs -put conf/ dir1 上传数据
bin/hadoop fs -ls 查看数据信息
bin/hadoop jar hadoop-examples-1.1.2.jar wordcount dir1 dir2 关键字统计,输出统计结果到dir2
在统计过程中,可以在上述web页面产看状态和进度
hadoop 在线添加节点:
在master:
ssh-copy-id 192.168.1.121
cd /usr/local/hadoop/conf
vi slaves :添加192.168.1.121
cd ..
scp -r hadoop/ 192.168.1.121:/usr/local/
在新增节点上启动服务:
cd /usr/local/hadoop/
bin/hadoop-daemon.sh start datanode
bin/hadoop-daemon.sh start tasktracker
均衡数据:
bin/start-balancer.sh
1)如果不执行均衡,那么 cluster 会把新的数据都存放在新的 datanode 上,这样会降低 mapred
的工作效率
2)设置平衡阈值,默认是 10%,值越低各节点越平衡,但消耗时间也更长
bin/start-balancer.sh -threshold 5
hadoop 在线删除 datanode 节点:
在 master 上修改 conf/mapred-site.xml,添加:
<property>
name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/conf/excludes</value>
</property>
<property>
<name>mapred.hosts.exclude</name>
<value>/usr/local/hadoop/conf/excludes</value>
在 d/usr/local/hadoop/conf下创excludes 文件,并添加需要删除的主机,一行一个:
echo 192.168.1.121 > excludes
在 master 上在线刷新节点
bin/hadoop dfsadmin -refreshNodes
可以通过以下命令查看 datanode 状态
bin/hadoop dfsadmin -report
hadoop分布式部署(2014-3-8)的更多相关文章
- CentOS7 下 Hadoop 分布式部署
Hadoop 服务划分 使用三台节点,集群部署规划如下 服务\主机 hadoop1 hadoop2 hadoop3 HDFS NameNode DataNode DataNode SecondaryN ...
- 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】
问题描述: 上一篇就是NameNode 的HA 部署完成,但是存在问题,问题是如果 主NameNode的节点宕机了,还是需要人工去使用命令来切换NameNode的Acitve 这样很不方便,所以 ...
- 【Hadoop 分布式部署 六:环境问题解决和集群基准测试】
环境问题: 出现Temporary failure in name resolutionp-senior-zuoyan.com 的原因有很多,主要就是主机没有解析到, 那就在hadoop的sl ...
- 【Hadoop 分布式部署 四:配置Hadoop 2.x 中主节点(NN和RM)到从节点的SSH无密码登录】
******************* 一定要使这三台机器的用户名相同,安装目录相同 ************* SSH 无密钥登录的简单介绍(之前再搭 ...
- 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】
1.规划好哪些服务运行在那个服务器上 需要配置的配置文件 2. 修改配置文件,设置服务运行机器节点 首先在 hadoop-senior 的这台主机上 进行 解压 hadoop2.5 按照 ...
- Hadoop分布式部署——要点
这里只记录几个要点,比较容易出问题的地方. 1.各服务器必须有相同的用户(便于使用相同的用户ssh登录)2.ssh互通,配置无密码登录ssh-keygen -t rsa,将id_rsa.pub的内容相 ...
- 【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
官方参考 配置 地址 :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabili ...
- 【Hadoop 分布式部署 九:分布式协作框架Zookeeper架构 分布式安装部署 】
1.首先将运行在本地上的 zookeeper 给停止掉 2.到/opt/softwares 目录下 将 zookeeper解压到 /opt/app 目录下 命令: tar -zxvf zoo ...
- 【Hadoop 分布式部署 八:分布式协作框架Zookeeper架构功能讲解 及本地模式安装部署和命令使用 】
What is Zookeeper 是一个开源的分布式的,为分布式应用提供协作服务的Apache项目 提供一个简单的原语集合,以便与分布式应用可以在他之上构建更高层次的同步服务 设计非常简单易于编 ...
随机推荐
- Codeforces Round #215 (Div. 2) D题(离散化+hash)
D. Sereja ans Anagrams time limit per test 1 second memory limit per test 256 megabytes input standa ...
- ASP.NET 如何做出简单的验证码
如果说要做验证码,那不得不提的就是GDI+绘图了.我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它. 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高级版本 ...
- cefSharp在XP下使得程序崩溃记录
前言:这是一个奇葩的问题,到现在自己还没有搞明白问题出现在哪里,但是从问题总算是解决了,希望看到此文章的大牛,如果知道问题出在什么地方,可以告知一下. [一个在XP系统下面应用程序崩溃问题] 资源: ...
- Nodejs_day02
Nodejs的事件模块 var events = require('events'); var eventEmitter = new events.EventEmitter();//创建EventEm ...
- Steam即将正式加入人民币支付(转)
Valve将在2015年Q4和2016年Q1加入一批新的货币结算支持,其中包括了人民币,这意味着以后玩家将无需在跳转支付平台后并通过美元结算.这对中国玩家来说是喜是忧? 本文由爱玩网整理报道,转载请保 ...
- 【LeetCode】70 - Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- Python中的并发编程
简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执 ...
- 数往知来 ASP.NET 表单的提交_url传值_重定向 <十八>
一.表单提交时注意 如果是以get方式提交数据的时候,在接收时是用QueryString方式进行接收 如果是以post请求数据时在接收时是用Form进行接收 为什么么要这样做呢?我们用Request[ ...
- MySQL Connector_J_5.1.34_2014.10
5.1版本符合JDBC3.0和JDBC4.0规范 跟MySQL4.1-5.7兼容 5.1.21以后支持JDK7的JDBC4.1规范 在MySQL4.1之前,是不支持utf8的 com.mysql.jd ...
- remoting blazeds 实施步骤
remoting 实施步骤 1.创建 --web project 和 -- Flex project 2.在web project 下创建 -- com.HelloRemoting: package ...