博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Impala 安装笔记1一Cloudera CDH4.3.0安装
阅读量:5015 次
发布时间:2019-06-12

本文共 7142 字,大约阅读时间需要 23 分钟。

  

  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/下还可以下载到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 
2
3
fs.defaultFS
4
hdfs://localhost:9000
5
6
7
fs.trash.interval
8
10080
9
10
11
fs.trash.checkpoint.interval
12
10080
13
14

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

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

  yarn-site.xml

1 
2
3
4
5
yarn.resourcemanager.resource-tracker.address
6
localhost:8031
7
8
9
yarn.resourcemanager.address
10
localhost:8032
11
12
13
yarn.resourcemanager.scheduler.address
14
localhost:8030
15
16
17
yarn.resourcemanager.admin.address
18
localhost:8033
19
20
21
yarn.resourcemanager.webapp.address
22
localhost:8088
23
24
25
Classpath for typical applications.
26
yarn.application.classpath
27
$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
33
34
35
yarn.nodemanager.aux-services
36
mapreduce.shuffle
37
38
39
yarn.nodemanager.aux-services.mapreduce.shuffle.class
40
org.apache.hadoop.mapred.ShuffleHandler
41
42
43
yarn.nodemanager.local-dirs
44
/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/local
45
46
47
yarn.nodemanager.log-dirs
48
/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/logs
49
50
51
Where to aggregate logs
52
yarn.nodemanager.remote-app-log-dir
53
/home/godp/hadoop-2.0.0-cdh4.3.0/yarn/logs
54
55
56
yarn.app.mapreduce.am.staging-dir
57
/home/godp/hadoop-2.0.0-cdh4.3.0
58
59

  mapred-site.xml

1 
2
3 4
5 6
7
8
mapreduce.framework.name
9
yarn
10
11
12
mapreduce.jobhistory.address
13
localhost:10020
14
15
16
mapreduce.jobhistory.webapp.address
17
localhost:19888
18
19 20 21

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

export JAVA_HOME=/usr/lib/jvm/jdk7export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jarexport HADOOP_HOME=/home/godp/hadoop-2.0.0-cdh4.3.0export 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/hadoopexport HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbinexport HIVE_HOME=/home/godp/hive-0.9.0-cdh4.1.0export 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左右,这个过程就可以验证你的集群环境是否配置成功了。

转载于:https://www.cnblogs.com/chengyeliang/p/3548484.html

你可能感兴趣的文章
utf_8 to unicode to gbk(p2)
查看>>
关于输入价格问题,即输入数字大于0的数字
查看>>
资料--Linux开发
查看>>
Redis 集群的部署及原理
查看>>
Hook SSDT中NtCreateProcessEx
查看>>
pods 报错There may only be up to 1 unique SWIFT_VERSION per target
查看>>
用Kotlin开发Android应用(I):介绍
查看>>
Quartz Cron 触发器 Cron Expression 的格式
查看>>
data目录和binlog目录搬迁的方法
查看>>
jQuery ajax()使用serialize()提交form数据到后台
查看>>
最小生成树Prim poj1258 poj2485 poj1789
查看>>
testng.xml说明文档(TestNG基本模板、TestNG中配置按顺序执行Case、TestNG中配置组合测试)...
查看>>
CoreData
查看>>
SQLServer 存储过程简介与使用方法
查看>>
ASP连接11种数据库的语法
查看>>
js简单时间比较的方法(转)
查看>>
通过JSP+servlet实现文件上传功能
查看>>
PAT Basic 1034
查看>>
POJ1573——Robot Motion
查看>>
小程序开发--API之登录授权逻辑
查看>>