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. </configuration>

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

  1. export JAVA_HOME=/usr/lib/jvm/jdk7
  2. export JRE_HOME=$JAVA_HOME/jre
  3. export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jar
  4. export HADOOP_HOME=/home/godp/hadoop-2.0.0-cdh4.3.0
  5. export HADOOP_MAPRED_HOME=${HADOOP_HOME}
  6. export HADOOP_COMMON_HOME=${HADOOP_HOME}
  7. export HADOOP_HDFS_HOME=${HADOOP_HOME}
  8. export YARN_HOME=${HADOOP_HOME}
  9. export HADOOP_YARN_HOME=${HADOOP_HOME}
  10. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  11. export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  12. export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  13. export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin
  14. export HIVE_HOME=/home/godp/hive-0.9.0-cdh4.1.0
  15. 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左右,这个过程就可以验证你的集群环境是否配置成功了。

Impala 安装笔记1一Cloudera CDH4.3.0安装的更多相关文章

  1. SequoiaDB、SequoiaSQL、Cloudera Manager4.8.0、Cloudera CDH4.5 详细安装教程

    1安装SequoaiDB集群 1.1配置信任关系 以root用户执行下面的操作 1 执行命令 ssh-keygen 然后一直回车确定即可 2 每台机器都打开id_rsa.pub文件 vi ~/.ssh ...

  2. Libevent 学习笔记 (1)——Libevent 2.0安装与简单演示样例

    今天開始学习Libevent . Libevent 是开源社区的一款高性能I/O框架库. 主要特点有: 1 跨平台. 2 统一事件源 3 线程安全 4 基于Reactor 今天主要进行了Libeven ...

  3. SQL Server的安装笔记

    SQL安装笔记 安装SQL Server 2008 打开SQL Server 2008中的setup.exe,显示SQL安装程序的对话框. 提示必须安装相关组件Microsoft.NET Framew ...

  4. Vmware10.0 安装系统以及使用笔记

    1.安装教程参考 大致分为:vmware10.0安装-------建立虚拟机---------设置虚拟机---------启动虚拟机(IOS安装)---------安装系统---------安装vmt ...

  5. Impala 安装笔记3一impala安装

    安装impala之前,确认满足Cloudera Impala Requirements中要求的所有条件: Supported Operating Systems Supported CDH Versi ...

  6. Impala ODBC 安装笔记

    Impala在线文档介绍了 Impala ODBC接口安装和配置 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5 ...

  7. cloudera安装笔记

    Cloudera安装教程 教程1:http://blog.csdn.net/a921122/article/details/51939692教程2:http://www.6gdown.com/soft ...

  8. Cloudera Manager 4.6 安装部署hadoop CDH集群

    Cloudera Manager 4.6 安装详解 1. Cloudera Manager介绍 1.1. 功能介绍 Cloudera Manager是一个针对hadoop集群的管理工具,功能包括:cd ...

  9. CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群

    本文是在CentOS7.4 下进行CDH6集群的完全离线部署.CDH5集群与CDH6集群的部署区别比较大. 说明:本文内容所有操作都是在root用户下进行的. 文件下载 首先一些安装CDH6集群的必须 ...

随机推荐

  1. dedecms--数据库

    最近在用dedecms做项目,dedecms里面有数据库操作类,其实这个在实际项目中用起来还是很方便的. 1:引入common.inc.php文件 require_once (dirname(__FI ...

  2. 基于现有图像数据创建自定义像素格式的 BufferedImage

    在最近的一个项目中,需要实现 Mac OS X 环境下的摄像头图像实时捕获并转换为 Java 中的 BufferedImage 对象.首先通过开发一个本地库实现 Mac OS X 的摄像头图像捕获,采 ...

  3. 小程序-支持的最小像素px

    经过我手机多次测试,支持的最小px为: 8px;

  4. PAT 甲级 1087 All Roads Lead to Rome(SPFA+DP)

    题目链接 All Roads Lead to Rome 题目大意:求符合题意(三关键字)的最短路.并且算出路程最短的路径有几条. 思路:求最短路并不难,SPFA即可,关键是求总路程最短的路径条数. 我 ...

  5. FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length

    FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length FireDAC的 TF ...

  6. pycharm的todo和fixme标记,标志为今后再做和bug点

    使用方法,及查看方法: https://blog.csdn.net/xiemanR/article/details/73368440

  7. C#报错"线程间操作无效: 从不是创建控件“XXX”的线程访问它"--解决示例

    C# Winform程序中,使用线程对界面进行更新需要特殊处理,否则会出现异常“线程间操作无效: 从不是创建控件“taskView”的线程访问它.” 在网文“http://www.cnblogs.co ...

  8. Item 51:写new和delete时请遵循惯例

    Item 51: Adhere to convention when writing new and delete. Item 50介绍了怎样自己定义new和delete但没有解释你必须遵循的惯例. ...

  9. iOS开发UI篇—懒载入

    iOS开发UI篇-懒载入 1.懒载入基本 懒载入--也称为延迟载入,即在须要的时候才载入(效率低,占用内存小).所谓懒载入,写的是其get方法. 注意:假设是懒载入的话则一定要注意先推断是否已经有了. ...

  10. (一)MVVMLight安装

    http://www.cnblogs.com/manupstairs/p/4890300.html 1.首先新建一个wpf项目 2. 安装完成即可在我们的项目中看到如下引用: 如果点击安装的时候出现: ...