linux下hadoop与hive的单机开发配置

来源:互联网 发布:幸运牛抽奖软件注册码 编辑:程序博客网 时间:2024/05/29 07:46

今天尝试在虚拟机上配置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_25JRE_HOME=/usr/java/jdk1.7.0_25/jrePATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=.:$JAVA_HOME/lib/jt.jar.$JAVA_HOME/lib/tools.jar.$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

source在当前shell环境下执行上述文件 (source常用来执行重新执行该修改过的初始化文件)

[root@localhost ~]# source /etc/profile
   

   验证

[root@localhost ~]# java -versionjava version "1.7.0_25"


装完Java之后我们还要确认有没有安装sshd服务和ssh客户端工具,默认ssh已经安装,因此我们只要再安装一下rsync。
输入命令: 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]# lshadoop-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.4export HADOOP_CONF_DIR=/opt/hadoop/hadoop-1.0.4/confexport 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.outroot@localhost's password: localhost: starting datanode, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-datanode-localhost.outroot@localhost's password: localhost: starting secondarynamenode, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-secondarynamenode-localhost.outstarting jobtracker, logging to /opt/hadoop/hadoop-1.0.4/libexec/../logs/hadoop-root-jobtracker-localhost.outroot@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]# jps6160 SecondaryNameNode6048 DataNode6337 TaskTracker5922 NameNode6472 Jps6218 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;OKTime taken: 10.612 secondshive> 
四 将hive/bin路径添加到/etc/profile的$PATH中

 $PATH=.:/opt/hadoop/hive-0.10.0-bin/bin

这样在用户根目录也可以直接hive

[root@localhost ~]# hiveLogging initialized using configuration in jar:file:/opt/hadoop/hive-0.10.0-bin/lib/hive-common-0.10.0.jar!/hive-log4j.propertiesHive history file=/tmp/root/hive_job_log_root_201308220430_1536743314.txthive> 


ps:设置hadoop环境变量后 每次执行 hadoop 命令都会警告:

[root@localhost hadoop]# hadoopWarning: $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 ~]# hadoopUsage: hadoop [--config confdir] COMMANDwhere COMMAND is one of:
机理不明

参考链接:

http://wenku.baidu.com/view/ab7ca606f12d2af90242e68e.html


http://blog.csdn.net/shela_yin/article/details/7095401








原创粉丝点击