通过VMware建立hadoop集群

按以下步骤配置Hadoop-2.xx 集群。

一、安装单台虚拟机

1.安装VMware

直接默认安装即可,序列号百度。软件链接

2.安装ubuntu

安装系统

新建虚拟机->典型->安装程序光盘镜像(选择刚下载的系统盘)->填写用户名密码(这里我的linux名是cloud01,用户名是hduser)->默认到完成。系统盘链接(也可以换成其他linux发行版)

安装VM Ware tools
- 1. 点击菜单“虚拟机”->设备安装VM Ware tools
- 2. 将vmware-tools-distrib提取到主文件夹
- 3. 终端执行sudo vmware-tools-distrib/vmware-install.pl

3.安装jdk

    1. 下载jdk,解压到/user/java目录下 jdk
$ cd software
$ sudo cp jdk-7u51-linux-i586.tar.gz /usr/java
$ cd /usr/java
$ sudo tar -zxvf jdk-7u51-linux-i586.tar.gz
$ sudo rm jdk-7u51-linux-i586.tar.gz
    1. 配置环境变量
$ sudo gedit /etc/profile

在末尾追加

export JAVA_HOME=/usr/java/jdk1.7.0_51
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
    1. 测试jdk配置是否正确
$ java -version
$ javac -version

如果出现版本号,则说明配置正确。否则,再配置一次。

4.安装hadoop

    1. 将下载的hadoop压缩包,解压缩到用户主目录下 hadoop2.2
    1. 配置环境变量
$ sudo gedit /etc/profile
export HADOOP_HOME=/home/hduser/hadoop-2.2.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    1. 测试Hadoop配置是否正确
$ hadoop version

如果出现hadoop的版本号,说明配置正确。

5.修改hadoop配置文件参数

位于$HADOOP_HOME/etc/hadoop/下

# 文件hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_51
# 文件core-site.xml添加至<configuration>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://cloud01:9000</value>
</property>
<property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hduser/hddata/tmp</value>
</property>
# 文件hdfs-site.xml 添加至<configuration>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>cloud01:9001</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hduser/hddata/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hduser/hddata/dfs/data</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
# 文件mapred-site.xml:(只有模板文件,拷贝一份,改名为mapred-site.xml)
$ cp mapred-site.xml.template mapred-site.xml
# 配置内容如下 添加至<configuration><property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>cloud01:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>cloud01:19888</value>
</property>
# 文件yarn-site.xml 添加至<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>

6.建立公共文件夹

在cloud01 的主文件夹下(/home/hduser/),已经创建了以下三个文件夹:

~/hddata/dfs/name
~/hddata/dfs/data
~/hdata/tmp

二、集群配置-网络和机器名

1.克隆虚拟机

在VMware 虚拟机中,选中左侧栏中”我的计算机| Ubuntu-01”,单击右键,依次选择”管理| 克隆…”,分别克隆两个虚拟机(用以组装三台机器的集群)。注意克隆虚拟机时正确设置新虚拟机的名称和保存位置。

2.修改网络

分别启动三台虚拟机,并分别修改每台机器的固定IP 地址(注意查看网关和DNS)。

3.修改主机名

修改每台Ubuntu 系统的主机名,分别为:cloud01、cloud02、cloud03。(主机名
存放在/etc/hostname 文件中,修改主机名时,编辑hostname 文件,在文件中输入
新的主机名并保存该文件即可。重启系统后,在终端窗口中输入命令:”hostname”
或”uname –n”,均可以查看到当前主机的主机名,来确认主机名有没有修改成功)。

$ sudo gedit /etc/hostname
cloud01

4.修改hosts

设置每台机器的ip 与主机名的对应关系(在/etc/hosts 文件中存放的是域名与ip 的
对应关系):注:请将原文件最上面的第二行127.0.1.1 删除掉,每台机器都要做。

$ sudo gedit /etc/hosts
192.168.158.128 cloud01
192.168.158.129 cloud02
192.168.158.130 cloud03

