**
任务一、配置基础环境(主机名、名字解析、ssh免密码登录、jdk环境) 运用centos7镜像
**
1. 克隆3台虚拟机,设置IP地址和主机名,使得3台虚拟机以及主机互通
a) 编辑/etc/sysconfig/network-scripts/ifcfg-ens32文件,修改IP地址
master
slave1
修改IP为192.168.153.101
slave2
修改IP为192.168.153.102
修改 vim /etc/hosts
这里三个都一样
修改 vim /etc/hostname
分别为master slave1 slave2
然后三台虚拟机重启
检查三台虚拟机是否可以通过ping slave1通
2. 配置ssh免密码登录,使得3台虚拟机可以免密码互相登录
a) 在每台虚拟机上安装openssh-clients,并使用#ssh-keygen -t rsa生成密钥对
b) 把三台虚拟机的公钥集中到一个authorized_keys文件中,并发送到所有虚拟机
cd /root/.ssh
cp id_rsa.pub authorized_keys
编辑vim authorized_keys把其他slave1和slave2的pub文件都复制过来
scp -r authorized_keys root@slave1:/root/.ssh
scp -r authorized_keys root@slave2:/root/.ssh
c) 在master上使用ssh免密码登录slave1和slave2
ssh slave1
ssh slave2
3. 安装jdk,配置环境变量
a) 下载jdk,解压到/usr/local/jdk1.8
b) 编辑/etc/profile
文件,设置环境变量
export JAVA_HOME=/usr/local/jdk1.8
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
c) 使用#source /etc/profile
命令执行脚本
d) 使用# java -version
检查java环境
**
任务二、安装hadoop集群
** 1. 在master上安装hadoop
a) 建立hadoop工作目录/var/hadoop
mkdir /var/hadoop/tmp
mkdir /var/hadoop/var
mkdir /var/hadoop/dfs
mkdir /var/hadoop/dfs/name
mkdir /var/hadoop/dfs/data
b) 下载hadoop软件并上传到master虚拟机,并解压到/usr/local/hadoop2
c) 编辑/usr/local/hadoop2/etc/hadoop下的配置文件
i. hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8
ii. yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8
iii. mapred-env.sh
export JAVA_HOME=/usr/local/jdk1.8
iv. core-site.xml
<configuration>
<property> <!--hadoop临时文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
<property> <!--NameNode 的URI默认端口为8020-->
<name>fs.default.name</name>
<value>hdfs://master</value>
</property>
</configuration>
v. hdfs-site.xml
<configuration>
<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
<name>dfs.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放块数据的本地文件系统路径-->
<name>dfs.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
vi. yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property> <!--ResourceManager 对客户端暴露的地址-->
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property><!--ResourceManager 对ApplicationMaster暴露的地址-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property><!--ResourceManager 对NodeManager暴露的地址-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property><!--ResourceManager 对管理员暴露的地址-->
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property><!--ResourceManager 对外web暴露的地址,可在浏览器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
vii. mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
viii. slaves
slave1
slave2
- 在其它虚拟机安装hadoop
a) 从master拷贝jdk到slave1和slave2
scp -r /usr/local/jdk1.8 root@slave1:/usr/lcoal
scp -r /usr/local/jdk1.8 root@slave1:/usr/lcoal
b) 从master拷贝/etc/profile到slave1和slave2并执行脚本
先配置一下Hadoop
vim /etc/profile
export PATH=$PATH:/usr/local/hadoop2/bin
scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile
c) 从master拷贝工作目录到slave1和slave2
scp /var/hadoop root@slave1:/var
scp /var/hadoop root@slave2:/var
d) 从master拷贝hadoopslave1和slave2
scp /usr/local/hadoop2/ root@slave1:/usr/local
scp /usr/local/hadoop2/ root@slave2:/usr/local
- 在master上执行hdfs初始化
cd /usr/local/hadoop2/bin
./hadoop namenode -format
任务三、启动、停止hadoop集群
cd /usr/local/hadoop2/sbin
./start-all.sh
jps查看是否完全启动
访问以下端口
50070:hdfs文件管理
8088:ResourceManager
8042:NodeManager