Centos6.5下的Hadoop安装

开始进行云计算部分的学习,为了存档,写下如今进行过的步骤java

须要用到的主要版本:node

虚拟机:Vmware Workstation pro 12.5linux

Linux系统:CentOS6.4 64bitweb

jdk版本:jdk1.8.0_111编程

hadoop版本:hadoop-2.5.2vim

全部的包都可以在官网下载centos

在这次搭建环境中,主要是搭建了一个主节点,两个从节点,hostname分别是master,slave1,slave2bash

地址设置为静态ip.图形化处理只须要改变右上角网络,网络

192.168.66.111 masterapp

192.168.66.112  slave1

192.168.66.113  slave2

1、Vmware Workstation+Centos6.5的安装

1.官网选择,安装版本12.5,输入序列号。

2.安装好虚拟机后,安装centos6.5版本的Linux系统。进行相关的环境设置。主要设置以下:

①须要将网络链接NAT,改为host-only模式,右键centos系统,进行编辑。

②将网络设置成静态IP,以便后来进行相关的编程。

③设置DNS解析:

  使用 vim /etc/sysconfig/network 命令,进行相关更改。  将HOSTNAME的变量给成master

  设置节点映射,vim /etc/hosts.在文本的最后一行追加内容:192.168.66.111 master

  验证配置,执行ping master,若是可以ping经过。则表示,这个配置正确。(须要保证网络连通)

同理,须要在其余节点设置相同。

这一步能够颠倒顺序,先配置单机,再配置集群。或者先配置集群在配置单机。只须要注意克隆的顺序便可。可是均须要在hosts文件中,添加节点IP

 

④关闭防火墙

  命令setup ,选择firewall configuration,回车,以后进入设置按键,将*中按空格,取消。而后保存退出。

  命令service iptables status 验证防火墙是否关闭,若是提示not running则表示已经关闭。——这一步须要在root权限下进行,不然会没有提示

⑤设置SSH自动登陆

  验证是否安装了SSH。命令 rpm -qa |grep ssh   若没有安装,则命令 yum install openssh-server

  配置SSH免密登陆(在这个过程花费了不少时间,在这里写出来):

         ssh-keygen -t rsa 如有提示信息,直接进行回车,最后生成.ssh文件, 进入密钥目录,~/.ssh,命令:cp id_rsa.pub anthorized_keys 这个命令会生成受权文件:authorized_keys,而后使用 ls 命令,进行查看。

         同时,命令  vi /etc/ssh/sshd_config   删除下列文字:

         

命令  service sshd restart   对其进行从新启动,以上的命令须要分别在三个机器中都实现

而后输入命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

                   ssh slave1 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

            ssh slave2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

咱们须要在ssh目录中查看是否已经配置完成,每一个主机上面的公钥和密钥都存放在一个文件夹中,这个很重要,会致使后面的配置是否须要密码。(注:全部的操做均在root权限下进行,也能够新建一个hadoop用户)

  cd ~/.ssh
  cat authorized_keys

       

scp authorized_keys root@slave1:/root/.ssh/

scp known_hosts root@slave1:/root/.ssh/

scp known_hosts root@slave2:/root/.ssh/

scp authorized_keys root@slave2:/root/.ssh/

须要将全部的文件拷贝到每一个须要配置的节点主机上。

  验证SSH无密码登陆:

执行命令   ssh slave1        后面不须要确认,若登陆了,须要用命令:exit 进行退出。  再次使用命令ssh slave1以后能够看到登陆信息。

2、JDK的安装

  安装jdk文件。

主要须要注意权限问题,以及目录问题。

主要命令是

1.改变文件的位置:mv,

2.用命令chmod 777 jdk-8u111-linux-x64.rpm修改文件权限,双击它就自动解压安装了,安装完成后,在/usr目录下产生一个新的 java 文件夹

3.设置环境变量

vi打开文件命令:vi /etc/profile

移至文件末尾插入一个空行:输入字母o

输入如下配置信息:(注:这里的分隔符是冒号不是分号)

JAVA_HOME=/usr/java/jdk1.8.0_111

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

先按Esc退出编辑模式,再保存退出输入 :wq ! (冒号也要输入)

至此,新的JDK环境设置完毕。

4.卸载原JDK

终端输入,查看gcj的版本号:rpm -qa|grep jdk

获得结果:

jdk-1.7.0_04-fcs.x86_64

java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64

终端输入,卸载:yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64

等待系统自动卸载,最终终端显示 Complete,卸载完成

5.让系统配置当即生效,不用重启系统

终端输入命令:source /etc/profile

6.验证是否安装无缺

输入命令java -version

 

注意:若是出现如下错误信息

      • bash: /usr/java/jdk1.7.0_04/lib/dt.jar: 权限不够
      • bash: /usr/java/jdk1.7.0_04/lib/tools.jar: 权限不够
  • 错误缘由:分隔符不能用;(分号),要用:(冒号)
  • CLASSPATH=.;$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
  • 这样写是不对滴,要这样写:
  • CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  • PATH = $PATH;$JAVA_HOME/bin;也同样,统统用冒号分隔。

 

3、安装Hadoop

 1.安装版本2.5.2版本,必定要下载rpm结尾的版本,进行相关的配置,也许其余也能够,可是没有找到配置文件

2.解压文件。命令:tar -xzvf 文件名

3.设置文件环境变量。 命令  vim /etc/profile    在文件的最后一行,命令 O 换行插入,增长如下内容:

export HADOOP_HOME=/usr/program/hadoop-2.5.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

   执行命令   source /etc/profile

4.验证Hadoop是否安装无缺。

  命令 hadoop version   若出现以下语句,则说明安装成功。

