当前位置: 主页 > 服务器技术 > 其他技术 > Hadoop、hive环境搭建详解

Hadoop、hive环境搭建详解

时间:2012-9-9来源:互联网 点击:

一、    Hadoop环境搭建

     首先在Apache官网下载hadoop的包hadoop-0.20.2.tar.gz。

      解压hadoop-0.20.2.tar.gz包,具体命令如下:

      tar zxvf hadoop-0.20.2.tar.gz

      其中要注意的是,tar 包用xvf ,gz包用zxvf。

在安装中,如果遇到识别问题,或者无法解压,很有可能是权限问题,解决方案是修改此文件的使用权限,命令如下:

      chmod 777 hadoop-0.20.2.tar.gz

      其中,777为所有权限。

      如果依然报错,如:Archive contains obsolescent base-64 headers;Error exit delayed from previous errors。

      这种情况,一般是压缩包损坏的问题。因为大多数人会将包下载到windows环境,再通过ftp等方法上传到Linux环境。容易产生包损坏。建议大家直接下载到Linux即可。具体命令如下:

wget  http://labs.renren.com/apache-mirror/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz

 直接下载到当前目录。

 当文件准备好之后,我们要修改配置,将Hadoop 简单run起来。

首先,我们进入hadoop-0.20.2/conf目录当中,其中会存在如下配置文件:

 首先修改masters和slaves,这个是指定我们的m和s的ip地址,这里我们就以单台机器为例子,在文件中直接输入当前机器的IP。

 之后我们修改mapred-site.xml文件,具体配置如下

 Xml代码

1. <span style="font-size: medium;"><?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>mapred.job.tracker</name> 

   9.         <value>hdfs://192.168.216.57:8012</value> 

  10.         <description>The host and port that the MapReduce job tracker runs 

  11.             at. If "local", then jobs are run in-process as a single map 

  12.             and reduce task. 

  13.             Pass in the jobtracker hostname via the 

  14.             -Dhadoop.jobtracker=JOBTRACKER_HOST java option. 

  15.         </description> 

  16.     </property> 

  17. </configuration></span> 

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

        <name>mapred.job.tracker</name>

        <value>hdfs://192.168.216.57:8012</value>

        <description>The host and port that the MapReduce job tracker runs

            at. If "local", then jobs are run in-process as a single map

            and reduce task.

            Pass in the jobtracker hostname via the

            -Dhadoop.jobtracker=JOBTRACKER_HOST java option.

        </description>

    </property>

</configuration>

 

 

      job.tracker是关键,mapReduce会将一个job,通过map(),打散为n个task。

      之后是对文件core-site.xml的配置,详细配置如下:

Xml代码

 

   1. <span style="font-size: medium;"><?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.  

   8.         <property> 

   9.                 <name>fs.default.name</name> 

  10.                 <value>hdfs://cap216057.sqa:9000</value> 

  11.         </property> 

  12.         <property> 

  13.                 <name>hadoop.tmp.dir</name> 

  14.                 <value>/home/admin/tmp/</value> 

  15.                 <description>A base for other temporary directories. Set to a 

  16.                         directory off of the user‘s home directory for the simple test. 

  17.                 </description> 

  18.         </property> 

  19.  

  20. </configuration></span> 

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

 

        <property>

                <name>fs.default.name</name>

                <value>hdfs://cap216057.sqa:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/home/admin/tmp/</value>

                <description>A base for other temporary directories. Set to a

                        directory off of the user‘s home directory for the simple test.

                </description>

        </property>

 

</configuration>

 

 

      这个主要是配置我们的文件系统。其中,fs.default.name的value,不可以写IP地址,要写域名。域名的查询,具体命令如下:

     

  cd  ~

  cd etc

vi hosts

 在hosts文件中,找到自己IP对应的域名。

 到此,Hadoop本身的配置就算完成了。但hadoop会在master/slaves之间进行文件的操作,在机器之间操作时候,就必须做到免登陆。对此,我们就得设置相应的公钥私钥。

具体命令如下:

  ssh-keygen -t rsa -P ‘‘

      -P表示密码,-P ‘‘ 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。它在/~ 下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

       如果是多台机器,则需要将公钥id-rsa.pub通过scp到其他机器的相同目录。

       之后,追加公钥到相应文件,具体如下:

       cat id_rsa.pub >> .ssh/authorized_keys

       chmod 600 .ssh/authorized_keys

       其中,authorized_keys要的权限是600

 

第一次登录是时要你输入yes,之后就不用了。

 OK,所有均搞定了,进入hadoop-0.20.2/bin路径,直接执行start-all.sh脚本,即可启动Hadoop的服务了。

我们可以通过web的方式,对Hadoop的运转进行监控,具体url如下:

控制台:http://cap216057.sqa:50030/jobtracker.jsp

数据节点:http://cap216057.sqa:50070/dfshealth.jsp

cap216057.sqa可以再hosts里配置,或者直接访问IP地址。

 二、    Hive搭建

Hive搭建在Hadoop的基础之上,相对就会简单很多。只需要设置Hadoop的HADOOP_HOME和HIVE_HOME即可了。

首先下载、解压,此操作与商品Hadoop的操作一样。值得注意的是,Apache的官网上会提供bin和dev两种版本的压缩包。建议使用bin版本。

完成之后,如下操作:

export HADOOP_HOME=/home/admin/hadoop-0.20.0/

export HIVE_HOME=/home/admin/hive-0.5.0-bin

 完成命令,直接在hive/bin目录下启动hive,启动端口任意写一个未被占用的即可。/hive --service hiveserver  10000 &

  三、    测试

 在hive/bin目录下,输入./hive,进入hive命令的控制台。执行hql,就是hive的sql具体如下:

create tables user(id,int);

show tables;

 

站长资讯网
. TAG: Hadoop Hive
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言