hadoop单机and集群模式安装
最近在学习hadoop,第一步当然是亲手装一下hadoop了。
下面记录我hadoop安装的过程:
注意:
1,首先明确hadoop的安装是一个非常简单的过程,装hadoop的主要工作都在配置文件上,因此最最重要的一点就是需要了解hadoop每个配置项的具体含义!
(今天时间关系,先把我的安装过程记录下来,关于每一步的配置具体表示什么意思,有时间详细写出来)
2,官方文档是最好的帮助文件,如果你的英语过关,希望多去看官方的文档;如果你的英语很烂,也可以去上面看着练习一下英语,耶!
3,本人比较懒,官方文档看了一点,实在看不下去了,找了博客,地址:http://blog.csdn.net/jasonty/article/details/50958466(但是这里面有坑哦)
4,hadoop版本2.6.4稳定版,系统版本ubuntu14.04
一 hadoop单机模式
这个由于太简单了,这里就不写了,直接看官方文档,如果你装不了集群的话,那就试一试伪集群吧,同样官方文档,地址:http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html
二 hadoop cluster mode
再次贴一下参考博客地址:http://blog.csdn.net/jasonty/article/details/50958466
首先非常感谢博主的帮忙,博主的配置基本全部正确。
下面内容大部分copy博主,可能加一些更细节的描述
第一步:创建Hadoop集群用户组
目的:我们总不能一直用root吧,你可以用自己单独的用户,比如我就是用chenkh,当然也可以配置新用户
1.分别在四台主机上创建一个新用户,名为hadoop,所属群组为hadoop,并设置新用户密码:
sudo adduser hadoop
2.检查hadoop是否拥有sodu权限
sudo cat /etc/group| grep sudo
回车之后会显示拥有sodu权限的用户,类似于:
sudo:x:27:tangyeah,hadoop
3.如果hadoop用户没有列出,需手动将hadoop加入到sudo用户组:
sudo /usr/sbin/usermod -G 27 hadoop
这样新建的hadoop用户就可以使用sudo命令临时获取root权限了。
第二步:修改主机名
四台主机的规划如下:
| ip地址 | 主机名 | 用途 |
|---|---|---|
| 9.119.131.131 | master | NameNode |
| 9.119.131.56 | slave1 | DataNode |
| 9.119.133.213 | slave2 | DataNode |
| 9.119.133.99 | slave3 | DataNode |
使用如下命令查看本机ip地址:
hadoop@pc1:~$ ifconfig
1.分别更改4台主机的主机名,此处仅以NameNode为例:
sudo nano /etc/hostname
将其内容改为master,保存并关闭。
2.分别配置四台主机的hosts文件:
sudo nano /etc/hosts
将以下代码加入到hosts中:
9.119.131.131 master
9.119.131.56 slave1
9.119.133.213 slave2
9.119.133.99 slave3
保存并关闭,注意一式四份,每台都要配。
三、设置ssh免密码验证
1.安装必要的组件
sudo apt-get install rsync
sudo apt-get install openssh-client
sudo apt-get install openssh-server
2.使用hadoop用户登陆master,生成公钥、私钥对
hadoop@master:~$ sudo ssh-keygen -t rsa -p''
3.将id_rsa.pub加入到授权的key中
hadoop@master:~$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4.在本机上测试一下,自己连自己:
hadoop@master:~$ ssh master
第一次连接需要输入yes确认,若仍需要输入密码则需要提高authorized_keys的权限:
hadoop@master:~$ sudo chmod 600 .ssh/authorized_keys
至此,第一台机器就搞定了。
5.hadoop用户分别登陆其余slave机,分别如上生成密钥对。
6.将3台slave的id_rsa.pub复制到master上:
slave1:
hadoop@slave1:~$ scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:/home/hadoop/.ssh/slave1
slave2:
hadoop@slave2:~$ scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:/home/hadoop/.ssh/slave2
slave3:
hadoop@slave3:~$ scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:/home/hadoop/.ssh/slave3
7.将三台slave的密钥加入到授权的key中
hadoop@master:~$ sudo cat ~/.ssh/slave1 >> ~/.ssh/authorized_keys
hadoop@master:~$ sudo cat ~/.ssh/slave2 >> ~/.ssh/authorized_keys
hadoop@master:~$ sudo cat ~/.ssh/slave3 >> ~/.ssh/authorized_keys
至此,三台slave登入master就应该可以免密码登入了。
8.将master的授权公钥复制到所有的slave机器上
hadoop@master:~$ scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys
hadoop@master:~$ scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_keys
hadoop@master:~$ scp /home/hadoop/.ssh/authorized_keys hadoop@slave3:/home/hadoop/.ssh/authorized_keys
至此,master登入三台slave也可以免密码登入了,可以在任意一台电脑上登陆任意其他电脑或自己测试一下。
hadoop@master:~$ ssh slave2
hadoop@slave2:~$ ssh slave2
hadoop@slave2:~$ ssh slave3
hadoop@slave3:~$ ssh master
第四步:下载安装JDK和Hadoop镜像
先在master上安装配置好,然后复制到slave上。
1.JDK的下载和安装
略,参考http://blog.csdn.net/jasonty/article/details/50936982
2.Hadoop2.6.4的下载和安装
Hadoop2.6.4官方下载链接:http://hadoop.apache.org/releases.html
选择2.6.4对应的binary点击下载(source是未编译的源代码,需要另搭环境重新编译),解压缩并移至/usr文件夹下,重命名为hadoop
hadoop@master:~$ tar -zxvf /home/tangyeah/Downloads/hadoop-2.6.4.tar.gz
hadoop@master:~$ sudo cp -r /home/tangyeah/hadoop-2.6.4 /usr
hadoop@master:~$ sudo mv /usr/hadoop-2.6.4 /usr/hadoop
3.更改环境变量
hadoop@master:~$ sudo nano /etc/profile
添加如下代码:
export JAVA_HOME=/usr/java(当然是添加你的JAVA_HOME了)
export HADOOP_HOME=/usr/hadoop
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存关闭,并使之生效:
hadoop@master:~$ source /etc/profile
第五步:修改Hadoop配置文件
共有7个文件需要配置,列出清单如下:
/usr/hadoop/etc/hadoop/hadoop-env.sh
/usr/hadoop/etc/hadoop/yarn-env.sh
/usr/hadoop/etc/hadoop/core-site.xml
/usr/hadoop/etc/hadoop/hdfs-site.xml
/usr/hadoop/etc/hadoop/yarn-site.xml
/usr/hadoop/etc/hadoop/mapred-site.xml
/usr/hadoop/etc/hadoop/slaves
1.hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/java
# Assuming your installation directory is /usr/local/hadoop
export HADOOP_PREFIX=/usr/hadoop
2.yarn-env.sh
export JAVA_HOME=/usr/java
3.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> </configuration>
/home/hadoop/tmp需手动创建
4.hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop/names</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:50020</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50075</value>
</property>
</configuration>
/usr/hadoop/names
/usr/hadoop/data
这两个目录也需要手动创建
5.yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
6.mapred-site.xml
如果该文件不存在,手动创建之。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7.slaves
slave1
slave2
slave3
六、Hadoop的启动与关闭
1.关闭防火墙(先查看防火墙有没有开启,开启的话最好关闭,不通版本关闭方法不同)
sudo /etc/init.d/iptables status
sudo /etc/init.d/iptables stop
2.NameNode初始化,仅在第一次启动的时候执行。
hadoop@master:~$ cd /usr/hadoop/bin
hadoop@master:/usr/hadoop/bin$ ./hadoop namenode -format
3.启动
hadoop@master:~$ cd /usr/hadoop/sbin
hadoop@master:/usr/hadoop/sbin$ start-dfs.sh
hadoop@master:/usr/hadoop/sbin$ start-yarn.sh
4.验证
hadoop@master:~$ jps
8918 SecondaryNameNode
7562 Jps
8701 NameNode
9438 ResourceManager
hadoop@slave1:~$ jps
10322 Jps
4836 ResourceManager
6804 DataNode
4693 SecondaryNameNode
6923 NodeManager
5.执行命令
hadoop@master:~$ bin/hdfs dfs -mkdir /user
hadoop@master:~$ bin/hdfs dfs -mkdir /user/chenkh
hadoop@master:~$ bin/hdfs dfs -put etc/hadoop input
hadoop@master:~$ bin/hadoop jar share/hadoop/mapreduce//hadoop-mapreduce-examples-2.6.5.jar grep input output 'dfs[a-z.]+'
hadoop@master:~$ bin/hdfs dfs -get output output
hadoop@master:~$ cat output/*
整个过程运行无误,表示安装成功
6.关闭
hadoop@master:~$ stop-all.sh
web监控界面应该有的信息
http://master:50070


http://master:8088

hadoop单机and集群模式安装的更多相关文章
- Spark Tachyon编译部署(含单机和集群模式安装)
Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...
- Presto单机/集群模式安装笔记
Presto单机/集群模式安装笔记 一.安装环境 二.安装步骤 三.集群模式安装: 3.1 集群模式修改配置部分 3.1.1 coordinator 节点配置. Node172配置 3.1.2 nod ...
- Greenplum源码编译安装(单机及集群模式)完全攻略
公司有个项目需要安装greenplum数据库,让我这个gp小白很是受伤,在网上各种搜,结果找到的都是TMD坑货帖子,但是经过4日苦战,总算是把greenplum的安装弄了个明白,单机及集群模式都部署成 ...
- Zookeeper简介及单机、集群模式搭建
1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...
- Redis 5.0.7 讲解,单机、集群模式搭建
Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业 ...
- Hadoop学习笔记(4)hadoop集群模式安装
具体的过程参见伪分布模式的安装,集群模式的安装和伪分布模式的安装基本一样,只有细微的差别,写在下面: 修改masers和slavers文件: 在hadoop/conf文件夹中的配置文件中有两个文件ma ...
- Kafka集群模式安装(二)
我们来安装Kafka的集群模式,三台机器: 192.168.131.128 192.168.131.130 192.168.131.131 Kafka集群需要依赖zookeeper,所以需要先安装好z ...
- 第十二章 Ganglia监控Hadoop及Hbase集群性能(安装配置)
1 Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...
- 搭建hadoop的HA集群模式(hadoop2.7.3+hive+spark)
参考:http://blog.51cto.com/12824426/2177663?source=drh 一.集群的规划 Zookeeper集群:192.168.176.131 (bigdata112 ...
随机推荐
- codeforces194b
link:http://codeforces.com/problemset/problem/334/B #include <iostream> #include <cstdio> ...
- 理解伪元素 :before和:after
在CSS中有一特性允许我们添加额外元素而不扰乱文档本身,就是伪元素. 下面举例说明: html: <blockquote> blockquote只是一个块引用 </blockquo ...
- php 单引号 双引号 ,php字符串/ hmtl / 数据库显示/ 及php的几个转化函数
* 以单引号为定界符的php字符串,支持两个转义\'和\\* 以双引号为定界符的php字符串,支持下列转义(\'会直接输出\' ,也会转义 \\): \n 换行(LF 或 ASCII 字符 0x ...
- 完成一段简单的Python程序,使用函数实现用来判断输入数是偶数还是奇数
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,使用函数实现用来判断偶数和奇数'''def number_deal(a): if a%2==0 ...
- mac osx 快捷键符号以及意义 触发角:锁屏
快捷键中常用符号⌘(command).⌥(option).⇧(shift).⇪(caps lock).⌃(control).↩(return).⌅(enter). OSX快捷键 快捷键中常用符号 ⌘( ...
- windows 代理服务器的搭建,提供Android 端访问公网.
这段时间遇到一个情况,移动的网络收费.但是可以访问学校内部的网络,比如说学校官网图书馆之类了.所以我这里便想到一个方法,用学校内部一个可以访问互联网的主机充当代理服务器(我这里使用自己的电脑,非服务器 ...
- coderforces719b
题目大意:给定一个字符串,这个字符串中只有“r”和"b"组成,每次操作只能交换两个字符的位置或者将一个字符由"r"变"b"(或由" ...
- iOS中定时器的使用
1. NSTimer 不是很精确 2.CADisplayLink 屏幕 3.通过GCD来实现定时间器 //定时循环执行事件 //dispatch_source_set_timer 方法值得一提的是最后 ...
- 自制公众平台Web Api(微信)
最近一段时间感觉没什么东西可以分享给大家,又由于手上项目比较赶,不太更新博客了,今天趁着生病闲下来的时间分享一些项目中的东西给大家. 公众平台 提起公众平台当下最流行的莫过于腾讯的微信了,当然还有易信 ...
- gRPC Java的代码架构
RPC(远程过程调用) 的架构最常见的是"动态代理"方式,事先定义好接口,用一个代理假装实现了这个接口(真正的实现放在服务端),供客户端调用,代理内部将该方法调用封装成一个网络请求 ...