安装版本

centos版本为6。
hadoop各个组件和jdk版本如下:

  1. hadoop-2.0.0-cdh4.6.0
  2. hbase-0.94.15-cdh4.6.0
  3. hive-0.10.0-cdh4.6.0
  4. jdk1.6.0_38

hadoop各组件可以在这里下载。

安装前说明

  • 确定安装目录为/opt
  • 检查hosts文件是否设置集群各节点的hostname和ip映射
  • 关闭每个节点的防火墙
  • 设置每个节点时钟同步

    规划

    集群规划为3个节点,每个节点的ip、主机名和部署的组件分配如下: ``` 192.168.0.1 desktop1 NameNode、Hive、ResourceManager、impala 192.168.0.2 desktop2 SSNameNode 192.168.0.3 desktop3 DataNode、HBase、NodeManager、impala
  1. # 部署过程
  2. ## 系统和网络配置
  3. 1.
  4. 修改每个节点的主机名称
  5. <br />例如在desktop1节点上做如下修改:
  1. [root@desktop1 ~]# cat /etc/sysconfig/network
  2. NETWORKING=yes
  3. HOSTNAME=desktop1
  1. 2. 在每个节点上修改`/etc/hosts`增加以下内容:
  1. [root@desktop1 ~]# cat /etc/hosts
  2. 127.0.0.1 localhost
  3. 192.168.0.1 desktop1
  4. 192.168.0.2 desktop2
  1. 修改一台机器之后,可以使用scp同步到其他机器。
  2. 3. 配置ssh无密码登陆
  3. 以下是设置desktop1上可以无密码登陆到其他机器上。
  1. [root@desktop1 ~]# ssh-keygen
  2. [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop2
  3. [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop3
  1. 4. 每台机器上关闭防火墙:
  1. [root@desktop1 ~]# service iptables stop
  2. [root@desktop1 ~]# ssh desktop2 'service iptables stop'
  3. [root@desktop1 ~]# ssh desktop3 'service iptables stop'
  1. # 安装Hadoop
  2. ## 配置Hadoop
  3. jdk1.6.0_38.zip上传到/opt,并解压缩。<br />将hadoop-2.0.0-cdh4.2.0.zip上传到/opt,并解压缩。<br />**在NameNode上需要修改以下文件**:
  4. - core-site.xml fs.defaultFS指定NameNode文件系统,开启回收站功能。
  5. - hdfs-site.xml
  6. -

dfs.namenode.name.dir指定NameNode存储meta和editlog的目录,

  1. -

dfs.datanode.data.dir指定DataNode存储blocks的目录,

  1. -

dfs.namenode.secondary.http-address指定Secondary NameNode地址。

  1. -

开启WebHDFS。

  1. - slaves 添加DataNode节点主机
  2. **注意**:在desktop1节点上修改如下几个文件的内容:
  3. 1. core-site.xml
  4. 在该文件中修改fs.defaultFS指向desktop1节点,即配置desktop1NameNode节点。<br />修改后的core-site.xml(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/core-site.xml`)目录如下:

<?xml version=”1.0” encoding=”UTF-8”?> <?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>

fs.defaultFS hdfs://desktop1 fs.trash.interval 10080 fs.trash.checkpoint.interval 10080
  1. 2. hdfs-site.xml
  2. 该文件主要设置数据副本保存份数,以及namenodedatanode数据保存路径(`/opt/data/hadoop-${user.name}`)以及http-address。<br />修改后的hdfs-site.xml(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/hdfs-site.xml`)文件内容如下:

<?xml version=”1.0” encoding=”UTF-8”?> <?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>

dfs.replication 1 hadoop.tmp.dir /opt/data/hadoop-${user.name} dfs.namenode.http-address desktop1:50070 dfs.namenode.secondary.http-address desktop2:50090 dfs.webhdfs.enabled true
  1. 3. masters
  2. 设置namenodesecondary namenode节点。<br />修改后的masters(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/masters`)文件内容如下:

desktop1 desktop2

  1. 第一行为namenode,第二行为secondary namenode
  2. 4. slaves
  3. 设置哪些机器上安装datanode节点。<br />
  4. 修改后的slaves(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/slaves`)文件内容如下:

desktop3 desktop4 desktop5 desktop6 desktop7

  1. 接下来将上面几个文件同步到其他各个节点:
  1. [root@desktop1 ~]# scp /opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/ desktop2:/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/
  2. [root@desktop1 ~]# scp /opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/ desktop3:/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/
  1. ## 配置MapReduce
  2. 接下来还是在desktop1节点上修改以下几个文件:
  3. 1. mapred-site.xml
  4. 配置使用yarn计算框架,以及jobhistory的地址。<br />修改后的mapred-site.xml(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/mapred-site.xml`)文件内容如下:

