vmware ubuntu12.04 hadoop 完全分布式环境搭建记录(1)

来源:互联网 发布:知乎手机新注册不了 编辑:程序博客网 时间:2024/06/04 18:26

不能算原创,根据http://www.jb51.net/article/104427.htm 整理下自己的过程


1,前面装了三个虚拟机,一个master,两个slave,并配置桥模式,能够互相ping通,并能上网

2.,配置java环境

   下载jdk

    jdk-8u131-linux-x64.tar.gz

       http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 

       jdk1.8.0_131 linux 64bit

  创建java文件夹,sudo mkdir /usr/local/java

  拷贝下载的压缩包到这个路径下

  到这个文件夹下,解压压缩包  sudo tar xvf jdk-8u131-linux-x64.tar.gz

  解压完,下载的压缩包可以删除了

  修改环境变量 sudo gedit /etc/profile, 在打开的文件下面添加

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

 在控制台java -version 查看是否有版本信息,有即安装成功

 【多个用户共享java环境变量】 

    sudo chmod 777 /etc/profile

   sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_131/bin/java 300

   sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.8.0_131/bin/javac 300

  sudo update-alternatives --config java


3 配置SSH免密登录  参考上面链接,这里复制下命令以备自己使用,并增加补充说明,见红色

    在hadoop用户下执行

   保证虚拟机可以上网,安装ssh

   sudo  apt-get install ssh

   ls -a -l

   sudo mkdir .ssh

   sudo  chown -R hadoop .ssh

ssh-keygen -t rsa #这里是创建公钥和私钥

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #把公钥拷贝到公共认证文件

chmod 600 ~/.ssh/authorized_keys #修改权限

【补充】

  scp ~/.ssh/id_rsa.pub hadoop@slave1 #将master的公钥传到slave1上,后面再拷贝到slave1的公共认证文件中,当然也可以直接打开master的authorized_keys,手动拷贝到slave1/2的同名文件中

这里说明的是,把master的pubkey拷贝进slave1/2的authorized_keys里,master可以无密码登录到slave1/2

反过来把slave1/2的pubkey到拷贝到master的authorized_Keys中,slave1/2能无密码登录master

   

4. Hadoop安装

Hadoop分别从三个角度将主机划分为两种角色。第一,最基本的划分为Master和Slave,即主人和奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主任,而NameNode就是目录管理者);第三,从MapReduce角度,将主机划分为JobTracker和TaskTracker(一个Job经常被划分为多个Task,从这个角度不难理解它们之间的关系)。 【摘自上面链接】

步骤参考文章顶部转载链接

【补充】

  master slave1 slave2 最后把hadoop放置在相同的路径下,如都是hadoop@master:/下 ,因为我开始master上hadoop在home/hadoop/hadoop/hadoop-2.8.0,slave1/2是在home/hadoop/hadoop-2.8.0上,这样在执行start-all.sh时,slave1/2会根据master的路径找slave上的文件,找不到。不知道是不是我前面配置的问题,后来我把master上的路径调整成和slave一致,问题就解决了

原来连接中设置core-site.xml中设置hadoop重要文件放入/tmp中,这个如果在设备重启后,会被清空,所以这里不推荐用/tmp,可以放到其他路径下,设置完后要重新格式化namenode

hadoop 格式化的命令有两个:

老的:hadoop namenode -format

新的:hafs namenode -format

  启动命令也有多个:

 老的 start-all.sh

 新的 start-dfs.sh  和 start-yarn.sh

 查看启动成功和状态也可以用浏览器界面形式:

 http://192.168.124.130:50070 (HDFS管理界面)
 http://192.168.124.130:8088 (MR管理界面)

原创粉丝点击