hadoop2.5.1安装到虚拟机
1.虚拟机安装
系统版本 RHEL6.3
2.虚拟机ip配置
采用 共享方式(nat) :
默认:
使用vmnet8 将虚拟机设置成使用dhcp方式上网,windows下选择"自动获取ip",linux下开启dhcp服务即可。
手动设置:
手动设置:
ip设置与vmnet8同网段,
网关设置成vmnet8的网关,
DNS服务器设置与主机相同,
实现虚拟机<--->主机虚拟机<---->互联网 通信。
网关设置成vmnet8的网关,
DNS服务器设置与主机相同,
实现虚拟机<--->主机虚拟机<---->互联网 通信。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
......
BOOTPROTO=static
ONBOOT="yes"
IPADDR=192.168.234.100 --设置为网关同ip段
NETMASK=255.255.255.0
GATEWAY=192.168.234.2-- vmnet8的网关
......
最后不要忘了设置DNS echo "nameserver 8.8.8.8" >> /etc/resolv.conf
重启reboot
设置好了就可以用SecureCRT查看了,并且能够ping通外网
yum源配置
查看文档 使用CentOS的yum源进行升级或软件安装
rpm -qa |grep yum | xargs rpm -e --nodeps 卸载rhel原有yum
安装yum软件包
1. #rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm 2. # rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
3. #rpm -ivh yum-3.2.29-30.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.3 0-14.el6.noarch.rpm
由于centos官网6.3版的不再更新且文件不存在,所以选用的是 centos官网 6.5版本的yum相关包
同时下载163的仓库, http://mirrors.163.com/.help/CentOS6-Base-163.repo 修改$releaseser为6.5
删除/etc/yum.repos.d/rhel-source.repo
使用centos-163.repo替换
安装rz+sz方便上传下载文件到本地
yum -y install lrzsz
传输所有的依赖文件到其他服务器
安装java,并配置环境变量
java -version 查看现有java版本
rpm -qa|grep java 查看java安装包
rpm -qa|grep java | xargs rpm -e --nodeps 卸载java安装包
vim /etc/profile 添加java环境变量配置
#set java path
JAVA_HOME=/usr/java/jdk1.7.0_45
JRE_HOME=/usr/java/jdk1.7.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
source /etc/profile 应用配置
其他机器使用相同配置
scp /etc/profile root@192.168.234.112:/etc/profile
配置host
192.168.234.114 namenode
192.168.234.111 datanode1
192.168.234.112 datanode2
192.168.234.113 datanode3
其他namenode和datanode配置一样
scp /etc/hosts root@192.168.234.112:/etc/hosts
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp到datanode
安装hadoop
tar -xvf dep/hadoop/hadoop-2.5.1.tar.gz
配置hadoop
/home/hadoop/hadoop-2.5.1/etc/hadoop中的slaves文件添加数据节点
datanode1
datanode2
datanode3
配置hostname
格式化namenode报错处理方法
/etc/sysconfig/network 中的hostname修改掉,并重启网络服务生效
service network restart
修改hostname的三种方式: http://www.cnblogs.com/yuechaotian/archive/2013/02/20/2918175.html
格式化文件系统
bin/hdfs namenode -format
http://192.168.234.114:50070/ 一定要记得关闭namenode的防火墙,否则访问不了
service iptables stop/status
但启动./start-dfs.sh一直会有个警告
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [namenode]
hadoop fs -mkdir /input命令报错
开启debug模式
export HADOOP_ROOT_LOGGER=DEBUG,console
可以看到是因为glibc版本太低的原因
有两种解决方法
1.在glibc2.12环境下重新编译hadoop
2.安装glibc2.14或以上版本
这里我采用第二种
升级glibc到2.14以上, 升级前 千万 不要卸载 glibc ,卸载后所有命令都失效了, 重启还报错
kernel panic - not attempted to kill init, 害得我只能重装系统了,又搞了半天
重装namenode之后, 从datanode传 hadoop 过去
格式化文件系统后重启,否则会找不到数据节点
1. 下载
glibc-2.15-60.el6.x86_64.rpm
glibc-common-2.15-60.el6.x86_64.rpm
安装
rpm -ivh glibc-2.15-60.el6.x86_64.rpm glibc-common-2.15-60.el6.x86_64.rpm --replacefiles
不加 --replacefiles会报文件冲突的错
重新运行./start-dfs.sh,不再报警了
hadoop fs -mkdir /input 创建文件夹
hadoop fs -ls / 展示文件列表
Hadoop报错:NoRouteToHostException: No route to host
关闭datanode数据节点的防火墙
测试mapreduce
创建文件夹input,创建测试文件test1,test2
mkdir input && cd input
echo "a b c d e" > test1
echo "a b c d f" > test2
hadoop fs -put input /
可以看到已经加入hdfs中
运行WordCount
cd /home/hadoop/hadoop-2.5.1/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /input /output
自己打的包
hadoop jar wordct.jar org.WordCount /input /output
hadoop fs -cat /output/part-r-00000
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!