zoukankan      html  css  js  c++  java
  • Impala 安装笔记1一Cloudera CDH4.3.0安装

      

      Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎,可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。

      Impala依赖CDH,依赖hive,hive依赖mysql做元数据存储数据库,所以需要在安装impala之前要检查环境,先安装他的Cloudera Impala Requirements。

    安装环境:

    OS:Red Hat Enterprise Linux Server release 6.3 (Santiago)

    内存:4G

    CPU:要支持SSE3扩展指令集(impala要求)

    Cloudera CDH4.3.0安装

      我部署的是hadoop-2.0.0-cdh4.3.0.tar.gz,下载地址为http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.3.0.tar.gz

    (在http://archive.cloudera.com/cdh4/cdh/4/下还可以下载到CDH hadoop生态圈内相关的包)。再准备一个jdk1.6+的java环境,设置好JAVA_HOME。

    需要注意的是,window下直接点击链接下载到的包可能无法解压成功,原因是包是放在linux ftp上的,直接下载会有问题。建议在linux机器上用wget命令下载就可以了。

      基础配置

      给集群配好 SSH;在hosts里可以准备好自己机器的名字。

      以下配置文件里就用该名称代替。单机就配置 localhost

      配置文件

      tar包的部署方式只要具备CDH4的包就可以了,其余步骤不需联网,只要配置好几个配置文件即可。我提供一份自己的配置,可以完全拷贝下来使用。进入到目录hadoop-2.0.0-cdh4.3.0/etc/hadoop下面,修改这几个文件:

      core-site.xml

     1 <configuration>
     2   <property>
     3     <name>fs.defaultFS</name>
     4     <value>hdfs://localhost:9000</value>
     5   </property>
     6   <property>
     7     <name>fs.trash.interval</name>
     8     <value>10080</value>
     9   </property>
    10   <property>
    11     <name>fs.trash.checkpoint.interval</name>
    12     <value>10080</value>
    13   </property>
    14 </configuration>

      hdfs-site.xml(后半部分是impala需要的配置

     1 <configuration>
     2   <property>
     3     <name>dfs.replication</name>
     4     <value>1</value>
     5   </property>
     6   <property>
     7     <name>hadoop.tmp.dir</name>
     8     <value>/home/godp/hadoop-2.0.0-cdh4.3.0/tmp</value>
     9   </property>
    10   <property>
    11     <name>dfs.namenode.http-address</name>
    12     <value>localhost:50070</value>
    13   </property>
    14   <property>
    15     <name>dfs.namenode.secondary.http-address</name>
    16     <value>localhost:50090</value>
    17   </property>
    18   <property>
    19     <name>dfs.webhdfs.enabled</name>
    20     <value>true</value>
    21   </property>
    22 <property>
    23 <name>dfs.block.local-path-access.user</name>
    24 <value>impala</value>
    25 </property>
    26 
    27 <property>
    28     <name>dfs.client.read.shortcircuit</name>
    29         <value>true</value>
    30         </property>
    31 
    32 <property>
    33     <name>dfs.domain.socket.path</name>
    34         <value>/var/run/hadoop-hdfs/dn._PORT</value>
    35         </property>
    36 <property>
    37     <name>dfs.client.file-block-storage-locations.timeout</name>
    38     <value>3000</value>
    39 </property>
    40 </configuration>

      yarn-site.xml

     1 <?xml version="1.0"?>
     2 <configuration>
     3 <!-- Site specific YARN configuration properties -->
     4   <property>
     5     <name>yarn.resourcemanager.resource-tracker.address</name>
     6     <value>localhost:8031</value>
     7   </property>
     8   <property>
     9     <name>yarn.resourcemanager.address</name>
    10     <value>localhost:8032</value>
    11   </property>
    12   <property>
    13     <name>yarn.resourcemanager.scheduler.address</name>
    14     <value>localhost:8030</value>
    15   </property>
    16   <property>
    17     <name>yarn.resourcemanager.admin.address</name>
    18     <value>localhost:8033</value>
    19   </property>
    20   <property>
    21     <name>yarn.resourcemanager.webapp.address</name>
    22     <value>localhost:8088</value>
    23   </property>
    24 <property>
    25     <description>Classpath for typical applications.</description>
    26     <name>yarn.application.classpath</name>
    27     <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,
    28     $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
    29     $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
    30     $YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*,
    31     $YARN_HOME/share/hadoop/mapreduce/*,$YARN_HOME/share/hadoop/mapreduce/lib/*
    32     </value>
    33   </property>
    34   <property>
    35     <name>yarn.nodemanager.aux-services</name>
    36     <value>mapreduce.shuffle</value>
    37   </property>
    38   <property>
    39     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    40     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    41   </property>
    42   <property>
    43     <name>yarn.nodemanager.local-dirs</name>
    44     <value>/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/local</value>
    45   </property>
    46 <property>
    47     <name>yarn.nodemanager.log-dirs</name>
    48     <value>/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/logs</value>
    49   </property>
    50   <property>
    51     <description>Where to aggregate logs</description>
    52     <name>yarn.nodemanager.remote-app-log-dir</name>
    53     <value>/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/logs</value>
    54   </property>
    55   <property>
    56     <name>yarn.app.mapreduce.am.staging-dir</name>
    57     <value>/home/godp/hadoop-2.0.0-cdh4.3.0</value>
    58 </property>
    59 </configuration>

      mapred-site.xml

     1 <?xml version="1.0"?>
     2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
     3 
     4 <!-- Put site-specific property overrides in this file. -->
     5 
     6 <configuration>
     7  <property>
     8    <name>mapreduce.framework.name</name>
     9    <value>yarn</value>
    10   </property>
    11   <property>
    12     <name>mapreduce.jobhistory.address</name>
    13     <value>localhost:10020</value>
    14   </property>
    15   <property>
    16     <name>mapreduce.jobhistory.webapp.address</name>
    17     <value>localhost:19888</value>
    18   </property>
    19 
    20 
    21 </configuration>

      最后在/etc/profile中添加环境变量,添加如下配置:

    export JAVA_HOME=/usr/lib/jvm/jdk7
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jar
    export HADOOP_HOME=/home/godp/hadoop-2.0.0-cdh4.3.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
    export HIVE_HOME=/home/godp/hive-0.9.0-cdh4.1.0
    export PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin

      source之使之生效。如果是分布式环境,然后把这台机器上的hadoop配置 scp到其他各台机器上。

      启动集群
      HADOOP_HOME/bin下,第一次格式化namenode

      hadoop namenode -format

    然后在namenode机器上逐个启动

    start-dfs.sh

    start-yarn.sh

    可以使用jps命令在各台机器上查看已经起来的进程和端口,在 namenode:8088/cluster 可以看集群情况。 datanode:8042/node 可以看到节点情况。

    启动dfs的时候无论成功或者失败,命令行都会显示输出的日志路径,如果需要查看详细信息或者某个datanode启动失败的时候,就去相应的路径下查看datanode对应的log,那里会有详细的出错信息,可以排错。我就是这么解决错误的。

    问题排查

    • 如果某几个节点没有起来,很可能是因为端口占用的问题,比如yarn启动的时候

    会使用8080端口,如果被占用,该datanode就起不了了,可以使用

    netstat -anp | grep 8080

    找到id,然后kill -9 xxx 掉。

    8080是默认的tomcat 的端口,所以装有tomcat类似应用web服务器的节点在此端口的占用上需要二者选其一,另一个需要改端口。

    • 另一个头疼一整天的问题,配置检查不出什么错误,但是一直是起不来hdfs,去

    日志里边找,提示错误:

      attempt_1389859916143_0002_m_000001_0, Status : FAILED

      Container launch failed for container_1389859916143_0002_01_000003 : java.lang.IllegalArgumentException: Does not contain a valid host:port authority: XX-XX-0.95:39561

      找不到有效的host:port在XXX:XXXX上,本能的以为是配置错了,端口问题,或者主机的配置问题。

      出错原因及解决办法:

      Hadoop的主机名不能既有“-”又有“.”,二者不能都在,否则无法解析主机名。

      修改掉主机名,重启ok。

      至此,如果没有问题了,可以上传hdfs文件,看hdfs是否成功可用。

      测试是否成功

      测试mapreduce任务是否可以被顺利执行,可以采用hadoop自带的example的jar包中的例子,这里有个小技巧:不需要每次测试新的环境都要上传新的wordcount的单词文件,我们只需要跑一个不需要输入文件的计算圆周率PI的例子程序就ok。

      这样默认采用10个随机点,10个map采用蒙特卡罗算法估算pi,一般可以估算到3.20左右,这个过程就可以验证你的集群环境是否配置成功了。

  • 相关阅读:
    Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署
    hadoop 2.x 安装包目录结构分析
    词聚类
    Hadoop 学习笔记 (十一) MapReduce 求平均成绩
    Hadoop 学习笔记 (十) MapReduce实现排序 全局变量
    Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法
    Visual Studio Code 快捷键大全(Windows)
    Eclipse安装教程 ——史上最详细安装Java &Python教程说明
    jquery操作select(取值,设置选中)
    $.ajax 中的contentType
  • 原文地址:https://www.cnblogs.com/chengyeliang/p/3548484.html
Copyright © 2011-2022 走看看