首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hadoop装配笔记

2013-01-27 
hadoop安装笔记环境准备:ESXi下的三台虚机ip:172.16.80.15/16/17os:centos 6.31cpu/2g内存/200G虚拟硬盘?

hadoop安装笔记

  • 环境准备:ESXi下的三台虚机ip:172.16.80.15/16/17os:centos 6.31cpu/2g内存/200G虚拟硬盘?
      配置hosts文件主机名及hosts设置172.16.80.15 设置主机名:hadoop1?172.16.80.16 设置主机名:hadoop2?172.16.80.17 设置主机名:hadoop3三台主机/etc/hosts文件增加以下内容172.16.80.15 ? ? ? ? hadoop1
      172.16.80.16 ? ? ? ? hadoop2
      172.16.80.17 ? ? ? ? hadoop3
      建立hadoop运行帐号三台主机分别执行如下命令groupadd hadoopuseradd -g hadoop -G root grid??配置ssh免密码连入

      ssh无密码互通

      1.确认ssh可以运行
      ?? 1.1. 修改sshd_config文件:vi /etc/ssh/sshd_config
      ?? 1.2. 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES
      ?? 1.3. 将#PermitRootLogin yes的注释去掉
      ?? 1.4. 重新启动SSH服务,命令为:/etc/init.d/sshd restart
      ?? 1.5. 验证SSH服务状态,命令为:/etc/init.d/sshd status
      ?
      2.更改互信节点的/etc/hosts文件

      ?? 2.1.打开hosts文件:vi /etc/hosts ,在其中一个节点上,如server1上将其他的server2,server3等节点的ip和hostname写上,如
      ????server1ip server1
      ????server2ip server2
      ????server3ip server3
      ????server4ip server4
      ? 2.2 所有需互信节点均添加ip地址主机名对应关系。

      3.设置server1
      ? 3.1 生成ssh密钥对:ssh-keygen -t rsa 一路回车即可.
      ? 3.2 查看是否有.ssh文件夹:ls -a?
      ? 3.3 进入.ssh目录:cd .ssh?
      ? 3.4 生成authorized_keys文件:cp id_rsa.pub authorized_keys??
      ? 3.5 建立本身的信任连接:ssh server1 输入yes 无需密码

      4.设置server2
      ? 7.1 生成ssh密钥对:ssh-keygen -t dsa (dsa与server1的rsa设置不要相同)?
      ?? 7.2 进入.ssh目录:cd .ssh
      ?? 7.3 生成authorized_keys文件:cp id_dsa.pub authorized_keys?
      ?? 7.4 建立本身的信任连接:ssh server2 输入yes 无需密码
      ????
      5.设置server3的方法与server1,server2相同

      6.关键步骤
      ?? 6.1 将server2,server3的authorized_keys内容追加至server1的authorized_keys文件中。
      ?? ?6.1.1 server2: cat authorized_keys 复制内容
      ?? ?6.1.2 server1: vi authorized_keys 在最末行添加复制。
      ????????? server3 同上述操作相同
      ?? 6.2 将以追加的文件authorized_keys覆盖server2,server3上的authorized_keys文件。
      ?? ?6.2.1 登陆server2:scp server1ip:/root/.ssh/authorized_keys /root/.ssh/authorized_keys
      ??6.2.2 登陆server3:scp server1ip:/root/.ssh/authorized_keys /root/.ssh/authorized_keys

      7.确认机器的信任连接已建立
      ? 7.1 对每台机器执行:ssh server1;ssh server2;ssh server3 在提示处输入yes回车。

      ?下载并解压hadoop安装?下载地址?http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gzwget?http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz下载tar -zxvf hadoop-0.20.2.tar.gzmv hadoop-0.20.2 hadoop?配置namenode,修改site文件修改core-site.xml
      <configuration><property>??????? <name>fs.default.name</name>??????? <value>hdfs://hadoop1:9000</value>??????? <final>true</final></property><property>??????? <name>hadoop.tmp.dir</name>??????? <value>/home/grid/hadoop/tmp</value>??????? <description>a base for other temporary directoryies</description></property>
      ?修改hdfs-site.xml
      <configuration>??? <property>???????? <name>dfs.name.dir</name>???????? <value>/home/grid/hdfs/name</value>???????? <final>true</final>??? </property>??? <property>???????? <name>dfs.data.dir</name>???????? <value>/home/grid/hdfs/data</value>???????? <final>true</final>??? </property>??? <property>??????? <name>dfs.replication</name>??????? <value>2</value>??????? <final>true</final>??? </property></configuration>
      修改mapred-site.xml
      <configuration>?? <property>?????? <name>mapred.job.tracker</name>?????? <value>hadoop1:9001</value>?????? <final>true</final>?? </property></configuration>?

      ??配置hadoop-env.sh?export JAVA_HOME=/etc/alternatives/jre #设置具体的java_home位置?配置masters和slaves文件masters?? ? ?hadoop1slaves? ? ?hadoop2? ? ?hadoop3?向各节点复制hadoop从hadoop1复制hadoop目录到hadoop2和hadoop3到相同的目录下scp -r hadoop grid@hadoop2:~scp -r hadoop grid@hadoop3:~?在每台服务器上修改profile文件,增加如下几行export JAVA_HOME=/etc/alternatives/jre
      export HADOOP_INSTALL=/home/grid/hadoop
      export PATH=$PATH:$HADOOP_INSTALL/bin?运行 source /etc/profileecho $HADOOP_INSTALL看是否正常显示设定的目录??格式化namenodehadoop namenode -format?启动hadoopstart-all.sh?用jps检验各后台进程是否成功启动jps是jdk下的一个命令,如果安装的是jre是没有这个命令测试hadoop dfs -put - input
      Hadoop Hadoop Good
      ^C[grid@hadoop1 hadoop]$ hadoop dfs -cat input
      Hadoop Hadoop Good
      [grid@hadoop1 hadoop]$ hadoop jar /home/grid/hadoop/hadoop-0.20.2-examples.jar wordcount input output?遇到的问题hadoop dfs -cat output/part-r-00000
      Good??? 1
      Hadoop? 2

      在运行hadoop dfs -put - input的时候遇 到如下问题:

      Hadoop:could only be replicated to 0 nodes, instead of 1

      在Hadoop的环境搭建过程中,常常会遇到类似这样的错误信息提示:“could only be replicated to 0 nodes, instead of 1?”,产生这样的错误原因有多种,这里列举出以下四种常用的解决方法以供参考:

        确保master(namenode) 、slaves(datanode)的防火墙已经关闭确保DFS空间的使用情况Hadoop默认的hadoop.tmp.dir的路径为/tmp/hadoop-${user.name},而有的linux系统的/tmp目录文件系统的类型往往是Hadoop不支持的。(?本人在Ubuntu 10.10下测试伪分布式时就遇到了这种情况?)先后启动namenode、datanode(本人没有碰到过这样的情况?)
        $hadoop-daemon.sh start namenode
        $hadoop-daemon.sh start datanode?

  • 热点排行