今天尝试在虚拟机上配置hadoop与hive环境
linux系统为: CentOS-6.3 64位
jdk版本:jdk-7u25-linux-x64.rpm
hadoop版本: hadoop-1.0.4.tar.gz
hive版本:hive-0.10.0-bin
一 配置相关环境变量
[root@localhost ~]# vi /etc/profile
进入profile文件,添加如下代码
JAVA_HOME=/usr/java/jdk1.7.0_25
JRE_HOME=/usr/java/jdk1.7.0_25/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar.$JAVA_HOME/lib/tools.jar.$JRE_HOME/li
b
export JAVA_HOME JRE_HOME PATH CLASSPATH
用source在当前shell环境下执行上述文件 (source常用来执行重新执行该修改过的初始化文件)
[root@localhost ~]# source /etc/profile
验证
[root@localhost ~]# java -version
java version "1.7.0_25"
输入命令: yum install rsync
再确认可以用ssh免密码登录localhost
输入ssh localhost命令: ssh localhost
至此,第一步大功告成!
二 配置hadoop
先把hdoop的包放在/opt/hadoop文件夹下(linux中/opt文件夹常用来放第三方的安装软件)
解压hadoop
[root@localhost ~]# cd /opt
[root@localhost opt]# cd hadoop/
[root@localhost hadoop]# ls
hadoop-1.0.4.tar.gz
[root@localhost hadoop]# tar zxf hadoop-1.0.4.tar.gz
注:
tar zxf hadoop-1.0.4.tar.gz
可有四个参数
x : 从 tar 包中把文件提取出来
z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
v : 显示详细信息
f xxx.tar.gz : 指定被处理的文件是 xxx.tar.gz
进入解压后的文件夹,找到conf/hadoop-env.sh文件中
找到# export JAVA_HOME=/usr/lib/j2sdk1.5-sun 把前面的注释符号#去掉,等号后面的路径改为你的JDK所在的目录,如你的java可执行文件在/usr/bin/java,则写成(不要包含bin):
export JAVA_HOME=/usr
注意:如果不知道java在什么地方请用whereis java查询
# The java implementation to use. Required.
export JAVA_HOME=/usr
b.配置hadoop的单机集群模式(伪集群模式)
修改conf/core-site.xml,内容改为:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改conf/hdfs-site.xml,内容改为:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改conf/mapred-site.xml,内容改为:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
c 配置hadoop环境变量
在/etc/profile中添加
export HADOOP_HOME=/opt/hadoop/hadoop-1.0.4
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-1.0.4/conf
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin
[root@localhost usr]# source /etc/profile
d 初始化hadoop Namenode
[root@localhost hadoop-1.0.4]# bin/hadoop namenode -format
e 启动运行hadoop
执行:bin/start-all.sh
等到所有进程都执行后继续
注意:可以用jps命令看一下启动了哪些java进程:一般有以下几个进程TaskTracker,SecondaryNameNode,JobTracker,Jps,NameNode,DataNode
[root@localhost hadoop-1.0.4]# bin/start-all.sh
starting namenode, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-namenode-localhost.out
root@localhost's password:
localhost: starting datanode, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-datanode-localhost.out
root@localhost's password:
localhost: starting secondarynamenode, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-secondarynamenode-localhost.out
starting jobtracker, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-jobtracker-localhost.out
root@localhost's password:
localhost: starting tasktracker, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-tasktracker-localhost.out
[root@localhost hadoop-1.0.4]# jps
6160 SecondaryNameNode
6048 DataNode
6337 TaskTracker
5922 NameNode
6472 Jps
6218 JobTracker
至此,hadoop安装成功
三 配置hive
一、在HDFS中建立hive要用的目录
输入命令:
bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir /user/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse
二、解压Hive
tar zxf hive-0.8.0-bin.tar.gz
cd hive-0.8.0-bin
三、运行Hive
bin/hive
hive> show tables;
OK
Time taken: 10.612 seconds
hive>
四 将hive/bin路径添加到/etc/profile的$PATH中
$PATH=.:/opt/hadoop/hive-0.10.0-bin/bin
这样在用户根目录也可以直接hive
[root@localhost ~]# hive
Logging initialized using configuration in jar:file:/opt/hadoop/hive-0.10.0-bin/lib/hive-common-0.10.0.jar!/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_root_201308220430_1536743314.txt
hive>
ps:设置hadoop环境变量后 每次执行 hadoop 命令都会警告:
[root@localhost hadoop]# hadoop
Warning: $HADOOP_HOME is deprecated.
虽然不影响其他的,但是感觉很不爽
google后得知
“
Hadoop本身对HADOOP_HOME做了判断,具体在bin/hadoop和bin/hadoop-config.sh里。在hadoop-config.sh里有如下的配置:
Shell代码
if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && [ "$HADOOP_HOME" != "" ]; then
echo "Warning: \$HADOOP_HOME is deprecated." 1>&2
echo 1>&2
fi
对于这个警告问题,解决方法如下:
1.注释掉hadoop-config.sh里的上面给出的这段if fi配置(不推荐)
2.在当前用户home/.bash_profile里增加一个环境变量:
export HADOOP_HOME_WARN_SUPPRESS=1
注:修改完.bash_profile后需要执行source操作使其生效
摘自http://chenzhou123520.iteye.com/blog/1826002
”
对于第二种方法找不到root用户的.bash_profile文件,只能找到其他非根用户的(设置了无效)
后又google到:
“
添加 export HADOOP_HOME_WARN_SUPPRESS=TRUE 到 hadoop-env.sh 中
”
然后source 问题解决
[root@localhost ~]# hadoop
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
机理不明
参考链接:
http://wenku.baidu.com/view/ab7ca606f12d2af90242e68e.html
http://blog.csdn.net/shela_yin/article/details/7095401