三、集群配置-安装和配置SSH 无密码登录

1.安装ssh 服务(三台机器都做)

$ sudo apt-get install ssh
或
$ sudo apt-get install openssh-server


$ ssh localhost # 会自动生成.ssh 目录(如果存在.ssh 文件夹,则应先删除.ssh(rm -rf .ssh))
或者
$ mkdir .ssh # 手工创建.ssh 目录
$ cd .ssh
$ ssh-keygen -t rsa # 一路默认next
$ cat id_rsa.pub >> authorized_keys
$ sudo service ssh restart

2.配置ssh

设置从master node(该节点将运行NameNode)到DataNode 的无密码SSH。可以使
用SSH 登录loalhost 以及所有其它的节点,而勿需密码。在cloud01 机器(master)
上,运行以下命令复制cloud01 的公钥到cloud02 和cloud03(ssh-copy-id 将本机的
公钥复制到远程机器的authorized_keys 文件中)
- 1. 在cloud01 上:

$ cd .ssh
$ ssh-copy-id hduser@cloud01
$ ssh-copy-id hduser@cloud02
    1. 测试:在cloud01 机器上,使用SSH 登录localhost 以及所有其它的节点:
$ ssh localhsot
$ ssh cloud01
$ ssh cloud02
$ ssh cloud03

四、集群配置-格式化HDFS 文件系统

1.修改slaves

在cloud01 机器上(master 主机)上修改slaves 文件:

$ cd hadoop
$ gedit etc/hadoop/slaves # 打开slaves 文件,写入下面三行
cloud01
cloud02
cloud03

2.格式化hdfs

在cloud01(NameNode)上,运行下面的命令来格式化一个新的文件系统:

$ hdfs namenode -format

注:这个格式化只做一次。如果要重新格式化HDFS,则要将原来的$HADOOP_HOME
下的hddata/name 和hddata/data 目录清空,重新格式化。

五、集群测试

1.启动hdfs

使用如下命令启动HDFS 文件系统:

$ start-dfs.sh
  • 这个命令将首先启动一个master node 中的NameNode。然后它将启动在slaves 文
    件中所提及到的所有机器中的DataNode 服务。最后,它将启动第二个NameNode。
  • HDFS 带有一个监控web 控制台来验证安装以及监视HDFS 集群。它还能让用户探
    索HDFS 文件系统的内容。该HDFS 监控控制台可以通过下面的URL 进行访问:
    http://{NAMENODE}:50070/。查看监控控制台检查是否能看到HDFS 启动页面。这
    里,将{NAMENODE}替换为运行HDFS NameNode 的节点的IP 地址。
http://localhost:50070/ # NameNode URL
  • 另外,还可以使用如下的命令来获得HDFS 状态的报告:
$ hadoop dfsadmin -report
或
$ hdfs dfsadmin -report
# 查看文件块组成
$ hdfs dfsadmin -report

2.启动YARN

运行下面的命令来启动YARN service 服务:

$ start-yarn.sh

3.其他测试方式

  • 运行下面的命令来启动MapReduce JobHistoryServer。这可以启用用于MapReduce
    job 历史的web 控制台:
$ mr-jobhistory-daemon.sh start historyserver # 启用历史服务
$ mr-jobhistory-daemon.sh stop historyserver # 关闭历史服务
  • 通过jps 命令列表显示进程,以检查安装情况。Master 节点将列出NameNode、
    ResourceManager 和JobHistoryServer 服务。Slave 节点将列出DataNode 和
    NodeManager 服务:
$ jps
  • 访问http://{MASTER_NODE}:8088/,访问用于可用的ResourceManager 的基于web
    的控制台页面。
http://localhost:8088/// Node ManagerResource ManagerURL
  • 运行pi 程序:
$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 10 20

4.关闭

最后,使用如下的命令关闭YARN service 和HDFS service:

$ stop-yarn.sh
$ stop-dfs.sh
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农高小鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值