(一)准备工作
1、安装Linux和配置Linux
2、关闭防火墙、配置主机名
3、安装JDK
(1)解压安装包 tar -xf jdk-8u144-linux-x64.tar.gz -C /root/training
(2)配置环境变量
JAVA_HOME=/root/training/jdk1.8.0_144
export JAVA_HOME
PATH=$JAVE_HOME/bin:$PATH
export PATH
(3)生效环境变量 source ~/.bash_profile
(4)查看是否配置成功 java -version
(二)Hadoop的目录结构(/root/training/hadoop-2.7.3)
(1)查看目录结构 tree hadoop-2.7.3/ -d -L 2
(2)设置Hadoop的环境变量 vi ~/.bash_profile
HADOOP_HOME=/root/training/hadoop-2.7.3
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效: source ~/.bash_profile
(三)Hadoop的三种安装模式
1、本地模式:只修改一个参数vi hadoop-env.sh-------hadoop-env.sh JAVE_HOME /root/training/jdk1.8.0_144
特点:没有HDFS,只能测试MapReduce程序(不是运行在Yarn中,做一个独立的Java程序来运行)
测试MapReduce程序:
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /root/temp/input/data.txt /root/temp/output/wc
注意:路径都是本地Linux的路径
2、伪分布模式
特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能
HDFS:NameNode + DataNode + SecondaryNameNode
Yarn:ResourceManager + NodeManager
(*)hadoop-env.sh :JAVA_HOME /root/training/jdk1.8.0_144
(*)hdfs-site.xml
<!--配置数据块的冗余度,默认是3-->
<!--原则冗余度跟数据节点个数保持一致,最大不要超过3-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--是否开启HDFS的权限检查,默认是true-->
<!--使用默认值,后面会改为false-->
<!--
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
-->
(*)core-site.xml
<!--配置HDFS主节点的地址,就是NameNode的地址-->
<!--9000是RPC通信的端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata111:9000</value>
</property>
<!--HDFS数据块和元信息保存在操作系统的目录位置-->
<!--默认是Linux的tmp目录,一定要修改-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
(*)mapred-site.xml(默认没有这个文件----mv mapred-site.xml mapre-site.xml)
<!--MR程序运行容器或者框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(*)yarn-site.xml
<!--配置Yarn主节点的位置-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata111</value>
</property>
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(*)对HDFS的NameNode进行格式化 -----> 目录:/root/training/hadoop-2.7.3/tmp
举例:软盘,需要格式化
命令:hdfs namenode -format
日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
(*)启动:
HDFS:start-dfs.sh
Yarn: start-yarn.sh
统一的:start-all.sh
Web Console访问:hdfs: 端口: 50070
yarn: 端口:8088
(*) ssh 免密登陆原理和配置
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat id_dsa.pub >> authorized_keys
3、全分布模式:真正用于生产的环境
(1)至少需要3台机器
(2)集群的规划
(3)准备工作
(*)安装三台Linux、JDK、关闭防火墙
(*)设置主机名和IP: vi /etc/hosts
192.168.40.101 node001
192.168.40.102 node002
192.168.40.103 node003
(*)配置免密码登录:两两之间的免密码登录
ssh-copy-id -i .ssh/id_rsa.pub root@node001
ssh-copy-id -i .ssh/id_rsa.pub root@node002
ssh-copy-id -i .ssh/id_rsa.pub root@node003
(*)保证集群的时间同步
eg:date -s 2020-04-14
4、在主节点上安装(node001)
(*)解压和设置环境变量
(*)hadoop-env.sh
export JAVA_HOME=/root/training/jdk1.8.0_144
(*)hdfs-site.xml
<!--配置数据块的冗余度,默认是3-->
<!--原则冗余度跟数据节点个数保持一致,最大不要超过3-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--是否开启HDFS的权限检查,默认是true-->
<!--使用默认值,后面会改为false-->
<!--
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
-->
(*)core-site.xml
<!--配置HDFS主节点的地址,就是NameNode的地址-->
<!--9000是RPC通信的端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node001:9000</value>
</property>
<!--HDFS数据块和元信息保存在操作系统的目录位置-->
<!--默认是Linux的tmp目录,一定要修改-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
(*)mapred-site.xml
<!--MR程序运行容器或者框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(*)yarn-site.xml
<!--配置Yarn主节点的位置-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node001</value>
</property>
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(*)slaves 配置从节点地址 (node002,node003)
(*)对namenode进行格式化(与伪分布一样)
5、把node001上安装好的目录复制到从节点上(不需要重新配)
scp -r hadoop-2.7.3/ root@node002:/root/training
scp -r hadoop-2.7.3/ root@node003:/root/training
6、在主节点上启动集群
start-all.sh