《快学BigData》--Hadoop总结(A)(34)

2023-03-06 21:18:31 浏览数 (2)

Hadoop总结

谁说大象不能跳舞,大象能跳舞啊!!!!不过跳起来是笨重的、、、、、、

概述

Hadoop 是一个性能、可靠性、可扩展性、可管理性的软件,为以后的分布式打下了基础,接下来咱们好好的深刨一下这个有意思的框架。

因为MR是进程集运算,写代码的时候不注意线程安全的问题。

Hadoop 使用的是socket长连接,原理是一直保持着心跳,传送数据,再心跳的一个过程,短连接则是请求一次之后就关闭了,步骤是:连接→数据传输→关闭连接,例如银行就是使用的短连接。

CDH

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

详细的使用请查看:http://blog.csdn.net/xfg0218/article/details/52490971

http://blog.csdn.net/xfg0218/article/details/54880533

安装Hadoop2.6.4 非Zookeeper集群版

此安装的是hadoop2.x版本,所以有YAEN的概念

1-1)、安装

[root@hadoop1 hadoop]# tar -zxvf hadoop-2.6.4.tar.gz

[root@hadoop1 hadoop-2.6.4]# cd etc/hadoop/

1-2)、修改配置文件

A)、修改core-site.xml

[root@hadoop1 hadoop]# vi core-site.xml

加入以下配置:

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop1:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/tmpe</value>

</property>

</configuration>

B)、修改hadoop-env.sh

[root@hadoop1 hadoop]# vi hadoop-env.sh

加入以下配置:

export JAVA_HOME=/home/jdk/jdk1.7.0_76

C)、修改hdfs-site.xml

[root@hadoop1 hadoop]#vi hdfs-site.xml

加入以下配置:

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/data/name</value>

</property>

# 数据保存路径

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/hadoop/data/data</value>

</property>

# 设置副本数

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

# http的请求地址

<property>

<name>dfs.secondary.http.address</name>

<value>hadoop1:50090</value>

</property>

# 管理权限的,如果这只为false可在win端直接把数据保存到HDFS上

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

D)、修改slaves

[root@hadoop1 hadoo]# cat slaves

加入以下配置:

hadoop1

hadoop2

hadoop3

E)、修改mapred-env.sh

[root@hadoop1 hadoop]# cat mapred-env.sh

加入以下配置:

export JAVA_HOME=/home/jdk/jdk1.7.0_76

F)、修改yarn-site.xml

[root@hadoop1 hadoop]# vi yarn-site.xml

加入以下配置:

<configuration>

# 设置namenode的节点的机器

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop1</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

G)、修改yarn-env.sh

[root@hadoop1 hadoop]# vi yarn-env.sh

添加JAVA路径

export JAVA_HOME=/home/jdk1.7

H)、创建文件夹

[root@hadoop1 hadoop]# mkdir - p /home/tmpe

[root@hadoop1 hadoop]# mkdir -p /home/hadoop/data/name

[root@hadoop1 hadoop]# mkdir -p /home/hadoop/data/data

1-3)、传送到其他的机器上

[root@hadoop1 local]# scp -r hadoop-2.6.4/ hadoop2:$PWD

[root@hadoop1 local]# scp -r hadoop-2.6.4/ hadoop3:/usr/local/

1-4)、Hadoop启动命令

在hadoop1集群的机器上格式化数据

[root@hadoop1 bin]# hadoop namenode -fromat

启动全部的进程:

[root@hadoop1 sbin]# ./start-all.sh

或者单独的启动程序:

[root@hadoop1 sbin]# ./start-dfs.sh

[root@hadoop1 sbin]# ./start-yarn.sh

1-5)、集群启动

[root@hadoop1 sbin]# ./start-all.sh

This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh

Starting namenodes on [hadoop1]

hadoop1: starting namenode, logging to

hadoop1: starting datanode, logging to

hadoop3: starting datanode, logging to

hadoop2: starting datanode, logging to

Starting secondary namenodes [hadoop1]

hadoop1: starting secondarynamenode, logging

starting yarn daemons

starting resourcemanager, logging to

hadoop3: starting nodemanager, logging to

hadoop2: starting nodemanager, logging to

hadoop1: starting nodemanager, logging to

从上面的启动过程可以看出如果机器上有namenode先回启动namenode没有namenode则会启动datanode最后再启动secondarynamenode

1-6)、查看进程

查看进程:

[root@hadoop1 ~]# jps

7996 DataNode

8366 NodeManager

8733 Jps

8251 ResourceManager

[root@hadoop2 ~]# jps

5575 NodeManager

5783 Jps

5466 SecondaryNameNode

5369 DataNode

[root@hadoop3 ~]# jps

4615 Jps

4298 DataNode

4441 NodeManager

1-7)、启动脚本

[root@hadoop1 start_sh]# cat hadoop.sh

cd /usr/local/hadoop-2.6.4/sbin

./start-all.sh

0 人点赞