完全分布式安装hadoop
以三个节点为例的服务器集群来安装和配置hadoop
以下是各服务器ip地址和对应所做的节点
192.168.61.128 master
192.168.61.129 slave1
192.168.61.133 slave2
首先修改每个服务器上的hosts文件
使用命令
vi /etc/hosts编辑
在最后追加
192.168.61.128 master
192.168.61.129 slave1
192.168.61.133 slave2
三行
为每个服务器创建hadoop账户
在root用户下,使用命令
useradd hadoop
passwd hadoop
输入两遍新密码完成
为每个服务器安装jdk
jdk文件版本为jdk-7u45-linux-i586.rpm
可以在官网上下载各个版本的linux jdk文件
使用命令
rpm -ivh jdk-7u45-linux-i586.rpm
进行安装
安装完成之后编辑profile文件配置环境变量
vi /etc/profile
在末尾追加
export JAVA_HOME=/usr/java/jdk1.7.0_45
export PATH=$JAVA_HOME/bin/:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
注意jdk对应的版本号
编辑完成后使用命令
source /etc/profile
保存配置
之后输入java -version可以查看jdk版本信息
配置ssh免密码登录
在每个服务器上
输入命令
chmod -R 755 /home/hadoop
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
rsa和dsa分别生成不同加密格式的ssh密钥,直接一直按回车键保存在默认的路径
在master节点上配置authorized_keys文件
输入命令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
将本地的密钥保存在authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
使用ssh分别将slave1和slave2节点上的密钥保存在authorized_keys
这样之后,master节点上的authorized_keys文件就保存了所有服务器的密钥
由于还没有设置ssh免密码登录,所以传输的时候需要输入各个节点的密码(系统对用hadoop用户的密码)
之后将这个文件分别传输到各个节点上
scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys slave2:~/.ssh/authorized_keys
配置完成
接下来要对各个节点上的.ssh目录设置权限(很重要,有时候就是因为权限问题无法登陆)
输入命令
chmod -R 700 ~/.ssh
注意当前你所在的路径
接下来可以再每个服务器上测试ssh是否可以免密码登录了
例:
在master节点上输入
ssh master date
将会提示
The authenticity of host 'master (10.10.10.100)' can't be established.
RSA key fingerprint is 99:ef:c2:9e:28:e3:b6:83:e2:00:eb:a3:ee:ad:29:d8.
Are you sure you want to continue connecting (yes/no)?
这是因为这台机器上的ssh没有把master记录在已知的主机列表中
输入yes回车即可
(之后的各个节点一样,输入yes让其记住主机,之后就可以免密码登录)
如果中间出现什么异常或者错误,有可能是权限问题导致,请百度之
在master节点上配置hadoop
将hadoop包放到/home.hadoop目录下方便操作
进入hadoop目录下的conf目录
1.修改hadoop-env.sh文件
添加
export JAVA_HOME=/usr/java/jdk1.7.0_45
配置jdk的环境变量,注意jdk版本
2.修改core-site.xml文件
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
设置namenode节点的IP和端口
设置hadoop.tmp.dir路径,默认是/tmp/$username,重启就会删除该目录的文件,所以这里给他配置一个自定义的路径
3.修改hdfs-site.xml文件
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-name</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hadoop/hadoop-namesecondary</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
设置hdfs文件系统
4.修改mapred-site.xml文件
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
设置jobtracker的ip和端口
以上xml文件的配置都只是在源文件的基础上添加对应的property节点即可
5.在conf目录下
vi masters
输入master
vi slaves
输入
slave1
slave2
有几个slave节点就写几个,注意换行
配置完成之后使用ssh将hadoop传输到各个节点上
scp -r hadoop-0.20.2/ slave1:~/
scp -r hadoop-0.20.2/ slave2:~/
传输完毕之后再master节点上
进入hadoop目录下的bin目录
输入命令
hadoop namenode -format
开始格式化namenode
注意看提示格式化是否成功
在输入命令
start-all.sh
启动hadoop集群
启动完成后
在master节点输入jps可以看到已经在运行的namenode,secondarynode和tasktracker进程
在各个slave节点上输入jps可以看到已经在运行的datanode和jobtracker进程
在master节点输入stop-all.sh可以停止集群运行
如果遇到在slave节点上的进程运行一会就自动停止
可能原因有两个:
1.系统防火墙阻止
在各个节点上,切换到root用户使用命令
service iptables stop
成功会返回三个ok提示,关闭防火墙
2.先使用stop-all.sh停止集群
在core-site.xml文件中配置的hadoop.tmp.dir的值,找到对应的路径
删除里面的文件
然后使用
hadoop namenode -format
重新格式化一下namenode
如果其实hadoop-name文件已经存在,找到这个文件夹,删除之,在重新格式化即可
在使用start-all.sh启动集群
以上每个步骤确保看到成功的提示(或者没有失败的提示)
在配置过程中就是因为没有仔细看系统提示
失败的操作一直以为是成功的导致浪费了大量的时间
另外,操作使用的hadoop版本是0.20.2
如果出现其他的错误,可以到各个节点的hadoop目录下的logs文件件查看对应的日志文件
在到网上自行百度之~
启动完成之后在任意一个节点中打开浏览器输入一下网址可以通过WEB界面查看hadoop
http://192.168.61.128:50030/(jobtracker的HTTP服务器地址和端口)
http://192.168.61.128:50060/(taskertracker的HTTP服务器地址和端口)
http://192.168.61.128:50070/(namenode的HTTP服务器地址和端口)
http://192.168.61.128:50075/(datanode的HTTP服务器地址和端口)
http://192.168.61.128:50090/(secondary namenode的HTTP服务器地址和端口)
完全分布式安装hadoop的更多相关文章
- 指导手册02:伪分布式安装Hadoop(ubuntuLinux)
指导手册02:伪分布式安装Hadoop(ubuntuLinux) Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...
- 第二章 伪分布式安装hadoop hbase
安装单机模式的hadoop无须配置,在这种方式下,hadoop被认为是一个单独的java进程,这种方式经常用来调试.所以我们讲下伪分布式安装hadoop. 我们继续上一章继续讲解,安装完先试试SSH装 ...
- CentOS7 分布式安装 Hadoop 2.8
1. 基本环境 1.1 操作系统 操作系统:CentOS7.3 1.2 三台虚拟机 172.20.20.100 master 172.20.20.101 slave1 172.20.20.102 sl ...
- 伪分布式安装Hadoop
Hadoop简单介绍 Hadoop:适合大数据分布式存储与计算的平台. Hadoop两大核心项目: 1.HDFS:Hadoop分布式文件系统 HDFS的架构: 主从结构: 主节点,只有一个:namen ...
- 完全分布式安装hadoop集群
0.安装jdk 1.配置hosts文件 2.建立hadoop运行账号 3.配置ssh免密码登录 4.在namenode上配置hadoop 4.1.修改hadoop-env.sh文件 4.2.修改yar ...
- CentOS7.0分布式安装HADOOP 2.6.0笔记-转载的
三台虚拟机,IP地址通过路由器静态DHCP分配 (这样就无需设置host了). 三台机器信息如下 - 1. hadoop-a: 192.168.0.20 #master 2. ha ...
- CentOS 6.5 伪分布式 安装 hadoop 2.6.0
安装 jdk -openjdk* 检查安装:java -version 创建Hadoop用户,设置Hadoop用户使之可以免密码ssh到localhost su - hadoop ssh-keygen ...
- Hadoop单机和伪分布式安装
本教程为单机版+伪分布式的Hadoop,安装过程写的有些简单,只作为笔记方便自己研究Hadoop用. 环境 操作系统 Centos 6.5_64bit 本机名称 hadoop001 本机IP ...
- hadoop集群的搭建(分布式安装)
集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...
随机推荐
- POJ 2828 Buy Tickets | 线段树的喵用
题意: 给你n次插队操作,每次两个数,pos,w,意为在pos后插入一个权值为w的数; 最后输出1~n的权值 题解: 首先可以发现,最后一次插入的位置是准确的位置 所以这个就变成了若干个子问题, 所以 ...
- 用IE滤镜实现的一些特效
CSS3是当下非常火的一个话题,很多浏览器都已经开始支持这一特性,然后IE这个拥有庞大用户群体的平台,却无法提供这样的支持,即便是IE9发布,也无法改变这一事实,然而,幸运的是,IE并非在这方面毫无作 ...
- java复习整理(六 异常处理)
一.异常简介 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性. ...
- jdk,tomcat,mvn,android,php,linux等的初始化配置
jdk配置:系统变量->新建->变量名:JAVA_HOME 变量值:c:\jdk1.6.0_21(jdk安装目录:C:\Program Files (x86)\Java\jdk1.7.0_ ...
- tips 前端 背景与元素的透明和模糊
碰到好几次这样的情况了: 一个带点儿文艺效果 背景图片模糊 而一行别致的文字清晰的悬浮在背景上(口胡,加点美好的想象,生活会更美好) 第一反应是 this is easy. cause i know ...
- Handler 源码分析
Handler用法: 无参 Handler 构造函数实例化一个 Handler 类型的全局变量,并重写其 handleMessage 方法,在某一方法内调用 Handler 的 sendEmptyMe ...
- 百度经验:Win10查看已存储WiFi密码的两种方法
方法一:网络和共享中心查询 具体步骤可以参考:Win10查看WIFI密码的方法 方法二:命令提示符查询 1.右键单击开始按钮,选择“命令提示符(管理员)” 2.输入如下命令(下图①号命令): nets ...
- 推送通知iOS客户端编写实现及推送服务器端编写
http://blog.csdn.net/tonny_guan/article/details/8963262 1.iOS客户端编程 推送通知技术在Mac OS X和iOS系统上都可以运行,我们本章主 ...
- UVA 10801 Lift Hopping 最短路
2种方式直接代码就可以了.注意首次不需要60S的转换 #include <map> #include <set> #include <list> #include ...
- 计蒜客 18488.Extreme Sort (German Collegiate Programming Contest 2015 ACM-ICPC Asia Training League 暑假第一阶段第三场 E)
E.Extreme Sort 传送门 代码: #include<iostream> #include<cstdio> #include<cstring> #incl ...