-
- hadoop集群搭建的准备操作:
准备大数据集群(三台或者四台服务器,推荐四台)
推荐:四台服务器的主机名分别是:hadoop02, hadoop03, hadoop04, hadoop05
对以上四台服务器需要做以下准备操作,这些准备都是为了将来搭建hadoop集群做准备的
1、修改各服务器的主机名 vi /etc/sysconfig/network
2、配置各服务器的IP 三种方式 图形界面 setup 修改配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0
3、配置各服务器的主机映射 vi /etc/hosts
4、添加hadoop用户,并且添加sudoer权限 vi /etc/sudoers
5、关闭防火墙/关闭selinux service iptables stop chkconfig iptables off
6、更改系统启动级别为3 vi /etc/inittab
7、安装JDK
8、四台服务器做时间同步(误差在30秒内)
9、四台服务器配置SSH (互相做免密访问)
-
- 搭建hadoop的分布式集群
第一件事: 获取hadoop安装包hadoop-2.7.5.tar.gz
第二件事: 确定你要安装的软件的版本
集群中的各个角色的名称:
服务 主节点 从节点
HDFS NameNode DataNode
YARN ResourceManager NodeManager
服务器的角色规划:
服务器的数量有四台:
服务 hadoop02 hadoop03 hadoop04 hadoop05
HDFS namenode datanode datanode datanode
YARN nodemanager nodemanager nodemanager ResourceManager
HDFS集群的主节点: hadoop02
正式的安装:
1、获取安装包
2、解压缩 和 安装
3、修改配置文件
4、初始化,配置环境变量,启动,验证
具体的操作步骤:
1、准备好四台服务器,做好规划
服务器
规划安装的用户: hadoop
规划安装目录:/home/hadoop/apps
规划数据目录:/home/hadoop/data
2、获取安装包
1、从网络上获取 或者 自己编译
2、把安装包上传到服务器
3、解压缩
tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz -C ~/apps/
4、修改配置文件
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
1、hadoop-env.sh
修改JAVA_HOME
把
export JAVA_HOME=${JAVA_HOME}
改成
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
2、core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop02:9000</value>
</property>
fs.defaultFS = hdfs://hadoop02:9000
jdbc:mysql://hadoop02:3306
schema 模式信息
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
hadoop.tmp.dir hadoop集群在工作的时候存储的一些临时文件的目录
3、hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>为了保证元数据的安全一般配置多个不同目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数, 默认是3</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop03:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4、mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5、yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop05</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6、slaves : 非必须配置文件 方便start-dfs.sh 还有 start-yarn.sh等去寻找当前集群到底有那些从节点
从而发送命令去命令对应的服务器启动对应的进程
配置的信息: 是hadoop集群的从节点列表
hadoop02
hadoop03
hadoop04
hadoop05
5、当前的hadoop安装包是存在于hadoop02上的。 但是安装的hadoop是一个分布式的集群。
所以现在的问题: 整个集群中只有hadoop02有安装包, hadoop03, hadoop04, hadoop05 没有。
关键操作:
把安装包分别分发给其他的节点
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
scp -r hadoop-2.7.5/ hadoop@hadoop03:~/apps/
scp -r hadoop-2.7.5/ hadoop@hadoop04:~/apps/
scp -r hadoop-2.7.5/ hadoop@hadoop05:~/apps/
6、配置环境变量
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
千万注意:
1、如果你使用root用户进行安装。 vi /etc/profile 即可 系统变量
2、如果你使用普通用户进行安装。 vi ~/.bashrc 用户变量
环境变量: 系统变量 用户变量
7、初始化
$HADOOP_HOME/bin/hadoop namenode -format
[hadoop@hadoop02 bin]$ /home/hadoop/apps/hadoop-2.7.5/bin/hadoop namenode -format
只能在HDFS的主节点进行
8、启动
1、启动HDFS : 不管在集群中的那个节点都可以
[hadoop@hadoop02 bin]$ /home/hadoop/apps/hadoop-2.7.5/sbin/start-dfs.sh
2、启动YARN : 只能在主节点中进行启动
[hadoop@hadoop02 bin]$ /home/hadoop/apps/hadoop-2.7.5/sbin/start-yarn.sh
9、检测 或者 验证是否成功
1、JPS 命令 查看 对应的守护进行是否都启动成功
2、启动HDFS和YARN的web管理界面
HDFS : http://hadoop02:50070
YARN : http://hadoop05:8088
疑惑: fs.defaultFS = hdfs://hadoop02:9000
客户单访问HDFS集群所使用的URL地址
同时,HDFS提供了一个web管理界面 端口:50070
3、简单使用
HDFS :
上传文件:hadoop fs -put zookeeper.out /
下载文件:hadoop fs -get /zookeeper.out
YARN :
假如现在有一个文件: /wc/input/words.txt
hello huangbo
hello xuzheng
hello wangbaoqiang
hadoop fs -mkdir -p /wc/input
运行一个mapreduce的例子程序: wordcount
命令:
hadoop jar /home/hadoop/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /wc/input /wc/output
查看最终结果:
hadoop fs -cat /wc/output/part-r-00000