一、单机模式
1.新建虚拟机
安装centos-12系统,默认root用户
2.新建用户
useradd centos,设置密码
在/etc/sudoers文件赋予centos用户权限,chmod -v u+w /etc/sudoers; centos ALL=(ALL) ALL;
chmod -v u-w /etc/sudoers; centos用户执行命令要加sudo;
3. 配置网络和设置主机名
下载xshell、xftp连接虚拟机,把jdk和hadoop安装包传到虚拟机
解压: tar -xzvf , 把解压的文件(解压就是安装了)复制到自己的目录: jdk: /usr/java hadoop: /opt/
5. 配置环境 /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
HADOOP_HOME=/opt/hadoop-2.7.5PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
让配置文件生效,source命令
6. hadoop fs -ls 查看hadoop的文件是本机的,即单机模式
二、伪分布式模式
1.在单机模式的基础上操作,在/opt/hadoop-2.7.5/etc/ 下, 复制一份伪分布式的文件: cp -R hadoop hadoop_virtual
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop_tmp</value>
</property>
vi hdfs-site.xml :
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
vi mapred-site.xml :
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
4.配置免密登录ssh
ssh-keygen -t rsa:生成公钥和密钥
公钥和密钥路径: ls ~/.ssh , 在/home/centos/.ssh/下复制公钥到authorized_keys, cat id_rsa.pub >> authorized_keys
设置文件权限免密操作: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
5.格式化HDFS,重启
hdfs namenode -format
6. 启动Hadoop集群
/opt/hadoop-2.7.5/sbin/start-all.sh , jsp命令验证
1.在伪分布式模式的基础上操作,在/opt/hadoop-2.7.5/etc/ 下, 复制一份完全分布式的文件: cp -R adoop_virtual hadoop_cluster
2.克隆三台虚拟机(s1,s2,s3),配置好网络和用户名(这是迁移造成mac地址发生了改变,ip也随着改变了,解决方法 在最后会说明)
3.在主机(s0)中配置 /etc/hosts,使各个机器是互通的 , ping 验证
192.168.176.137 s0
192.168.176.138 s1
192.168.176.139 s2
192.168.176.140 s3
sudo scp /etc/hosts [email protected]:/etc/ , ssh s1验证 各个主机可以互相免密登录
5.主机配置/opt/hadoop-2.7.5/etc/hadoop_cluster 下的文件(与伪分布很相似, s0主节点namenode,s1、s2从节点datanode, s3为namenode的副本)
<property>
<name>fs.defaultFS</name>
<value>hdfs://s0/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop_tmp</value>
</property>
vi hdfs-site.xml :
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
vi mapred-site.xml :
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<name>yarn.resourcemanager.hostname</name>
<value>s0</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6.配置主机/opt/hadoop-2.7.5/etc/hadoop_cluster 下的slaves文件为:
s1
s2
7.远程拷贝主机(s0)中的/opt/hadoop-2.7.5/etc/hadoop_cluster到各个机器:
sudo scp -r hadoop_cluster centos@s3:/opt/hadoop-2.7.5/etc/ (已存在文件夹会覆盖); ssh切换到各 个机器查看文件是否更改
8.格式化HDFS,重启
hdfs namenode -format
9. 启动Hadoop集群
/opt/hadoop-2.7.5/sbin/start-all.sh , jsp命令验证(显示的与伪分布式是有区别的,s0上显示namenode相 关的,s1、s2显示datanode相关)