Windows10下编译安装Hadoop2.6
网友 linuxidc

最终目的:实现Win7下,创建Ubuntu虚拟机搭建Hadoop多节点集群

1.当前pc环境

WindowS版本:Win7 专业版

处理器:Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz 

安装内存(RAM):4.00GB

系统类型:64bitOS

ip:192.168.1.110

2.软件准备

宿主机:Win7专业版

桌面虚拟机软件:产品VMware? Workstation 12 Pro;版本12.1.0 build-3272444; VMwareworkstation_full_12.1.0.2487.1453173744.exe

桌面linuxOS:版本ubuntu 14.04LTS ;         ubuntu-14.04.3-desktop-amd64.exe(64bit)

JDK :版本 1.8; jdk-8u73-linux-x64.tar.gz(64bit)    jdk装到虚拟机里面,所以是linux的jdk

Hadoop:版本2.6; hadoop-2.6.4.tar.gz

Eclipse:

集群配置:Ubuntu14(虚拟机名称)Master.Hadoop(hostname) 192.168.1.111(ip)

 Ubuntu14slave1(虚拟机名称)  Slaver1.Hadoop(hostname)192.168.1.112(ip)

3.安装配置起航

3.1  安装VMware Workstation

 安装流程可以参考 Windows 7下用VMware Workstation 10虚拟机安装 Ubuntu 14.04   http://www.linuxidc.com/Linux/2014-04/100473.htm

虚拟机软件安装的位置d:\Program Files(x86)\VMare\VMare Workstation\

   注意事项:安装出现是否更新和参与用户体验,去掉勾,不选;许可证秘钥自行百度;安装完毕打开在帮助里面可以查看版本之类的信息。

3.2  安装虚拟机并配置Ubuntu环境

安装流程可以参考 http://www.linuxidc.com/Linux/2016-09/135192.htm

本人虚拟机名称:Ubuntu14         虚拟机位置:d:\Ubuntu64

     Ubuntu14slave1     虚拟机位置:d:\Ubuntu14slave1

     两个用户名都相同,用户名 ysu  密码 123456

注意事项:客户机是linux,版本是ubuntu;网络类型很重要:我选的是桥接,Win7宿主机和两个虚拟机在一个网段里面。

网络类型三种区分参考:

虚拟机网络连接方搜索式是如何设置的。如VMWare虚拟机提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式,然后就知道答案了。

bridged(桥接模式)

 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。

host-only(主机模式)

 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

3.NAT(网络地址转换模式)

 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚 拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

经常提示软件更新,我们选择永不更新

3.3  修改虚拟机静态ip

参考 http://jingyan.baidu.com/article/b7001fe18f85fe0e7282ddaf.html

结果 Ubuntu14 ip192.168.1.111子网掩码 255.255.255.0 网关 192.168.1.1 DNS 202.206.240.12

Ubuntu14slave1 ip 192.168.1.112 子网掩码 255.255.255.0 网关 192.168.1.1DNS 202.206.240.12

使用 ifconfig查看结果

3.4  修改虚拟机主机名称和hosts文件

linux命令需要自行查阅,注意命令里面是否有空格

命令:鼠标左键空白区域,Ctrl+Alt+T  ,弹出终端

    sudo gedit /etc/hostname

    sudo gedit /etc/hosts

结果:

Ubuntu14 hostname 文件 Master.Hadoop  

hosts文件 127.0.0.1 localhost 192.168.1.111Master.Hadoop 192.168.1.112 Slaver1.Hadoop

Ubuntu14Slaver1 hostname 文件 Slaver1.Hadoop  

hosts文件 127.0.0.1 localhost 192.168.1.111 Master.Hadoop 192.168.1.112 Slaver1.Hadoop

使用ping 互相连通宿主机和虚拟机(会用到ctrl+c让ping停止)

3.5 虚拟机安装配置jdk

保证虚拟机能联网,打开ubuntu火狐浏览器,下载安装参考  Ubuntu安装JDK详解  http://www.linuxidc.com/Linux/2016-11/136958.htm

我的jdk安装目录 /usr/lib/jvm/jdk1.8.0_73

使用java-version查看jdk

3.6 SSH无密码登陆验证配置

安装ssh

命令:sudo apt-get install openssh-server

sudo apt-get install openssh-client

使用ssh version 查看ssh是否安装成功

生成无密码密钥对:id_rsa(私钥)id_rsa.pub(公钥),默认存储在/home/ysu(用户名)/.ssh目录下

命令:ssh-keygen -t rsa -P ''

使用ls 查看是否有这两个钥

把id_rsa.pub追加到授权的key里面去。

命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

使用root用户登陆修改ssh配置文件

命令:su //输入root密码切换到超级用户

gedit /etc/ssh/sshd_config

检查下面几行

PermitRootLogin yes(要改成yes)

RSAAuthentication yes # 启用 RSA 认证 (去掉最前面#)

PubkeyAuthentication yes # 启用公钥私钥配对认证方式(去掉最前面#)

AuthorizedKeysFile  %h/.ssh/authorized_keys # 公钥文件路径 (去掉最前面#)

重启ssh服务

/home/ysu/.ssh/ service ssh restart

使用exit 退出root登陆,验证ssh是否设置成功

ssh localhost

