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左右,这个过程就可以验证你的集群环境是否配置成功了。

  • 相关阅读:
    陶哲轩实分析 习题 7.1.5
    java程序员必知的 8大排序
    java抽象类
    公式解析器开源项目整理
    大并发处理解决方案
    让Java代码跑得更快
    Java基础知识 (扫盲)
    一道多线程题目的解决方案
    如何优化JAVA程序设计和编码,提高JAVA性能
    词法分析(NFA与DFA)
  • 原文地址:https://www.cnblogs.com/chengyeliang/p/3548484.html
Copyright © 2011-2022 走看看