设为首页 收藏本站
查看: 707|回复: 0

[经验分享] hadoop-1.0.3+hive-0.9.0+hbase-0.92.0单机伪分布式配置

[复制链接]

尚未签到

发表于 2015-7-12 12:49:33 | 显示全部楼层 |阅读模式
  这段时间已经被hadoop单机伪分布式集群配置折腾得体无完肤了,网上有各种单机集群的分布式配置方法介绍,但是照着做总是会出现这样或那样的问题。虽然道路十分曲折,但是苍天不负有心人,终于还是配置成功了。
  言归正传,我配置hadoop集群选用了以下组件:hadoop-1.0.3,hive-0.9.0,hbase-0.92.0,zookeeper-3.4.2,jdk-1.6.33。由于hive与hbase整合时,hive对hbase的版本有要求,所以我直接使用了hive-0.9.0要求的hbase0.92.0版本。当然也可以使用其他版本的hbase数据库,只是需要重新编译hive-hbase-handler-*.jar,我对这个不熟,所以贪了一个便宜,如果对重编译jar包熟悉的同志可以试试。其他的组建可以任选,但是为避免莫名奇妙的错误,最好还是选择与hive要求相近的版本,比如hadoop在1.0.0以上,jdk要求在1.6.0版本以上,有的地方直接使用了openjdk,之前试了一下,发现不行>_

  fs.default.name
  hdfs://localhost:9000
  HDFS's URI, file system://namenode ID:Port
  
  
  hadoop.tmp.dir
  /home/martin/hadoop-1.0.3/hadooptmp
  namenode上本地的hadoop临时文件夹
  

  2. 编辑文件/home/dota/hadoop/conf/hdfs-site.xml
  

  dfs.name.dir
  /home/martin/hadoop-1.0.3/hdfs/name
  namenode上存储hdfs名字空间元数据



  dfs.data.dir
  /home/martin/hadoop-1.0.3/hdsf/data
  datanode上数据块的物理存储位置



  dfs.replication
  1
  num of replication


3.编辑/home/martin/hadoop-1.0.3/conf/mapred-site.xml
  

  mapred.job.tracker
  localhost:9001
  jobtracker ID:Port, not URI


  mapred.local.dir
  /home/martin/hadoop-1.0.3/mapred/local
  tasktracker上执行mapreduce程序时的本地目录


  mapred.system.dir
  /tmp/hadoop/mapred/system
  这个是hdfs中的目录,存储执行mr程序时的共享文件


hadoop基本配置完成。在终端中键入hadoop-1.0.3/bin/hadoop namenode -format,没有出现错误提示则成功。
  启动hadoop集群,终端键入
  hadoop-1.0.3/bin/start-all.sh
  出现以下一些信息
  Warning: $HADOOP_HOME is deprecated.
  
starting namenode, logging to /home/martin/hadoop-1.0.3/logs/hadoop-martin-namenode-ubuntu.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting datanode, logging to /home/martin/hadoop-1.0.3/logs/hadoop-martin-datanode-ubuntu.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting secondarynamenode, logging to /home/martin/hadoop-1.0.3/logs/hadoop-martin-secondarynamenode-ubuntu.out
starting jobtracker, logging to /home/martin/hadoop-1.0.3/logs/hadoop-martin-jobtracker-ubuntu.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting tasktracker, logging to /home/martin/hadoop-1.0.3/logs/hadoop-martin-tasktracker-ubuntu.out
查看jps,则可见如下几项。
jpmartin@ubuntu:~$ jps
3452 Jps
3050 JobTracker
2956 SecondaryNameNode
3402 TaskTracker
2222 NameNode
2593 DataNode
使用hadoop前需要格式化namenome,在终端中输入
hadoop-1.0.3/bin/hadoop fs -put conf路径(这里是conf文件夹的路径,我的是/home/martin/hadoop-1.0.3/conf,最好给出绝对路径) input
hadoop-1.0.3/bin/hadoop fs -ls
如果没有出现错误提示,则表明成功了,否则查看配置是否有错。
3.ssh服务安装与配置
  在终端键入:
  sudo apt-get install openssh-server
  安装完成后,配置SSH无密码连接
  $ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
  $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  $chmod 400 ~/.ssh/authorized_keys
  输入ssh localhost后有如下内容:
  Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation:  https://help.ubuntu.com/
0 packages can be updated.
0 updates are security updates.
Last login: Fri Aug 24 11:14:20 2012 from localhost
表示ssh服务安装成功。
4.hbase安装与配置
  将hbase-0.92.0.tar.gz拷贝到主文件下,也就是hadoop-1.0.3的位置。在终端输入
  tar xzvf hbase-0.92.1.tar.gz
  此时会得到hbase-0.92.0的文件夹。打开hbase-0.92.0下的conf文件,配置hbase数据库
  打开hbase-env.sh文件,在末尾添加
  export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_33
