Hadoop集群安装
1、简介
Hadoop是一个分布式系统基础架构。
Hadoop的框架核心设计是HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
2、核心架构
MapReduce引擎,该引擎是由JobTrackers和TaskTrackers组成
HDFS就想一个传统的分级文件系统。可以创建、删除、移动或重命名文件等,但是HDFS是基于一组特定的节点构建,这是由它自身的特点决定的。这些节点包括:
NameNode(仅一个),它在HDFS内部提供元数据服务。
DataNode,它为HDFS提供存储块。
由于仅存在一个NameNode,因此这个HDFS的一个缺点(单点失败)。
3、子项目
HDFS:Hadoop分布式文件系统。
MapReduce:并行计算框架。
Hbase:NoSQL列数据库。
Hive:数据仓库工具。
Zookeeper:分布式锁设施。
Avro:新的数据序列化格式和传输工具,将逐步取代Hadoop原有的IPC机制。
Pig:大数据分析平台,为用户提供多接口。
Ambari:Hadoop管理工具,为用户提供多种接口。
Sqoop:于在hadoop与传统的数据库间进行数据传递。
4、Hadoop的三种运行模式
单机模式
单机模式是Hadoop的默认模式
因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程
所有程序都是在同一个JVM上执行
该模式主要用于开发调试MapReduce程序的应用逻辑
伪分布式
Hadoop守护进程运行在本地机器上,模拟一个小规模的集群
Hadoop的每个守护进程都运行在单独的Java进程中
全分布式
Hadoop守护进程运行在一个集群上
如:集群环境中,NameNode 和ResourceManager各运行于一台单独的主机,作为master。而其他的主机做为DataNode和NodeManager,做为slave。
5、Hadoop集群安装
配置SSH免密码登录
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
单模式安装
默认模式
不对配置文件进行修改
使用本地文件系统
Hadoop的守护进行启动
用于对MapReduce程序的逻辑进行调试
伪分布式安装
一台主机模拟多台主机
每个守护进程都以java进程的形式
代码调试,检查内存使用情况
HDFS输入输出,以及其他的守护进程交互
修改3个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml
namered数据格式化
core-site.xml
fs.defaultFS配置NameNode的URI
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
dfs.replication设置块的复制数量
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
mapreduce.framework.name配置MapReduce应用使用Yarn框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
yarn.nodemanager.aux-services:为NodeManager配置MapReduce应用的Shuffle服务
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
将hadoop添加到环境变量
exportJAVA_HOME=/usr/java/jdk1.7.0_65
exportHADOOP_HOME=/itcast/hadoop-2.7.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
格式化namenode
hadoop namenode –format
启动hadoop
1、先启动HDFS sbin/start-dfs.sh
2、再启动YARN sbin/start-yarn.sh
验证是否启动成功
使用jps命令验证
http://192.168.20.30:50070(HDFS管理界面)
http://192.168.20.30:8088(MR管理界面)
全分布式安装
多台主机
JDK和Hadoop安装
设置SSH免密码登录
修改3个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml
namered数据格式化
- 配置hosts文件
vi/etc/hosts
- 配置ssh免密码连入
- 下载并解压hadoop安装包
- 配置namenode,修改site文件
- 配置hadoop-env.sh文件
- 配置masters和slaves文件
- 向各节点复制hadoop
- 格式化namenode
- 启动hadoop
- 用jps检验各后台进程是否成功启动
- http://master:8088和http://master:50070
- 通过网站查看集群情况
问题:http://blog.sina.com.cn/s/blog_6fd0fd4b0102v7b9.html
问题定位:所有namenode目录、所有datanode目录、从节点临时目录
问题原因:
1) 主节点的namenode clusterID与从节点的datanodeclusterID不一致
2) 多次格式化了namenode跟datanode之后的结果,格式化之后从节点生成了新的ID,造成不一致
解决办法:
1) 在格式化之前,先把所有的服务停掉(stop-dfs.sh、stop-yarn.sh或者stop-all.sh),确保都停掉了之后,分别到所有节点的namenode目录、datanode目录、临时目录,把以上目录里面的所有内容都删除掉。然后再重新启动就可以了。
2)
3) 10.查看Map/Reduce是否正常
4) 参考地址:http://jingyan.baidu.com/article/ce09321b7a2e052bff858fd9.html
常用的端口配置
2.1 HDFS端口
参数 | 描述 | 默认 | 配置文件 | 例子值 |
fs.default.name namenode | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
dfs.http.address | NameNode web管理端口 | 50070 | hdfs- site.xml | 0.0.0.0:50070 |
dfs.datanode.address | datanode 控制端口 | 50010 | hdfs -site.xml | 0.0.0.0:50010 |
dfs.datanode.ipc.address | datanode的RPC服务器地址和端口 | 50020 | hdfs-site.xml | 0.0.0.0:50020 |
dfs.datanode.http.address | datanode的HTTP服务器和端口 | 50075 | hdfs-site.xml | 0.0.0.0:50075 |
2.2 MR端口
参数 | 描述 | 默认 | 配置文件 | 例子值 |
mapred.job.tracker | job-tracker交互端口 | 8021 | mapred-site.xml | hdfs://master:8021/ |
job | tracker的web管理端口 | 50030 | mapred-site.xml | 0.0.0.0:50030 |
mapred.task.tracker.http.address | task-tracker的HTTP端口 | 50060 | mapred-site.xml | 0.0.0.0:50060 |
2.3 其它端口
参数 | 描述 | 默认 | 配置文件 | 例子值 |
dfs.secondary.http.address | secondary NameNode web管理端口 | 50090 | hdfs-site.xml | 0.0.0.0:50090 |
|
|
|
|
|
|
|
|
|
|