如何搭建hadoop集群 桥接

如何搭建hadoop集群 桥接,第1张

本文通过在vmware workstation上建立三台虚拟机来搭建hadoop集群环境,其中一台作为namenode,两台作为datanode。

一、安装vmware workstation(10.0.0)(一路下一步即可)

二、创建3个虚拟机

每个虚拟机安装Ubuntu 桌面版(我用的11.10,但是有点老了,建议用12.04或更高版本)

namenode建议多给写内存,我的是namenode 1G内存,20G硬盘,datanode 800M内存,20G硬盘(我电脑内存8G,若内存不够可以少分点,但是可能有些卡)上网上式可设置为桥接方式:直接连接物理网络。

三、安装vmware tools(便于主机和虚拟机直接可以直接拖拽,复制粘贴)

点击vmware 上 虚拟机-》安装VMware tools,自动打开一个包含vmware安装包的位置,可以拷贝到你有权限的地方,例如/usr/src下用 sudo tar zxvf 软件包名称 解压,之后进入解压后的文件夹,执行

sudo ./vmware-install.sh来安装,过程中遇见yes或no一律enter键,安装后重启生效。

四、配置共享目录(让主机和虚拟机直接方便实时共享)

对每个虚拟机,点击vmware上虚拟机-》设置-》选项,选择共享文件夹,永久共享,添加一个本机的目录所为共享目录,并为这个共享起一个名字,例如叫share。这样在虚拟机上的 /mnt/hgfs下会自动生成share文件夹保持与主机上的目录实时一致。重启生效,有时生效较慢,多重启几次就行了,不知何故。

五,安装ssh,为了一会的免密码登陆

对每台虚拟机运行:sudo apt-get install openssh-server

若不成功,你可能需要更新一下资源列表了:sudo apt-get update

六、配置ssh无密码登录,方便namenode给datanode分配任务和汇总信息

说明:以下生成的秘钥默认保存在用户名空间,所以建议三台虚拟机建立同样的用户名,例如hadoop,也可以都用root用户。

在name node,和datanode都运行:

ssh-keygen –t dsa -P '' –f ~/.ssh/id_dsa (建议手打此命令,复制有时候不行,注意都是英文字符,-P的P是大写)

下面将三台虚拟机的公钥拷贝到共享目录中并重命名以供彼此配置使用

在name node:

scp ~/.ssh/id_dsa.pub /mnt/hgfs/share/ id_dsa0.pub

在data node 1:

scp ~/.ssh/id_dsa.pub /mnt/hgfs/share/ id_dsa1.pub

在data node 2:

scp ~/.ssh/id_dsa.pub /mnt/hgfs/share/ id_dsa2.pub

将共享目录中公钥分别添加到三台虚拟机的授权下,分别在name node,data node 1和data node 2执行:

cat /mnt/hgfs/share/id_dsa0.pub >>~/.ssh/authorized_keys

cat /mnt/hgfs/share/id_dsa1.pub >>~/.ssh/authorized_keys

cat /mnt/hgfs/share/id_dsa2.pub >>~/.ssh/authorized_keys

测试:

ssh localhost

ssh 目标机器地址

七,安装jdk

对每个虚拟机:

下载jdk(jdk1.6.0)并解压,假定目录为/usr/src/jdk1.6.0(如果你的不是,也可以改成是,这样下面的命令直接复制就行了)

设置环境变量。

#vi /etc/profile

在最后面加入

#set java environment

export JAVA_HOME=/usr/src/jdk1.6.0

export CLASSPATH=.:$JAVA_HOME/lib.tools.jar

export PATH=$JAVA_HOME/bin:$PATH

保存退出。

要使JDK在所有的用户中使用,可以这样:

vi /etc/profile.d/java.sh

在新的java.sh中输入以下内容:

#set java environment

export JAVA_HOME=/usr/src/jdk1.6.0

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

重启虚拟机

八、安装hadoop

在usr/src目录解压: tar zxvf hadoop-0.20.2.tar.gz

把hadoop的安装路径添加到/etc/profile中:

export HADOOP_HOME=/usr/src/hadoop-0.20.2

export PATH=$HADOOP_HOME/bin:$PATH

九、配置hadoop

在hadoop-0.20.1/conf目录:

(1)对3个虚拟机,在conf/hadoop-env.sh中配置java环境

vi hadoop-env.sh

在hadoop-env.sh文件中添加

export JAVA_HOME=/usr/src/jdk1.6.0

(2) 用ifconfig命令查看ip地址,假定name node内部地址为192.168.204.157,data node 1和data node 2分别为192.168.204.162,192.168.204.173

对name node配置conf/masters和conf/slaves:

masters : 192.168.204.157

slaves : 192.168.204.162

192.168.204.173

(3)对name node, data node 1和data node2,配置conf/core-site.xml, conf/hdfs-site.xml及conf/mapred-site.xml,配置文件内的IP地址均配置为name node的IP地址(比如name node IP地址为192.168.204.157。

说明:因为三台上面这三个配置一样,所以配置一份,然后复制粘贴即可。

(又说明:下面之所以上图片是因为,新浪会把字符按html重新编译,无法正常显示,无奈啊)

十、运行hadoop

先把三台虚拟机的防火墙关了: sudo ufw disable

对name node:

进入hadoop-0.20.2/bin,首先格式化文件系统: hadoop namenode –format

对data node1 和data node 2:

进入hadoop-0.20.2/bin,执行: hadoop datanode –format

对name node:,在bin目录下执行:

start-all.sh

hadoop dfsadmin –safemode leave

hadoop dfsadmin –report, 查看节点情况,看到类似界面显示available的Datanodes 。

用jps命令查看进程,NameNode上的结果为:

26745 JobTracker

29398 jps

27664 NameNode

Data Node 1 的结果:

6718 TaskTracker

6042 DataNode

6750 jps

Data Node 2 的结果:

12173 TaskTracker

10760 DataNode

12700 jps

至此,安装成功。

CC集群的副机找不到主机的网络共享,可能存在以下原因:

1. 网络配置问题:副机和主机所处的子网或IP地址范围不一致,可能导致网络共享无法正常连接。可以检查网络配置,确保主机和副机处于同一网络子网中。

2. 防火墙设置问题:如果主机或副机上的防火墙开启了端口限制或应用程序限制,可能会阻止网络共享连接。可以检查防火墙设置,将相关的端口或应用程序添加到白名单中,以允许网络共享连接。

3. 权限设置问题:如果副机没有足够的权限来访问主机上的共享文件夹,也会导致网络共享连接失败。可以检查主机上共享文件夹的权限设置,确保副机有足够的权限来访问共享文件夹。

4. 主机共享设置问题:如果主机没有正确地设置共享文件夹,或者共享设置不完整,也会导致网络共享连接失败。可以检查主机上共享文件夹的设置,确保共享设置正确并且已启用。

综上所述,当CC集群的副机找不到主机的网络共享时,需要先确定问题的原因,然后逐一排除问题,以恢复网络共享连接。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11955842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存