export HBASE_HOME=/home/martin/hbase-0.92.0
export PATH=$PATH:/home/martin/hbase-0.92.0/bin
  打开hbase-site.xml文件,加入
  
  
    hbase.rootdir  
    file:///home/martin/hbase-0.92.0  


  
    hbase.cluster.distributed  
    true  

  
    hbase.zookeeper.quorum  
    localhost  

  
    zookeeper.session.timeout  
    60000  
  
  
    hbase.zookeeper.property.clientPort  
    2181  


  重启电脑,启动hbase服务,在终端键入
  hbase-0.92.0/bin/start-hbase.sh
  屏幕会出现
  martin@ubuntu:~$ hbase-0.92.0/bin/hbase shell
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.92.0, r1231986, Mon Jan 16 13:16:35 UTC 2012
hbase(main):001:0>

  查看hbase是否可用,可键入
  status
  屏幕出现
  1 servers, 0 dead, 4.0000 average load
这表明hbase数据库可用,继续进行。。。
  
5.zookeeper安装与配置
  下载zookeeper-3.4.2.tar.gz,这个软件包是hbase要求的版本号,为了避免莫名奇妙的错误,我尽量采用相关的版本号。特别说明一下,hive-0.9.0要求的zookeeper版本号是3.4.3,但是我使用的是3.4.2,不过也没有出错,也就没有管了。
  终端中键入
  tar xzvf zookeeper-3.4.2
  安装完成后,打开zookeeper-3.4.2文件夹下的conf文件夹,里面有3个文件,将zoo-sample.cfg更名为zookeeper.cfg,内容不做任何改动。
  
6.hive安装与配置
  下载hive-0.9.0.tar.gz,原本想使用hive-0.8.1的,结果0.8.1版本需要的hbase版本为0.8.9,找了半天都没有找到,最后就选择了0.9.0版本。
  在终端键入
  tar xzvf hive-0.9.0.tar.gz,同前一样,不做更名处理。打开hive-0.9.0下的conf文件夹,做如下配置:
  将conf中的hive-default.xml.sample以及hive.sh.sample改为hive-default.xml和hive-env.sh,并把hive-default.xml复制并重命名为hive-site.xml.
  在hive-env.sh最后添加
  export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_33
  export HIVE_HOME=/home/martin/hive-0.9.0
  export PATH=$PATH:/home/martin/hive-0.9.0/bin
  export HADOOP_HOME=/home/martin/hadoop-1.0.3
  打开hive-site.xml,在最后添加
  
hive.exec.scratchdir  
/home/martin/hive-0.9.0/tmp  

  
   
  
  hive.querylog.location  
  /home/martin/hive-0.9.0/logs  
  
   

  hive.aux.jars.path  
  file:///home/martin/hive-0.9.0/lib/hive-hbase-handler-0.9.0.jar,file:///home/martin/hive-0.9.0/lib/hbase-0.92.0.jar,file:///home/martin/hive-0.9.0/lib/zookeeper-3.4.2.jar      

  在终端键入
hive-0.9.0/bin/hive start
  出现一下信息
  martin@ubuntu:~$ hive-0.9.0/bin/hive start
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/martin/hive-0.9.0/lib/hive-common-0.9.0.jar!/hive-log4j.properties
Hive history file=/home/martin/hive-0.9.0/logs/hive_job_log_martin_201208271000_1268040863.txt
hive>
  键入show tables,可以查看hive中已有的数据表。
7.配置伪分布式
  删除hive-0.9.0/lib下原有的hbase-0.92.0.jar包,拷贝hbase-0.92.0下hbase-0.92.0.jar包到hadoop-1.0.3/lib和hive-0.9.0/lib下,将zoopeeker-3.4.2文件夹下的zookeeper-3.4.2拷贝到hive-0.9.0/lib和hbase-0.92.0/lib下,删除hbase-0.92.0/lib中原有的zookeeper-3.4.2.jar包和hive-0.9.0/lib下的zookeeper-3.4.3.jar包。并将hbase-0.92.0/conf/hbase-site.xml拷贝到hadoop-1.0.3/conf下。编辑/etc/hosts文件,将127.0.1.1所在行更改注释掉,另起一行,将刚刚注释的那行复制下来,去掉注释符,并将127.0.1.1修改为127.0.0.1,其他内容不用修改。
  按照如下顺序启动集群相关服务
  hadoop-1.0.3/bin/start-all.sh
  hbase-0.92.0/bin/start-hbase.sh
  hive-0.9.0/bin/hive start
  此时用jps查看可以得到如下信息
  4916 RunJar
3974 HMaster
9241 Jps
3050 JobTracker
2956 SecondaryNameNode
3402 TaskTracker
2222 NameNode
2593 DataNode
3893 HQuorumPeer
4310 HRegionServer
5370 Main
如果缺少某些服务,可能会使hive和hbase的整合不成功。注:启动hive后,不要急忙推出,否则可能看不到Runjar,Main服务。
  启动hive服务后,输入
  CREATE TABLE hbase_table_1(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "xyz");
如果没有报错,则hive和hbase的整合成功了。如果出现namenode in sage mode的提示,则使用
  hadoop-1.0.3/bin/hadoop dfsadmin -safemode leave
关闭安全模式,再使用就可以了
  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85844-1-1.html 上篇帖子: Hadoop阅读笔记(五)——重返Hadoop目录结构 下篇帖子: Solr + Hadoop = Big Data Love
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表