Hadoop的安装(伪分布式和完全分布式)

(一)伪分布式的安装 {生产中不用 自己测试的时候,有时会用}
假的分布式 所有的进程全部运行在一个节点上
linux操作 普通用户下
1.安装准备
1)设置ip(安装Linux时应该已经设置完毕了)
2)设置主机名(安装Linux时应该已经设置完毕了)
若想修改主机名,用以下命令:
vim /etc/sysconfig/network
这样就永久修改主机名称了,不过记得要重启哦(reboot)
3)配置映射(域名与IP地址之间的映射)
Windows:c:\windows\system32\drivers\etc\hosts
记得要配windows 下的映射,否则你用主机名进行连接时会出现问题。
Linux:vim /etc/hosts
ip地址 主机名 (有几台虚拟机写几台虚拟机)
4)关闭防火墙和selinux
a.关闭防火墙
查看防火墙状态:service iptables status
关闭防火墙:service iptables stop
建议把防火墙设置成开机关闭状态:chkconfig iptables off
b.关闭sellinux
vi /etc/sysconfig/selinux
找到SELINUX,并且设置:SELINUX=disabled
(linux的安全认证 高级运维人员会用到)
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录(记得一定要在普通用户下,不要在root用户下)
这里和用户有关的
ssh-keygen
ssh-copy-id model
测试:
ssh model
8)安装jdk
sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps
最后一定要记住:source /etc/profile
9)修改系统的启动级别 3
sudo vi /etc/inittab
(通常情况下一般是级别5,是带有图形界面系统模式,要修改成启动级别为3,是多用户,不带图形界面的,这样可以提高效率)
注意:准备事项就做完了,但一定要注意是在普通用户下操作。
2.安装Hadoop
1)上传
2)解压
tar -xvzf hadoop-2.7.6.tar.gz
3)修改配置文件
etc/hadoop/进入Hadoop下进行相应的操作
A)hadoop-env.sh
将java的环境变量添加上(根据自己的实际存放地址进行配置)
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
B)hdfs-site.xml hdfs的相关配置信息
hdfs的副本的个数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
C)core-site.xml 公共的配置
hdfs的访问的url mysql连接的url mysql:jdbc://
hdfs(协议)//主机名:端口(内部通信端口)
<property>
<name>fs.defaultFS</name>
<value>hdfs://model:9000</value>
</property>
D)mapred-site.xml mapreduce的相关配置
cp mapred-site.xml.template mapred-site.xml
mapreduce任务进行资源调度的框架
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
E)yarn-site.xml
资源调度的 计算任务的类型
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
F)slaves 从节点的信息
一行一个主机名 不要有多余的空格 也不要有多余的换行符
model
4)配置hadoop的环境变量
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
exportPATH=PATH:JAVA_HOME/bin:HADOOPHOME/bin:HADOOP_HOME/sbin
记得: source /etc/profile
验证
hadoop version
5)格式化hdfs的文件系统
hadoop namenode -format
18/09/27 15:41:40 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
ps:格式化不成功 一致格式化 直到成功 一旦成功 不能重复执行
6)启动
先启动hdfs
start-dfs.sh
启动yarn
start-yarn.sh
验证:
hdfs:
http://namenode:50070
http://model:50070

http://resourcemanager:8088
http://model:8088
(二)完全分布式的安装
##计算机配置要求:如果你的计算机是8G运行,建议集群用3台虚拟机搭建,如果是16G运行,集群可以用4台虚拟机搭建,并且运行效率还高。##
集群搭建的思路:
集群安装在多个节点上的
1)多个节点的要求:
多个节点的用户名(安装的时候使用的用户/普通用户)一定要统一
多个节点的安装目录统一
集群规划:集群中的各个节点安装的组件有哪些
HDFS yarn
namenode datanode secondarynamenode rm nm
hadoop01 namenode resourcemanager
hadoop02 datanode secondarynamenode nodemanager
hadoop03 datanode nodemanager
hadoop04 datanode nodemanager
1.安装准备:
(这里准备工作简写了,具体的可以参考伪分布式的)
1)ip
2)主机名
3)映射
4)关闭防火墙和sellinux
vi /etc/sysconfig/selinux
SELINUX=disabled
(linux的安全认证 高级运维人员会用到)
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录
一定切换到普通用户
~/.ssh
这里和用户有关的
4台机器之间 相互都需要做 免密码登录
ssh-keygen
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
ssh-copy-id hadoop04
测试:
ssh hadoop01
ssh hadoop02
ssh hadoop03
ssh hadoop04
source /etc/profile
8)修改系统的启动级别 3
sudo vi /etc/inittab
2.hadoop的安装:
先装在一个节点上 在进行远程发送
mkdir /home/hadoop/apps
1)安装jdk
sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps
记得哦:source /etc/profile
java -version
2)上传安装包
3)解压hadoop的安装包
tar -xvzf hadoop-2.7.6.tar.gz
4)配置hadoop的环境变量(根据具体存储地址进行匹配)
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
exportPATH=PATH:JAVA_HOME/bin:HADOOPHOME/bin:HADOOP_HOME/sbin
记得哦:source /etc/profile
验证
hadoop version
5)修改hadoop的配置文件 6个
记得要改主机名和相应配置文件的地址哦,一定要记住!!!
$HADOOP_HOME/etc/hadoop/
A)hadoop-env.sh
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
B)core-site.xml 公共的配置文件
hdfs的访问url hdfs://namenode的主机名:9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
hdfs的文件的存储路径 包括namenode的信息存储目录 datanode的信息存储目录 没有配置 /tmp存储 会造成核心数据的丢失 这个生产环境中一定要配置的
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
C)hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的数据的存储目录</description>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
\ datanode 的数据存储目录</description>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
D)mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
E)yarn-site.xml
配置的是yarn的主节点的 主机名
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
F)vi slaves
从节点信息 一行一个 不要有空格 和换行 datanode nodemanager
hadoop02
hadoop03
hadoop04
6)远程发送到其他节点
jdk
scp -r jdk1.8.0_73 hadoop02:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop03:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop04:/home/hadoop/apps/

hadoop:
scp -r hadoop-2.7.6 hadoop02:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop03:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop04:/home/hadoop/apps/

/etc/profile
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop03:/etc/
sudo scp /etc/profile hadoop04:/etc/
4个节点都执行 source /etc/profile

验证:
jdk
java -version
hadoop
hadoop version
7)进行格式化 格式化的是hdfs
在namenode所在的节点 —hadoop01
hadoop namenode -format
/home/hadoop/data/hadoopdata/name has been successfully formatted.
成功的格式化只能进行一次
8)启动
先启动hdfs:
任意一个节点启动 start-dfs.sh
jps
hadoop01: namenode
hadoop02: secondarynamenode datanode
hadoop03:datanode
hadoop04:datanode
启动yarn:
start-yarn.sh 最好在yarn的主节点执行 hadoop01
验证:
hdfs的网页:
主节点主机名或ip:50070
hadoop01:50070
yarn的网页:
yarn主节点的主机名或ip:8088

说明:
集群的关闭和重启的问题
集群关闭:
关闭hdfs:
stop-dfs.sh 任意节点执行
关闭yarn:
stop-yarn.sh 在yarn的主节点执行
集群重启:
不需要格式化
先启动hdfs
再启动yarn

重要事情说三遍
搭建的时候一定要 小心、细心、耐心!
搭建的时候一定要 小心、细心、耐心!
搭建的时候一定要 小心、细心、耐心!

10-06 12:08