jason0401 发表于 2016-12-6 09:18:55

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. 记得重启
页: [1]
查看完整版本: Hadoop(一)之Hadoop安装的坑爹经历