hadoop2.5.1安装到虚拟机
                 jopen
                 11年前
            
                    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 
   
 
