CentOS 6.5 x64下Hadoop安装
Apache Hadoop安装部署模式
单机(本地)模式(Standalone Mode)
伪分布模式(Pseudo-Distributed Mode)
完全分布模式(Fully Distributed Mode)
5个守护进程,
本地一个都不需要,用于测试
分布式,管理层应用层是分开的
伪分布式:一台机器上运行所有的Hadoop服务,5个后台守护进程
单机模式只有一个jvm,hadoop是在java上运行的,不使用hdfs,
通常用于调试
伪分布式模式:只有一台机器,每个Hadoop守护进程都是一个独立的jvm进程,通常用于调试
完全分布式模式:运行于多台机器上,真实环境
Hadoop安装部署:单机模式
Hadoop的默认配置即为本地模式,此时Hadoop使用本地文件系统而非分布式文件系统,
而且
Hadoop安装部署:伪分布式模式
单机模式
用户无需密码可以sudo权限
在root下,修改/etc/sudoers文件
添加一句:
hadoop ALL=(root)NOPASSWD:ALL
关闭防火墙
重启后生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
安装jdk和环境变量
java -version
解压hadoop1.2.1
http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/
移到/usr/local/下
配置环境变量
测试
配置hadoop中的jdk安装路径
进入到HADOOP_HOME
进入conf目录
vim hadoop-env.sh
配置其中的jkd目录
运行实例,测试mapreduce程序
hadoop jar hadoop-examples-1.2.1.jar grep /home/yangxu/data/input/ /home/yangxu/data/output/ 'dfs[a-z.]+'
java.net.UnknownHostException: centos: centos: unknown error
主机名配置没有配好,解决办法http://lihongchao87.iteye.com/blog/1998347
vim /etc/hosts
vim /etc/
vim /etc/sysconfig/network
Warning: $HADOOP_HOME is deprecated.
解决这个的方案:http://chenzhou123520.iteye.com/blog/1826002
伪分布式安装部署
五个后台的进程
NameNode
DataNode
Secondary NameNode
JobTracker
TaskTracker
这5个进程放在一台机器上,常用于开发测试执行
用户的环境变量
.bash_profile
SSH无密钥通道登录
管理层和应用层之间的通信是通过SSH协议进行通信
关闭防火墙和禁用SELinux
service iptables stop
service iptables status
vim /etc/sysconfig/selinux 设置SELINUX=disabled
设置静态的IP地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改hostname
hostname hadoop-master
vi /etc/sysconfig/network
IP与hostname绑定
vi /etc/hosts
设置SSH登录
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
ssh localhost
然后yes,exit之后,再次
ssh localhost就不需要密码了
ssh centos
配置hadoop
进入HADOOP_HOME conf
core-site.xml
hdfs-site.xml
vim mapred-site.xml
vim slaves
vim masters
配置完了之后格式化操作
./hadoop namenode -format
启动
start-dfs.sh
2016-05-06 04:15:27,565 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namesp aceIDs in /home/yangxu/data/tmp/dfs/data: namenode namespaceID = 447595299; datanode namespaceID = 469319110
解决的办法:
1.进入每个datanode的 dfs.data.dir 的 current目录,修改里面的文件VERSION
#Fri Nov 23 15:00:17 CST 2012
namespaceID=246015542
storageID=DS-2085496284-192.168.1.244-50010-1353654017403
cTime=0
storageType=DATA_NODE
layoutVersion=-32
里面有个 namespaceID 将其修改成为报错信息中的
namenode namespaceID = 971169702
相同的 namespaceID .
然后重新启动 datanode全部都能正常启动了。
2.由于是测试环境,于是产生的第一个想法是 直接删除每个datanode 上面 dfs.data.dir目录下所有的文件
rm -rf *
删除之后
重新启动 也是可以正常的启动所有的datanode
进到dfs.data.dir目录下 所有的datanode又全部重新生成了。
最新文章
- 解决ugui中Image使用iTween的ColorTo、ColorFrom等不生效
- (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法
- 安卓3D游戏-神奇宝贝防御战
- React-Native测试报告
- java 动态编译
- “HTTPS”安全在哪里?
- PAT 解题报告 1009. Product of Polynomials (25)
- CSS - DOM 经常使用方法
- 【shell实例】定时21:00-21:05,循环调用DSQL脚本,其它时段自动退出
- js循环内0.5s停止
- 【Spring】Spring bean的实例化
- Javascript-可莱托指数判断
- JAVA面试-java虚拟机
- log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
- 转:Irrlicht 0.1引擎源码分析与研究(一)
- [转载]JDBC/Spring/MyBatis性能比较
- 配置静态IP
- 国内能用的NTP服务器及和标准源的偏差值
- Redis的一些结构
- Microsoft Windows XP SP3 官方原版镜像下载,绝对原版加系列号!
热门文章
- O(n)复杂度求没有出现的数字(leetcode448)
- iOS添加到购物车的简单动画效果
- 【LeetCode】13. Roman to Integer (2 solutions)
- WSDL格式
- List Set Map以及子接口用法总结(转)
- 配置Kafka集群和zookeeper集群
- python学习笔记—
- Workflow_标准控件Wait_For_Flow和Contiune_Flow的用法(案例)
- byte[] 转Hex String
- gulp#4.0