<?xml version=”1.0”?> <?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>

mapreduce.framework.name yarn mapreduce.jobhistory.address desktop1:10020 mapreduce.jobhistory.webapp.address desktop1:19888
  1. 2. yarn-site.xml
  2. 主要配置resourcemanager地址以及`yarn.application.classpath`(这个路径很重要,要不然集成hive时候会提示找不到class)<br />修改后的yarn-site.xml(`/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/yarn-site.xml`)文件内容如下:

<?xml version=”1.0”?>

yarn.resourcemanager.resource-tracker.address desktop1:8031 yarn.resourcemanager.address desktop1:8032 yarn.resourcemanager.scheduler.address desktop1:8030 yarn.resourcemanager.admin.address desktop1:8033 yarn.resourcemanager.webapp.address desktop1:8088 Classpath for typical applications. yarn.application.classpath $HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/, $HADOOP_COMMON_HOME/share/hadoop/common/lib/, $HADOOP_HDFS_HOME/share/hadoop/hdfs/,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/, $YARN_HOME/share/hadoop/yarn/,$YARN_HOME/share/hadoop/yarn/lib/, $YARN_HOME/share/hadoop/mapreduce/,$YARN_HOME/share/hadoop/mapreduce/lib/ yarn.nodemanager.aux-services mapreduce.shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.nodemanager.local-dirs /opt/data/yarn/local yarn.nodemanager.log-dirs /opt/data/yarn/logs Where to aggregate logs yarn.nodemanager.remote-app-log-dir /opt/data/yarn/logs yarn.app.mapreduce.am.staging-dir /user
  1. 同样地,将上面2个文件同步到其他各个节点:
  1. [root@desktop1 ~]# scp /opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/ desktop2:/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/
  2. [root@desktop1 ~]# scp /opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/ desktop3:/opt/hadoop-2.0.0-cdh4.6.0/etc/hadoop/
  1. ## 修改环境变量
  2. 修改`/root/.bashrc`环境变量,并将其同步到其他几台机器

[root@desktop1 ~] # cat .bashrc

.bashrc

alias rm=’rm -i’ alias cp=’cp -i’ alias mv=’mv -i’

Source global definitions

if [ -f /etc/bashrc ]; then . /etc/bashrc fi

User specific environment and startup programs

export LANG=zh_CN.utf8 export JAVA_HOME=/opt/jdk1.6.0_38 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jar export HADOOP_HOME=/opt/hadoop-2.0.0-cdh4.2.0 export HIVE_HOME=/opt/hive-0.10.0-cdh4.2.0 export HBASE_HOME=/opt/hbase-0.94.2-cdh4.2.0 export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export YARN_HOME=${HADOOP_HOME} export HADOOP_YARN_HOME=${HADOOP_HOME} export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin

  1. 修改配置文件之后,使其生效。

[root@desktop1 ~]# source .bashrc

  1. 将该文件同步到其他各个节点:
  1. [root@desktop1 ~]# scp /root/.bashrc desktop2:/root
  2. [root@desktop1 ~]# scp /root/.bashrc desktop3:/root
  1. 并且使各个节点的环境变量生效:
  1. [root@desktop1 ~]# ssh desktop2 'source .bashrc'
  2. [root@desktop1 ~]# ssh desktop3 'source .bashrc'
  1. ## 启动脚本
  2. 第一次启动hadoop需要先格式化NameNode,该操作只做一次。当修改了配置文件时,需要重新格式化<br />在desktop1上格式化:

[root@desktop1 hadoop]hadoop namenode -format

  1. desktop1上启动hdfs

[root@desktop1 hadoop]#start-dfs.sh

  1. desktop1上启动mapreduce

[root@desktop1 hadoop]#start-yarn.sh

  1. desktop1上启动historyserver

[root@desktop1 hadoop]#mr-jobhistory-daemon.sh start historyserver

  1. 查看MapReduce

http://desktop1:8088/cluster

  1. 查看节点:

http://desktop2:8042/ http://desktop2:8042/node

  1. ## 检查集群进程

[root@desktop1 ~]# jps 5389 NameNode 5980 Jps 5710 ResourceManager 7032 JobHistoryServer [root@desktop2 ~]# jps 3187 Jps 3124 SecondaryNameNode [root@desktop3 ~]# jps 3187 Jps 3124 DataNode 5711 NodeManager

```

相关文章