hadoop2.5.1安装到虚拟机

1.虚拟机安装
系统版本 RHEL6.3

2.虚拟机ip配置
采用 共享方式(nat) : 
默认:
使用vmnet8 将虚拟机设置成使用dhcp方式上网,windows下选择"自动获取ip",linux下开启dhcp服务便可。 
手动设置: 
ip设置与vmnet8同网段, 
网关设置成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 查看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替换

scp  centos-163.repo  root@192.168.234.112 :/etc/yum.repos.d/

安装rz+sz方便上传下载文件到本地
yum -y install lrzsz 

传输全部的依赖文件到其余服务器
scp -r dep   root@192.168.234.112 :/home/hadoop/

安装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

格式化文件系统
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
相关文章
相关标签/搜索