5.进行修改Hadoop的配置文件————有一点须要注意,Hadoop2.5.2与Hadoop1.0其余的版本不一样地方在于,2.5的配置文件都在etc/hadoop文件中,而1.0版本的Hadoop的配置文件是在conf中。同时,后面须要改进的的mapred-site.xml.template文件,就是原来的mapred-site.xml文件。其余的地方就是后面的包的位置不一样,之后用到的时候再说。

①.修改hadoop-env.sh及yarn-env.sh中的JAVA_HOME,与环境变量中的路径相同便可

②. cd /usr/program/hadoop-2.5.2/etc/hadoop

进入配置路径,进行文件的配置   文件的打开方式 均用vi ,cat查看。并且首先须要在hadoop-2.5.2文件下建立一个目录,tmp,hdfs/data,hdfs/name,用来存储临时文件数据,和计算路径

  core-site.xml 

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
  <description>The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.</description>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/program/hadoop-2.5.2/tmp</value>
  <description>A base for other temporary directories.</description>
</property>
<!-- i/o properties -->
<property>
  <name>io.file.buffer.size</name>
  <value>131072</value>
  <description>The size of buffer for use in sequence files.
  The size of this buffer should probably be a multiple of hardware
  page size (4096 on Intel x86), and it determines how much data is
  buffered during read and write operations.</description>
</property>
</configuration>

  hdfs-site.xml

<configuration>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/usr/program/hadoop-2.5.2/hdfs/name</value>
  <description>Determines where on the local filesystem the DFS name node
      should store the name table(fsimage).  If this is a comma-delimited list
      of directories then the name table is replicated in all of the
      directories, for redundancy. </description>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/usr/program/hadoop-2.5.2/hdfs/data</value>
  <description>Determines where on the local filesystem an DFS data node
  should store its blocks.  If this is a comma-delimited
  list of directories, then data will be stored in all named
  directories, typically on different devices.
  Directories that do not exist are ignored.
  </description>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>
<property>
  <name>dfs.blocksize</name>
  <value>134217728</value>
  <description>
      The default block size for new files, in bytes.
      You can use the following suffix (case insensitive):
      k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
      Or provide complete size in bytes (such as 134217728 for 128 MB).
  </description>
</property>
<property>
  <name>dfs.namenode.handler.count</name>
  <value>10</value>
  <description>The number of server threads for the namenode.</description>
</property>
</configuration>

  mapred-site.xml.template

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  <description>The runtime framework for executing MapReduce jobs.
  Can be one of local, classic or yarn.
  </description>
</property>
<!-- jobhistory properties -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>master:10020</value>
  <description>MapReduce JobHistory Server IPC host:port</description>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
  <description>MapReduce JobHistory Server Web UI host:port</description>
</property>
</configuration>

  yarn-site.xml

configuration>
<!-- Site specific YARN configuration properties -->
<property>
    <description>The hostname of the RM.</description>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>${yarn.resourcemanager.hostname}:8032</value>
    <description>The address of the applications manager interface in the RM.</description>
</property>
<property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>${yarn.resourcemanager.hostname}:8030</value>
  </property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>${yarn.resourcemanager.hostname}:8031</value>
  </property>
<property>
    <description>The address of the RM admin interface.</description>
    <name>yarn.resourcemanager.admin.address</name>
    <value>${yarn.resourcemanager.hostname}:8033</value>
  </property>
<property>
    <description>The http address of the RM web application.</description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>
<property>
    <description>The minimum allocation for every container request at the RM,
    in MBs. Memory requests lower than this won't take effect,
    and the specified value will get allocated at minimum.
        default is 1024
    </description>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>512</value>
  </property>
<property>
    <description>The maximum allocation for every container request at the RM,
    in MBs. Memory requests higher than this won't take effect,
    and will get capped to this value.
    default value is 8192</description>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>2048</value>
  </property>
<property>
    <description>Amount of physical memory, in MB, that can be allocated
    for containers.default value is 8192</description>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
  </property>
<property>
    <description>Whether to enable log aggregation. Log aggregation collects
      each container's logs and moves these logs onto a file-system, for e.g.
      HDFS, after the application completes. Users can configure the
      "yarn.nodemanager.remote-app-log-dir" and
      "yarn.nodemanager.remote-app-log-dir-suffix" properties to determine
      where these logs are moved to. Users can access the logs via the
      Application Timeline Server.
    </description>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
</configuration>

 vi slaves   编辑从节点,能够将主节点也做为从节点进行编辑。

    输入:master,slave1,slave2

 

在保存完全部的设置后,咱们须要一样配置其余从节点。能够硬复制,也能够将文件进行拷贝,从master到slave1,slave2

输入命令:scp -r  /usr/program/hadoop-2.5.2/etc/hadoop/  root@slave1:~/hadoop/hadoop-2.5.2/etc/

scp -r  /usr/program/hadoop-2.5.2/etc/hadoop/  root@slave2:~/hadoop/hadoop-2.5.2/etc/

scp -r  /etc/profile  root@slave1:/etc/profile

scp -r  /etc/profile  root@slave2:/etc/profile

完成状况以下所示:

        

全部的状况都已经配置完毕

如今首先须要对Hadoop进行系列的格式化:

hadoop namenode -format  格式化namenode,

 

start-dfs.sh

 

 

 

start-yarn.sh

 

成功搭建单机模式

 

Daemon Web Interface Notes
NameNode http://nn_host:port/ Default HTTP port is 50070.
ResourceManager http://rm_host:port/ Default HTTP port is 8088.
MapReduce JobHistory Server http://jhs_host:port/ Default HTTP port is 19888.

 

这样基本搭建已经完成,造成节点之间的链接。接下来开始配置hadoop和eclipse之间的联系,同时会解决遇到的困难。进行相关的配置问题