载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
hadoop与hive的搭建(修改篇)
[ 2011/2/21 19:40:00 | By: 梦翔儿 ]
 
今天总算把hadoop搭建起来了

1.生成ssh的密钥对(这个不细说)

2.解压hadoop的压缩包

Java代码
  1. cd hadoop/conf   
  2. vi hadoop-env.sh   
  3.   
  4. #在里面增加export JAVA_HOME=jdk路径,然后保存退出   
  5.   
  6. cd ~   
  7. vi .bash_profile   
  8. #在里面增加export HADOOP_HOME=hadoop的路径,然后保存退出   
  9. . .bash_profile   
  10.   
  11. vi /opt/hadoop-0.21.0/conf/core-site.xml   
  12. /*在里面增加  
  13.   <property>  
  14.     <name>fs.default.name</name>  
  15.     <value>hdfs://10.10.11.47:9000</value>  
  16.   </property>  
  17.   <property>  
  18.     <name>hadoop.tmp.dir</name>  
  19.     <value>/tmp/hadoop/hadoop-${user.name}</value>  
  20.   </property>  
  21. */  
  22.   
  23.   
  24. vi /opt/hadoop-0.21.0/conf/hdfs-site.xml    
  25. /*在里面增加  
  26.   <property>  
  27.     <name>dfs.replication</name>  
  28.     <value>1</value>  
  29.   </property>  
  30. */  
  31.   
  32. vi /opt/hadoop-0.21.0/conf/mapred-site.xml   
  33. /*在里面增加  
  34.   <property>  
  35.     <name>mapred.job.tracker</name>  
  36.     <value>10.10.11.47:9001</value>  
  37.   </property>  
  38. */  
  39.   
  40. vi masters    
  41. /*添加10.10.11.47 //因为47为主机*/  
  42.   
  43. vi slaves    
  44. /*添加10.10.11.26 //因为26为结点机*/  
  45.   
  46. 然后把整个hadoop项目复制给其他要集群的机器   
  47.   
  48. source /opt/hadoop-0.21.0/conf/hadoop-env.sh    
  49. /opt/hadoop-0.21.0/bin/hadoop namenode -format   
  50.   
  51. start-all.sh(停止用stop-all.sh)   
  52. #这里有地方要注意:如果你的ssh端口不是22,那么要修改这个文件conf/hadoop-env.sh,   
  53. #在里面增加export HADOOP_SSH_OPTS="-p 1234"  



另外在这搭建过程中,多次在cygwin上运行hadoop时碰到ClassNotFound: org.apache.hadoop.util.PlatformName 暂时还是不知道怎么解决,后来我直接放到linux上跑,却没发现有问题。

参考网址:http://tlyxy228.blog.163.com/blog/static/1810901201051823538148/
http://tlyxy228.blog.163.com/blog/static/18109012010520936180/
http://www.infoq.com/cn/articles/hadoop-config-tip

把文件put到hdfs文件系统后,用hadoop-mapred-examples-0.21.0.jar测试一下,运行下面的命令行
/opt/hadoop-0.21.0/bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount input output
input 和 ouput 都是hdfs文件系统中的目录,不是服务器上的目录,这个不要搞混了。
运行完后,bin/hadoop dfs -cat output/* //直接查看内容

显示结果
Java代码
  1. [resin17@blog2 hadoop-0.21.0]$ /opt/hadoop-0.21.0/bin/hadoop  dfs -cat output/*                                             
  2. DEPRECATED: Use of this script to execute hdfs command is deprecated.   
  3. Instead use the hdfs command for it.   
  4.   
  5. 10/09/16 18:39:05 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000  
  6. 10/09/16 18:39:05 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id   
  7. hello   1  
  8. world   1  



注意:
在这里可能会在put文件到hdfs文件系统时报一个异常:
could only be replicated to 0 nodes, instead of 1
这个异常主要是因为hdfs文件系统出现异常,解决方法是,先停止hadoop,然后hadoop namenode -format,最后所有的服务器都到hadoop.tmp.dir这里配置路径清除文件,再重启再put一次,基本上就没问题了。最后我想说的是有些人老是说防火墙问题,真的是防火墙问题吗,用脑想想再发表文章,不懂就不要乱抽风,浪费老子的时间。

各种异常处理方法的参考网址:http://wiki.apache.org/hadoop/HowToSetupYourDevelopmentEnvironment


===========================================================================
hive搭建
Java代码
  1. wget http://apache.etoak.com/hadoop/hive/hive-0.5.0/hive-0.5.0-bin.tar.gz   
  2. tar -zxvf hive-0.5.0-bin.tar.gz   
  3. cd hive-0.5.0/conf   
  4. cp hive-default.xml hive-site.xml   
  5.   
  6. vi bin/hive-config.sh   
  7. /*在里面添加  
  8. export HIVE_HOME=/home/iic/hive-0.5.0-bin  
  9. export HADOOP_HOME=/home/iic/hadoop-0.20.2  
  10. export JAVA_HOME=/home/bmb/jdk1.6.0_16*/  
  11. //保存退出,启动进入hive   
  12. /opt/hive-0.5.0-bin/bin/hive --auxpath   
  13. //输入show tables;控制台如果返回OK,表示启动成功;   
  14.   
  15. 启动web管理页面   
  16. bin/hive --service hwi   
  17. 然后再浏览器输入:http://xxxxx:9999/hwi/  


参考网址:http://genius-bai.javaeye.com/blog/643691
http://yymmiinngg.javaeye.com/blog/708230

注意 进入hive后进行查询 如果出现类似这样的异常
Java代码
  1. Caused by: java.lang.IllegalArgumentException: Wrong FS: hdfs://10.10.11.47:9000/tmp/hive-resin17/2045437652, expected: hdfs://img011.photo.bbapp.net:9000  

则需要修改hadoop/conf中的core-site.xml这个文件,把里面的hdfs://10.10.11.47:9000改为hdfs://img011.photo.bbapp.net:9000这样,然后到host设置img011.photo.bbapp.net

重新进入hive,再次查询,应该就没什么问题了


注意:hive.log到/tmp/当前linux账户名/hive.log查看
 
 
  • 标签:hadoop hive 
  • 发表评论:
    载入中。。。

     
     
     

    梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
    中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

    Powered by Oblog.