虚拟机安装打开
需要的传输软件(Xshell、Xftp)
第一次进入Ubuntu界面,打开终端Open in Terminal
目录
1.5-安装openssh-server(为了后续的操作方便,连接Xshell)
1.7-使用Xftp(可以做到物理主机和虚拟机相互传递文件)
2.2-配置java环境变量,编辑/etc/profile文件
4.3-修改hadoop中的配置文件(文件都在/usr/local/hadoop-2.7.3/etc/hadoop下)
4.3.4-修改mapred-site.xml文件(由mapred-site.xml.templete文件复制而来)
4.3.8-将配置好的hadoop文件传送到2号和3号机器上
1-虚拟机准备工作
1.1-使用ping命令查看是否可以上网
ping baidu.com
出现下面一系列自动输出的代码,就说明该虚拟机可以上网
1.2-设置root用户
Ubuntu系统默认是没有root用户的,需要自己设置
sudo passwd root #创建root用户,接下来输入两次新密码,都是不可见状态,回车确定
使用su命令确认可以进入root用户后,使用exit命令进行退出
1.3-更新安装源
sudo apt-get update
ifconfig #查看虚拟机ip
sudo apt-get install net-tools #没有安装的话使用命令进行安装
1.4-设置虚拟机静态IP
最下面,从左往右数第四个图像样子,鼠标右键点击,然后点击“网络”,将“连接方式”设置为“桥接网卡”
更改完成后,输入ifconfig命令,查看桥接后的IP,
inet对应的就是你的虚拟机IP,记住前三位192.168.xx
netmask是你的子网掩码
broadcast是你的默认网关
点击右上角的图标,点击“Wired Connected”属性,点击“Wired Seething”
点击“Network”的“设置”图标
然后点击“IPV4” ,再点击“Manual”
在“Address”属性中写下你之前查到的“inet”的前三个属性,第四个属性自己随便添加
在“Netmask”属性中写下你之前查到的“netmask”属性
在“Gateway”属性中写下你之前查到的“gateway”
输入完成后点击“Apply”应用
完成后,点击设置图标左边的界面,关闭之后再打开,然后回到终端页面,ping baidu.com查看是否可以上网,ifconfig查看此时的IP设置
1.5-安装openssh-server(为了后续的操作方便,连接Xshell)
sudo apt-get install openssh-server #输入root密码进行安装,提示会让你输入y确定
完成安装后查看服务是否开启
sudo service ssh status #查看该服务状态
显示active就是启动
1.6-使用Xshell(也可以不安装,看个人习惯)
打开安装好的Xshell
点击“新建”
名称属性随便写
主机属性写入你刚才创建好的静态IP
用户名属性输入你的虚拟机用户
密码属性输入你的虚拟机用户密码
一切完成后,点击确定,然后点击你创建好的名称
点击“接受并保存”
连接创建成功,可以在Xshell中远程访问虚拟机
1.7-使用Xftp(可以做到物理主机和虚拟机相互传递文件)
大致和Xshell是类似的
2-将所需的软件源传送到虚拟机中,
2.1-将java压缩包通过Xftp传送到连接好的虚拟机中
在Xshell中使用mv命令将压缩包移动到/usr/local目录下
sudo mv 文件位置 目标目录位置
sudo mv jdk-8u181-linux-x64..gz /usr/local/
#进入/usr/local目录
cd /usr/local
#解压传送的java压缩包文件
sudo tar -zxvf jdk-8u181-linux-x64..gz
解压完成后,就可以将压缩包删除(rm命令),节省一丢丢空间了
sudo rm -rf jdk-8u181-linux-x64..gz
2.2-配置java环境变量,编辑/etc/profile文件
sudo vi /etc/profile
使用vi命令发现无法编辑之后,这是vi版本过于老化,需要重新下载
先卸载之前版本的vi
sudo apt-get remove vim-common
安装新版本vi
sudo apt-get install vim
安装完之后,应该就可以编辑文件了,重新使用vi命令编辑/etc/profile文件,点击“i”,进入文本编辑模式,拉到文档最后,输入几行代码
#JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
编辑完之后,保存退出(wq),使用source命令重新加载环境变量
没有报错,并且显示出java版本号,即配置成功
3-复制虚拟机并且配置免密登录
3.1-复制虚拟机
关闭先前的虚拟机,复制两台虚拟机
更改复制机的主机名称
sudo vi /etc/hostname #主机名称改为不一样的,用户名是复制的,所以不影响
打开复制机,需要向之前1.4一样,为新虚拟机配置静态IP
###主要不要与之前的虚拟机IP一样
给新虚拟机链接Xshell
3.2 免密登录
前面安装过了openssh-server服务,没有安装的使用命令安装一下该服务
在1号机器上执行命令
ssh localhost #在用户目录下生成一个包含主机公钥的文件know_hosts
在1号机器继续执行命令
ssh-keygen -t rsa #生成密钥文件,输入三次回车
将公钥添加到登陆凭证authorized_keys中
cat id_rsa.pub >> authorized_keys
在2号机器上执行命令
ssh localhost #在用户目录下生成一个包含主机公钥的文件know_hosts
ssh-keygen -t rsa #生成密钥文件,输入三次回车
将1号机器上的登陆凭证authorized_keys文件通过scp 命令传送到2号机器上
scp authorized_keys文件位置 2号机器的用户名@2号机器的IP:~/.ssh
出现该字段代表传送成功
在2号机器上执行命令,将2号机器的公钥添加到authorized_keys文件中
在3号机器上执行命令
ssh localhost #在用户目录下生成一个包含主机公钥的文件know_hosts
ssh-keygen -t rsa #生成密钥文件,输入三次回车
将2号机器上的登陆凭证authorized_keys文件通过scp 命令传送到3号机器上
scp authorized_keys文件位置 3号机器的用户名@3号机器的IP:~/.ssh
在3号机器上执行命令,将3号机器的公钥添加到authorized_keys文件中
然后再使用scp命令将3号机器的登陆凭证authrized_keys文件传送到1号和2号机器的ssh目录下
配置完成后,使用ssh 想要登陆的IP,检验是否成功
ssh 想要登陆的IP
不报错,登陆成功则完成,如果出错,建议将ssh目录删除,重新进行免密配置
3.3-配置本地解析
为了后面方便,进行配置本地解析,可以更方便的远程访问,只需要ssh 机器名,即可远程登陆
sudo vi /etc/hosts #配置本地解析文件
在该文件中配置映射,IP然后TAB键隔开,加上机器名
该文件在2号和3号机器都要配置,写完保存退出
测试
即可以成功,输入exit退出远程用户
4-配置hadoop
4.1-将hadoop压缩包通过Xftp传送到1号机器中
使用mv命令将压缩包移动到/usr/local目录下
使用tar命令将其解压
并且给解压后的文件赋予权限
4.2-配置hadoop环境
在1号机器上配置/etc/profile文件,加入下面代码
#HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
配置完成后,重启环境变量source
测试
4.3-修改hadoop中的配置文件(文件都在/usr/local/hadoop-2.7.3/etc/hadoop下)
4.3.1-hadoop-env.sh
修改下面两处位置代码
4.3.2core-site.xml文件
写入下面代码
<property>
<!--指定hadoop临时存放目录-->
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.3/tmp</value>
</property>
<property>
<!--hdfs地址-->
<name>fs.defaultFS</name>
<value>hdfs://主机1名称:9000</value>
</property>
<!--hadoop临时存放目录需要手动创建-->
<!--mkdir /usr/lcoal/hadoop-2.7.3/tmp-->
4.3.3-修改hdfs-site.xml文件
添加下面代码
<property>
<!--指定hdfs产生数据时备份的机器数量,一个datanode,存放一个副本-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<!--指定namenode数据存放的目录-->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.7.3/tmp/dfs/name</value>
</property>
<property>
<!--指定datanode数据存放目录-->
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-2.7.3/tmp/dfs/data</value>
</property>
<!--mkdir /usr/local/hadoop-2.7.3/tmp/dfs/name-->
<!--mkdir /usr/local/hadoop-2.7.3/tmp/dfs/data-->
4.3.4-修改mapred-site.xml文件(由mapred-site.xml.templete文件复制而来)
cp mapred-site.xml.template mapred-site.xml
编辑mapred-site.xml文件
写入下面代码
<property>
<!-- 指定mr运行在yarn框架上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>主机1名称:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>主机1名称:19888</value>
</property>
4.3.5-修改yarn-site.xml文件
写入下面代码
<property>
<!--指定resourcemanager的主机名称 -->
<name>yarn.resourcemanager.hostname</name>
<value>主机1名称</value>
</property>
<property>
<!--yarn默认混洗方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
4.3.6-修改slaves文件
删除原有内容,写入1号、2号、3号主机名称
4.3.7-创建NameNode目录
在/usr/local/hadoop-2.7.3目录下创建,并赋予权限
mkdir tmp
mkdir tmp/dfs
mkdir tmp/dfs/name
mkdir tmp/dfs/data
mkdir tmp/dfs/namesecondary
chmod -R +777 tmp/
4.3.8-将配置好的hadoop文件传送到2号和3号机器上
scp -r hadoop-2.7.3文件位置 2号主机名称:~
scp -r hadoop-2.7.3文件位置 3号主机名称:~
然后再使用mv命令将文件移动到/usr/local目录下
还要编辑2号和3号机器上的hadoop环境/etc/profile
#HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
4.3.9-启动格式化命令
1号机器上执行命令
hdfs namenode -format
即可成功
启动hadoop集群
start-all.sh
查看1号机器进程
2号机器进程
3号机器进程
终止hadoop进程命令
stop-all.sh