由于本人笔记本配置太低,安装一个虚拟机就卡的一戳一戳的,,,,所以只能安装伪分布式的集群
真正解决问题的方法是日志,所以下次你再出问题的时候,请最先找到你的日志文件,他会告诉你,是哪里出错了,再去google,然后你就能自己解决问题了~~~
载录了这个人的博客
http://blog.csdn.net/licongcong_0224/article/details/12972889
1.hostname更改,修改etc/hosts
在终端输入hostname ,能打印出你设置的hostname就可以了
2.创建用户hadoop和hadoop用户组
3.设置local无密码登陆
一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以重新安装:
sodu apt-get install ssh
安装完成后会在~目录(当前用户主目录,即这里的/home/hduser)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh)。
具体步骤如下:
1、 进入.ssh文件夹
2、 ssh-keygen -t rsa 之后一路回 车(产生秘钥)
3、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)
4、 重启 SSH 服 务命令使其生效 :service sshd restart(这里RedHat下为sshdUbuntu下为ssh)
最后可以ssh localhost 无密码链接自己就可以了
Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src 源码自行编译(10楼评论中提供了一个解决方法链接)。
下载地址:http://apache.claz.org/hadoop/common/hadoop-2.2.0/
如下图所示,下载红色标记部分即可。如果要自行编译则下载src.tar.gz.
2.解压hadoop包,到自己的目录下面我的是在usr/local/hadoop/hadoop/,并且
chown -R hadoop:hadoop hadoop 将hadoop安装目录的所有权限更改为hadoop组的hadoop用户
3.设置etc/profile
HADOOP_HOME
JAV_HOME
PATH
CLASSPATH
4.配置hadoop,在解压之后的hadoop/etc目录下面
4.1 core-site.xml配置namenode和tmp目录
4.2 hadoop-env.sh配置java的路径
4.3 masters其实这里可以不配置,其实是指定secondenamenode
4.4 slaves 指定datanode和tasknode
由于是伪分布式,所以master和slaves都是localhost,如果是真的分布式,这里只想的主机是不一样的,可以和链接里面的博客对比
其余的配置文件默认就好了
4、启动验证
进入 ../hadoop/bin hadoop namenode -format 格式化hadfs
进入 ../hadoop/sbin start-all.sh 启动hdoop
最后 终端输入 jps
即完成了
也可以查看是否能访问到namnode的网页客户端和yarn的资源管理网页客户端
需要说明的是:hadoop2.2.0 的安装相隔礼拜了,所有也许有点出路哦,,希望能同时参考其他人的博客进行安装
接下来是hive1.2.0
参考网址http://blog.csdn.net/dhtz123456/article/details/12942679
1. 安装MySQL
yum install mysql-server mysql-client
1). 建立数据库hive,并设定为latin1编码,否则出错
create database hive default character set latin1;
create database hive default character set latin1;
2). 创建用户hive
create user 'hive'@'%' identified by 'hive';
这里我 用的是 create user 'hive'@'localhost' identified by 'hive';
因为我用第一个的时候报了一个错:
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClientFAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
查看日志:hive的日志默认是在 、.tmp/用户/hive.log
Caused by: javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'localhost '(using password: YES)
NestedThrowables:
这里建议都做一遍
3).创建hive用户,并授权
grant all on hive.* to hive@'localhost' identified by 'hive';
flush privileges;
1). 官网下载hive安装包,并解压。
2).hive配置信息,(hive仅需要在master节点配置即可)
[plain] view plain copy print ?
bin/hive-config.sh (可以设置 .profile 文件来略过这步)
export JAVA_HOME=/usr/java
export HIVE_HOME=/home/hadoop/hive-0.11.0
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
bin/hive-config.sh (可以设置 .profile 文件来略过这步)
export JAVA_HOME=/usr/java
export HIVE_HOME=/home/hadoop/hive-0.11.0
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
3. 添加环境变量etc/profile
[html] view plain copy print ?
export HIVE_HOME=/home/hadoop/hive-0.11.0
export PATH=$HIVE_HOME/bin:$PATH
1). 官网下载hive安装包,并解压。
2).hive配置信息,(hive仅需要在master节点配置即可)
bin/hive-config.sh (可以设置 .profile 文件来略过这步)
export JAVA_HOME=/
export HIVE_HOME=/
export HADOOP_HOME=/
3. 添加环境变量etc/profile
export HIVE_HOME=/
export PATH=
4. 修改hive-site.xml文件
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string FOR a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name FOR a JDBC metastore</description> </property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username TOUSE against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password TOUSE against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string FOR a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name FOR a JDBC metastore</description> </property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username TOUSE against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password TOUSE against metastore database</description>
</property>
5. MySQL 驱动包
下载mysql-connector-java-5.1.27-bin.jar文件,并放到$HIVE_HOME/lib目录下
这里用自己对应版本的链接包就好了,不要用旧包
6. 启动Hive
•命令行键入 hive
•显示
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/home/test/Desktop/hive-0.8.1/lib/hive-common-0.8.1.jar!/hive-log4j.properties
Hive history file=/tmp/test/hive_job_log_test_201208260529_167273830.txt
hive>
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/home/test/Desktop/hive-0.8.1/lib/hive-common-0.8.1.jar!/hive-log4j.properties
Hive history file=/tmp/test/hive_job_log_test_201208260529_167273830.txt
hive>
测试语句
•建立测试表test
•create table test (key string);
•show tables;
遇到的错误
hive>show tables;出现hive :MetaException(message:Version information not found in metastore. )错误。最后将hive-site.xml 里面 hive.metastore.schema.verification 的值改为 false后,就没出现错误了。
好吧,写的比较凌乱,希望下次我能看懂
PS:dataNode 无法启动是配置过程中最常见的问题,主要原因是多次format namenode 造成namenode 和datanode的clusterID不一致。建议查看datanode上面的log信息。解决办法:修改每一个datanode上面的CID(位于dfs/data/current/VERSION文件夹中)使两者一致。
1. clusterID不一致,namenode的cid和datanode的cid不一致,导致的原因是对namenode进行format的之后,datanode不会进行format,所以datanode里面的cid还是和format之前namenode的cid一样,解决办法是删除datanode里面的dfs.datanode.data.dir目录和tmp目录,然后再启动start-dfs.sh
2.即使删除iptables之后,仍然报Datanode denied communication with namenode: DatanodeRegistration错误,参考文章http://stackoverflow.com/questions/17082789/cdh4-3exception-from-the-logs-after-start-dfs-sh-datanode-and-namenode-star,可以知道需要把集群里面每个houst对应的ip写入/etc/hosts文件就能解决问题。