VMware 下Hadoop集群环境搭建之虚拟机克隆,Hadoop环境配置 | 您所在的位置:网站首页 › vm克隆虚拟机后登录界面 › VMware 下Hadoop集群环境搭建之虚拟机克隆,Hadoop环境配置 |
在上一篇我们完成了ContOS网络配置以及JDK的安装,这一篇将在上一篇的基础上继续讲解虚拟机的克隆,hadoop环境搭建 传送门: VMware 下Hadoop集群环境搭建之新建虚拟机 VMware 下Hadoop集群环境搭建之为虚拟机安装CentOS 6.7 64位系统 VMware 下Hadoop集群环境搭建之CentOS 6.7 网络配置的相关配置,JDK的安装 虚拟机克隆.利用上一篇已经完成网络配置和jdk安装的虚拟机在克隆两台虚拟机. 1. 将拟机hadoop01关机. 2. 如动图演示那样,选中hadoop01,然后鼠标右键,在出来的菜单中选择 管理—>克隆: 编辑/etc/udev/rules.d/70-persistent-net.rules 这个文件: vim /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x100f (e1000) #这条是来自克隆的那台虚拟机的配置,将这条注释:原因是ATTR{address}=="00:0c:29:21:6f:26"的物理地址信息是来自克隆的虚拟机 #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:21:6f:26", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100f (e1000) #将这条的NAME="eth1" 改成 NAME="eth0" #经过物理地址信息查看对比,00:0c:29:64:74:a4才是当前这台机器对应的物理地址. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:64:74:a4", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"编辑网卡配置信息,修还物理地址和IP地址即可.物理地址查看方式请参见上一篇文章. vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:29:64:74:a4 #修改物理地址,物理地址请根据自己的VMware获取 TYPE=Ethernet UUID=afcc5664-3e15-4768-b5ab-45f1c53f7a68 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.93.121 #修改IP地址 PREFIX=24 GATEWAY=192.168.93.2 DNS1=8.8.8.8 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0"修改主机名: vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop2分别编辑3台机器的hosts文件,在已有内容后面添加地址映射: vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.93.120 hadoop1 www.hadoop1.com 192.168.93.121 hadoop2 www.hadoop2.com 192.168.93.122 hadoop3 www.hadoop3.com 重启克隆的两台机器.测试3台机器之前是否可以相互通信. 用hadoop1分别ping hadoop2,hadoop3:给hadoop配置sudo权限(在命令前加上sudo,可以执行root权限才能执行的命令) 编辑sudoers文件,在编辑之前我们可能查看一下sudoers的信息: ll /etc/sudoers -r--r-----. 1 root root 4002 Mar 2 2012 /etc/sudoers我们可以看到该文件连root用户都是只读的.所以要想修改该文件内容,需要先修改一下该文件的权限,给root添加写权限: chmod u+w /etc/sudoers 编辑该文件:vim /etc/sudoers ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL #给hadoop用户添加sudo权限 hadoop ALL=(ALL) ALL ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS ## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # 执行sudo权限时不需要输入密码 %hadoop ALL=(ALL) NOPASSWD: ALL ## Allows members of the users group to mount and unmount the测试sudo权限. 在hadoop的home下新建一个file1文件. touch /home/file1.查看/home/file1. 信息: -rw-r--r--. 1 root root 0 May 1 00:32 /home/file1从文件信息 可以看出,只有root可以读写删除该文件. 切换到hadoop su hadoop删除/home/file1文件 rm -rf hadoop rm: cannot remove `/home/file1': Permission denied结果是删除文件失败,权限异常. 用添加sudo来删除 sudo rm -rf /home/file1 可以看到结果删除成功了,说明我们sudo权限配置成功.在hadoop2,hadoop3上同样的分别新建一个hadoop用户,并配置sudo权限. 安装hadoop并配置相关文件. 在hadoop1上切换至hadoop用户,注意,接下来的配置需要在hadoop用户下完成,如果在配置过程中,随意切换用户,导致某些操作在不同用户下来完成的,后期启动hadoop集群的时候会因hadoop文件的权限问题导致启动失败,排查起错误来也会比较困难.在hadoop的家目录下新建一个apps文件夹 mkdir /home/hadoop/apps用xftp上传hadoop-2.7.5.tar.gz包到该目录下(具体操作请参见上一篇)上传jdk的方式. hadoop-2.7.5.tar.gz的链接:https://pan.baidu.com/s/1o9CXsn71kfNVNKIQX0PW5w 密码:hf19解压hadoop-2.7.5.tar.gz包: tar -zxvf /home/hadoop/apps/hadoop-2.7.5.tar.gz解压后的结果:配置hadoop-env.sh文件: cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ vim hadoop-env.sh # set JAVA_HOME in this file, so that it is correctly defined on # remote nodes. # The java implementation to use. #在这里添加JDK安装目录的环境变量,这里我又尝试过 JAVA_HOME=${JAVA_HOME},但是不能起作用,还是老老实实的写吧 export JAVA_HOME=/home/java/jdk1.7.0_79 # The jsvc implementation to use. Jsvc is required to run secure datanodes配置core-site.xml配置文件 cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ vim core-site.xml fs.defaultFS hdfs://hadoop1:9000 hadoop.tmp.dir /home/hadoop/apps/hadoop-2.7.5/data设置hdfs-site.xml配置文件 cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ vim hdfs-site.xml dfs.replication 2配置mapred-site.xml配置文件 cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ 默认mapred-site.xml不存在,将mapred-site.xml.template改成mapred-site.xml即可 mv mapred-site.xml.template mapred-site.xml vi mapred-site.xml mapreduce.framework.name yarn配置yarn-site.xml配置文件 cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ vim yarn-site.xml yarn.resourcemanager.hostname hadoop1 yarn.nodemanager.aux-services mapreduce_shuffle配置slaves配置文件 cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop/ vim slaves #指定干活的datanode hadoop2 hadoop3配置hadoop1到hadoop2,hadoop3之间的免密通信,完成这一步操作,需要安装ssh软件,注意 如果机器中没有安装ssh-client软件,先需要安装,如果没有安装软件技能,推荐先了解下linux安装安软的知识.安装步骤如下1,2: 查找适合的软件包:yum list | grep openssh-clients 安装:yum install openssh-clients.x86_64 (openssh-clients.x86_64 是我查找到的结果).启动hadoop2,hadoop3,并都切换到hadoop用户下.配置免密登录之前,登录到hadoop2看看效果: ssh hadoop2配置hadoop软件的环境变量: 配置之前:输入: which hadoop在/etc/profile文件中添加hadoop的环境变量 sudo vim /etc/profile #因为只有root用户才能编辑该文件,所以hadoop想要编辑,需要用sudo权限: ``` export JAVA_HOME=/home/java/jdk1.7.0_79 #申明hadoop的路径变量 export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5 #在之前配置JAVA的环境变量之后追加hadoop的环境变量 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` source vim /etc/profile #让环境变量生效验证配置是否成功:which hadoop我在配置的时候,也出现这样那样的问题.所以配置过程中需要注意以下几点: 1. 配置主机名时,以及在添加用户时,千万不要使用带有下划线的以及其他不符合规范的命名,我第一次配置时因为使用了下划线,导致启动集群时一直启动失败,折腾了好久好久. 2. hadoop的解压,配置,拷贝,需要使用配置了免密登录的用户来完成.比如我以上配置的就是hadoop用户来完成的. 3. 初始hadoop集群的时候,需要使用与解压,配置,拷贝hadoop时的用户一致. 4. 配置的时候仔细,仔细再仔细.可能因为一个字母错误,就会导致很多问题. 5. 我的3台虚拟机的hostname命名分别是hadoop1,hadoop2,hadoop3,在这三台虚拟机下都有一个用来搭建hadoop集群的用户hadoop,所以再阅读的时候不要混淆了. 6. 如果按照我的步骤来搭建,最后集群搭建完成时,每台机器的进程规划如下: 主机名进程 hadoop1 SecondaryNameNode ResourceManager NameNode hadoop2 DataNode NodeManager hadoop3 DataNode NodeManager尽情期待下一篇Zookeeper的环境搭建,或者HDFS的API操作 创作不易.转载注明出处. qq交流群:775661488 |
CopyRight 2018-2019 实验室设备网 版权所有 |