在测试有可能出现 Agent admitted failure to sign using the key

解决的办法: ssh-add ~/.ssh/id_rsa

将公钥传到远程主机上

命令:cd /home/ysu/.ssh

            ssh-copy-id  ysu@Slaver1.Hadoop//这里是Master传入Slaver1

    enter完后输入Slaver1.Hadoop密码

检测是否可以无密码登陆

命令:ssh Slaver1.Hadoop

结果   ysu@Master:~$变成ysu@Slaver1:~$

最后Slaver1机器也按照以上的步骤重复一遍

3.7 Hadoop安装配置

注意:Hadoop2.X版本跟1.X版本很多命令不一样,需要配置的文件也不一样。

保证虚拟机能联网,打开ubuntu火狐浏览器,下载Hadoop(默认下载到/home/ysu/下载目录里面)

root用户登陆将hadoop安装包移动到/usr目录下

cp /home/ysu/下载/hadoop-2.6.4.tar.gz /usr/

解压安装包

cd /usr/

tar -xzvf hadoop-2.6.4.tar.gz

重命名为hadoop

mv hadoop-2.6.4 hadoop

给ysu用户分配hadoop文件夹读权限

chown -R ysu:ysu hadoop

删除安装包

rm -rf  hadoop-2.6.4.tar.gz

本地文件系统创建一下文件夹

mkdir /usr/hadoop/tmp

mkdir /usr/hadoop/dfs/data

mkdir /usr/hadoop/name

修改 /etc/profile文件 添加hadoop路径

cd profile

sudo gedit /etc/profile

文件中

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=PATH:PATH:HADOOP_HOME/bin

配置7个文件 均在/usr/hadoop/etc/hadoop/

配置 hadoop-env.sh //修改JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_73

配置 yarn-env.sh//修改JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_73

配置slaves文件//增加slave节点

Slaver1.Hadoop

配置core-site.xml文件

<configuration>

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://Master.Hadoop:9000</value>

 </property>

 <property>

  <name>io.file.buffer.size</name>

  <value>131072</value>

 </property>

 <property>

  <name>hadoop.tmp.dir</name>

  <value>/usr/hadoop/tmp</value>

  <description>Abasefor other temporary directories.</description>

 </property>

 <property>

</configuration>

配置hdfs-site.xml//增加hdfs配置信息(namenode、datanode端口和目录位置)

<configuration>

 <property>

  <name>dfs.namenode.secondary.http-address</name>

  <value>Master.Hadoop:9001</value>

 </property>

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>/usr/hadoop/dfs/data</value>

 </property>

 <property>

  <name>dfs.datanode.data.dir</name>

  <value>/usr/hadoop/dfs/data</value>

  </property>

<property>

  <name>dfs.replication</name>

  <value>3</value>

 </property>

 <property>

  <name>dfs.webhdfs.enabled</name>

  <value>true</value>

 </property>

</configuration>

配置  mapred-site.xml 文件//增加mapreduce配置(使用yarn框架、jobhistory使用地址以及web地址)

注意/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,需要复制并重命名

cp mapred-site.xml.template mapred-site.xml

sudo gedit mapred-site.xml

<configuration>

  <property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.address</name>

  <value>Master.Hadoop:10020</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.webapp.address</name>

  <value>Master.Hadoop:19888</value>

 </property>

</configuration>

配置yarn-site.xml//增加yarn功能

<configuration>

  <property>

   <name>yarn.nodemanager.aux-services</name>

   <value>mapreduce_shuffle</value>

  </property>

  <property>

   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

   <value>org.apache.hadoop.mapred.ShuffleHandler</value>

  </property>

  <property>

   <name>yarn.resourcemanager.address</name>

   <value>Master.Hadoop:8032</value>

  </property>

  <property>

   <name>yarn.resourcemanager.scheduler.address</name>

   <value>Master.Hadoop:8030</value>

  </property>

  <property>

   <name>yarn.resourcemanager.resource-tracker.address</name>

   <value>Master.Hadoop:8031</value>

  </property>

  <property>

   <name>yarn.resourcemanager.admin.address</name>

   <value>Master.Hadoop:8033</value>

  </property>

  <property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>Master.Hadoop:8088</value>

  </property>

</configuration>

以上Master的hadoop配置完毕,配置salver的hadoop

把master下的hadoo文件夹传到salver即可

普通用户和root用户均可注意sudo 和su的区别

命令:scp -r /usr/hadoop root@Salver1.Hadoop:/usr/

给ysu用户分配hadoop文件夹读权限

chown -R ysu:ysu hadoop

修改 /etc/profile文件 添加hadoop路径

cd profile

sudo gedit /etc/profile

文件中

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=PATH:PATH:HADOOP_HOME/bin

这样slave的机器hadoop也配置好了

3.8 启动Hadoop

格式化HDFS

hdfs namenode -format

启动hadoop

/usr/hadoop/sbin/start-dfs.sh

/usr/hadoop/sbin/start-yarn.sh

3.9查看集群和进程

jps//jps命令

/usr/hadoop/bin/hdfs dfsadmin -report //查看集群 (结果没出来,有待修复)

火狐浏览器打开 

Master.Hadoop:50070

Master.Hadoop:8088(结果没出来,有待修复)

Slaver1.Hadoop:8042


CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