发布网友 发布时间:2022-04-20 11:52
共1个回答
热心网友 时间:2022-04-12 01:31
首先说明,博主以前也没学过Hadoop,更别提Linux。只不过买了点资料,觉得不看也是浪费,索性找了时间学习了一下,别说,还真是吸引人。
言归正传,博主机器:笔记本 Y50-70 美版的
搭建环境:VM11(VMware Workstation 11),使用的是CenOS 6.5 64位
所需软件:SecureCRT
1.先在VM上安装Linux虚
1.1 打开文件----新建虚拟机-----自定义(高级)-----按下一步,然后选择稍后安装系统
1.2 选择机器配置
1.3 选择网络类型,使用仅主机模式,因为这样可以使用静态IP,以免造成IP变动引起的无法解析hosts文件映射问题
1.4 选择磁盘容量大小后,按下一步完成,然后该虚拟机,在CD/DVD光驱中加载你的CentOS6.5镜像文件
1.6 启动VM虚拟机,进行Linux安装,进入安装页面后会出现Media Test 此时选择SKIP 直接进行安装,然后一直按下一步,出现如下显示信息,选择Yes,discard any data,下面的hostname你按自己喜欢的来设定,其余的时间地点什么的你自己选,root密码自己设定(别忘记就行),wirte changes to disks.
以上安装完成,然后克隆这个虚拟机,克隆两个。
2.进入虚拟机,进行IP设置以及文件修改。另外两台虚拟机也照这样修改,不过IP地址你自己设定,不要一样就行
2.1 进行IP设置等
2.2 修改eth0配置文件 ,将onboot=no改为yes即可,
2.3 建立hadoop运行账户
即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例如下:
sudo groupadd hadoop //设置hadoop用户组
sudo useradd –s /bin/bash –d /home/ding –m ding –g hadoop –G root //添加一个ding用户,此用户属于hadoop用户组,且具有root权限。
sudo passwd ding //设置用户ding登录密码
su ding //切换到ding用户中
不过这些操作你也可以在图形界面完成
system----Administration-----Users and Groups
2.4 修改host文件 三台hosts文件都一样
关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
克隆完的每台虚拟机需要修改下主机名:
vi /etc/sysconfig/network
hostname=XXXX 即是你的主机名
命令:vi /etc/hosts (PS:我换了另外一台虚拟机 所以IP地址跟上面有所区别 不过意思不变)
我的三台主机名:
2.5 为了操作便捷,转战SecureCRT这个软件
hostname填入你的IP地址,username填入你的hadoop用户组里面的,例如:hostname:192.168.0.120 username :ding
其余两个虚拟机连接也这么干
3.配置SSH无密码登录
PS:每个机器的hosts文件都要设置好,且要一样的啊
3.1 产生密钥
在secureCRT键入 cd .ssh 命令 进入.ssh隐藏文件夹 (隐藏文件夹 使用 ll -a 才会显示出来)
键入命令 ssh-keygen -t rsa
其余2个虚拟机也进行如此步骤
3.2 将master的公钥复制给node01和node02,这里说下ssh无密码登录的原理:
也就是说A想要无密码登录B,必须要将自己的公钥发给B,B将其加入到授权列表才行
在node01、node02主机上将master主机上的公钥复制过来
例如在node01上将master上的公钥复制到node01上来,此操作是在node01主机上完成
命令:scp ding@master:~/.ssh/id_rsa.pub ./master_rsa.pub //此命令是将master主机上,文件夹.ssh下的id_rsa.pub文件复制到node01上的根目录下,且命名为master_rsa.pub
在node02上也进行如此操作,然后进行测试:
在master主机上键入命令:ssh node01 ,如果没有问题只需要输入yes即可
3.2.1 对自己进行无密码登录 ssh master 操作同上 在.ssh文件目录下输入命令 cat id_rsa.pub >> authorized_keys 即可完成
4.下载安装JDK,HADOOP,配置环境变量
4.1 下载JDK,并且安装
tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm //我是将jdk安装到/usr/liv/jvm中的,此时使用的权限是root(切换root用户命令su,抱歉我没有操作sudoer这个文件,所以没法使用sudo这个命令)
4.2 下载hadoop jar包
tar -zxvf hadoop-2.4.1tar.gz -C /home/ding/hadoop //需要在你的目录下先创建文件夹 hadoop (mkdir hadoop)
4.2 配置环境变量
命令:vi /etc/profile
保存后,source /etc/profile 让配置文件生效,其余node01,node02也需要进行如此操作,当然,前提是你的用户名与jdk安装目录,hadoop安装目录都是一样的
4.3 配置hadoop文件
配置文件都在 /hadoop-2.4.1/etc/hadoop目录下面
4.3.1 配置core-site.xml文件
4.3.2 配置hdfs-site.xml
4.3.3 配置 mapred-site.xml文件
首先发现没有这个文件,而是有一个名为 mapred-site.xml.template ,现将此文件重命名,键入命令:mv mapred-site.xml.template mapred-site.xml,然后对文件进行修改
4.3.4 配置yarn-site.xml
4.3.5 配置 hadoop-env.sh ,slaves
配置文件1:hadoop-env.sh
修改JAVA_HOME值(export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79)
配置文件2:slaves (这个文件里面保存所有slave节点)
5.将hadoop复制到其它节点 node01,node02
scp -r ~/hadoop ding@node01:~/ //注释将hadoop文件夹复制node01下主目录 ~/表示用户主目录,例如用户是ding 主目录就是 /home/ding
scp -r ~/hadoop ding@node02:~/
6.格式化namenode
键入命令: hdfs hadoop -format
注意:上面只要出现“successfully formatted”就表示成功了。
7.启动hadoop
分别启动start-dfs.sh和start-yarn.sh命令
8.检查
在master和node上检查是否启动
在master检查,键入命令jps
在node01检查,键入命令jps
键入命令:hdfs dfsadmin -report
9.上传一个文件试试
先创建一个文件夹upload
上传文件至文件夹upload下
hadoop fs -put ~/hadoop-2.4.1.tar.gz /upload
查看upload目录
hadoop fs -ls /upload