`

Hadoop(一)之Hadoop安装的坑爹经历

 
阅读更多

 hadoop2.6.0版本搭建伪分布式环境

 

   对于我这样没有接触过hadoop的人,而且linux又只懂得皮毛,搭建好这个环境真是搞懂一个概念

   还要难,还要久,尤其特别坑爹,愤懑~

   所以,我把我在安装配置过程中的一些坑爹过程,记录下来,一为以后,可能某一天又

   要重新安装,还有点东西可以参考,毕竟自己写的,容易理解,二者,希望那些遇到跟我一样的

   问题的同仁能够尽快解决!

  

   使用的软件:

   Ubuntu  10

   JDK1.8

   Hadoop2.6

 

   我配置的环境是伪分布式的集群环境

 

  坑爹的地方:

  1. JDK的安装:

     我按照网上的朋友的文章,下载JDK,然后在/etc/profile 或者 ~/.bashrc中

     添加环境变量 和 类路径!还是用惯了windows,对于linux这种一切以文件为

    核心,刚开始接触,还真有点犯迷糊,配置环境变量都没看懂!!

   (这里我觉有一点需要注意,把jdk放在/usr ,  /home这种一般用户就可以访问得到的,如果

    你放在/opt中,那么在你测试java-version 就只能是超级用户下才能访问,而一般用户下不能访问到

export JAVA_HOME=/usr/local/jdk1.8.0_45 
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 

      接下来,就是java-version 看jdk是否安装好了?

     马上问题就来,不是可以执行的二进制文件!!

     怎么回事?我用echo $PATH打印出环境变量,有这个环境变量啊!

     我在网上搜,有同学说是类路径,可是我的不是这样.....

     原因是JDK是64位 还是32位的!!! 所以,下载JDK时一定要看位数!

 

   2. 关于SSH登录

     1. 无法安装SSh

     这里也是一个蛋疼的地方,因为Ubutu并没有自己装这个东西~

     所以就会

ssh: connect to host localhost port 22: Connection refused

    那么你就得自己装啊:

  // 记得我这地方卡了好久,因为当我输入下面的命令时好像不是自动提示然后安装,而是出来一长串的那种依赖,

    当时也没认真看,以为是不能安装.... 所以又在网上转圈...

    细想一下,为什么会安装不了了,因为我的虚拟机是刚装的,很多东西还没有,那些依赖按照他下面的提示进行下载

    安装就可以了.....

sudo apt-get install ssh  // 这句话是正确的没有过时

    好的,SSh总算安装好了,那么就ssh loalhost

 

    2. 登录认证失败

    恩, 下面也出来提示了,我马上回车... 可是问题又来了:

Host key verification failed.

   按照网上的做法:

sudo  /etc/ssh/ssh_config

   然后将里面的StrictHostKeyChecking 改为no 并去掉"#"

   可是这样 并不是无密码登陆,每次ssh localhost 都要重新输入密码

   还是看官网的吧...

 $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

   那么接下来,

    ssh localhost 就不要输入密码了!

   至于为什么 ,我觉得这东西还是得用,慢慢的懂得东西多了,就能够串起来了!

 

   3.hadoop 环境变量的添加:

      这地方有个坑爹的,就是我添加去了,而且也source  /etc/profile

      可是echo $PATH 就是不显示,还必须重启!!

 

  4. 关于start-dfs.shell 的启动:

      1. 配置文件 (要在Hadoop-env.sh中添加JAVA_HOME)

       Core-site.xml

      

<property>
 // 注意这里官网上的名字
 // 不是这个好像是警告 还是不正确的配置
	<name>fs.defaultFS</name> 
        <value>hdfs://localhost:9000</value>
</property>
// 注意这里是两个property 不要写到一块去了
// 我就是这样...
<property>
        <name>hadoop.tmp.dir</name>
        <value>/var/lib/hadoop</value>
</property>	

   2  start-dfs.sh的权限问题

localhost: /usr/local/hadoop-2.6.0/sbin/hadoop-daemon.sh: line 178: /usr/local/hadoop-2.6.0/logs/hadoop-kainever-datanode-Linux.out: Permission denied

    解决办法:

    // 因为权限不过 logs 是属于 root 必须改变所有者

$ /usr/local/hadoop-2.6.0$ sudo chown -hR [用户名] . //这里一个点

 

 

   3格式化文件系统

hdfs namenode -format

    我就是手贱 格式化了两次 !

    然后接下来 start-dfs.shell 运行的时候

    界面上显示的跟网上的同学的一模一样啊,可是为什么

    我用jps去查看的时候就只有一个进程了......

    想不通 !.....

    最后,还是通过网上一个朋友的提醒,去看看hadoop的日志

    就是你安装文件夹里面有一个logs的文件夹,就在那里面!

    总算找到原因了!

java.io.IOException: All directories in dfs.datanode.data.dir are invalid: "/var/lib/hadoop/dfs/data/"

    // 就是因为我格式化了两次 ,所以果断把dfs给删了,再重新格式化一次...

    然后再start-dfs.shell

    总算有四个进程了.....

    

 

     总结:

       1. 首先看官网的做法

       2. 多看看日志

       3. 记得重启

  • 大小: 25.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics