Hadoop伪分布式集群笔记

1、基本介绍

以下是从其他地方抄过来了,目的是对即将要学的东西做一个基本的了解

  • HDFS(分布式文件系统):解决海量数据存储

  • YARN(作业调度和集群资源管理框架):解决资源任务调度

  • MAPREDUCE(分布式运算变成框架):解决海量数据计算

  • HBASE: 基于hadoop的分布式海量数据库

  • HIVE:基于hadoop的分布式数据仓库,提供SQL的查询数据操作

  • ZOOKEEPER:分布式卸掉服务基础组建

  • Mahout:基于mapreduce/spark/flink风分布式运算框架的机器学习算法库

  • Oozie:工作流调度框架

  • Sqoop:数据导入导出工具

  • Flume:日志数据采集框架

  • Ipala:基于hadoop的实时分析

2、hadoop伪分布式搭建步骤

2.1、 环境配置

  1. 三台服务器 联网(可以是多台,以后横向扩展也很方便,所以暂时用3台就够了)
  2. 配置使用sudoer(可选,为了使用方便)
  3. 时间同步
  4. 服务器hostname命名(可选,为了使用方便)
  5. ssh免密登陆
  6. 关闭防火墙
  7. 安装Java环境

注: 步骤2、4中的hotsname一致,步骤2应该在步骤4之后,因为要使用root权限,所以暂时使用su root

2.1.1、准备服务器

可以使用虚拟机代替,NET模式

2.1.2、配置使用sudoer(CentOS)
# 获取root权限
su -  (或者 su root)
# 输入密码
# 修改/etc/sudoers配置
vi /etc/sudoers
# 找到root ALL=(ALL)    ALL这行,并在下一行添加
hostname(你的hostname) ALL=(ALL)    ALL
# 保存退出
2.1.3、时间同步

使用ntp做时间同步

# 1、安装ntp
yum install -y ntpdate # CentOS安装ntp
apt-get install ntpdate # Linux安装ntp
# 2、进行时间同步
ntpdate cn.pool.ntp.org
2.1.4、服务器hostname别名命名(可选)
# 
# vi /etc/hosts
10.143.72.114(本机的服务器ip)  node1(本机ip别名)
				···  (你的服务器ip)	  node2(ip别名)
				···	 (你的服务器ip)    ···(ip别名)
				···	 (你的服务器ip)    nodenN(ip别名)	
2.1.5、ssh免密登陆
# 生成私钥
ssh-keygen -t rsa
# 分发给其他几个节点
ssh-copy-id node1
ssh-copy-id node2
...         ...
# 测试联通性
ping node1
ping node2
ping ...
2.1.6、安装Java环境
# 去adobe官网下载,解压到固定目录 例如/envirment/
tar -zxvf /envirment/jdk-8u141-linux-x64.tar.gz
# 配置
vi /etc/profile
# 在最后一行添加
export JAVA_HOME=/envirment/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 保存,退出,启用配置
source /etc/profile

2.2、hadoop配置

​ 1、下载预编译包(或者源码包,如果是源码包需要自己编译,教程官方、google、百度或者必应)

​ 2、配置hadoop文件

​ 3、修改环境变量

​ 4、hdfs格式化(格式化namenode)

​ 5、运行

在进行完第3步以后,将之前所有的配置文件(java文件、hadoop文件、profile文件)都分发给其他几个节点

2.2.1 下载、使用hadoop
  1. 从官网链接里面找到自己需要的版本下载
  2. 解压到本地路径(我解压路径为/hadoop/)

使用预编译的包可能后期会出现部分坑(反正我还没踩到),使用源码包在编译过程中就会无数踩坑,我踩的受不了了才选择预编译包.

2.2.2 配置hadoop文件

以下操作都在hadoop文件下的etc文件夹内hadoop文件内进行,另外,各个文件的配置到底作用点在哪,就不做介绍了,有需要的可以搜一下,这个没什么坑.

​ 修改hadoop-env.sh配置

# 找到JAVA_HOME,修改为
export JAVA_HOME=/envirment/jdk1.8.0_141

​ 修改core-site.xml文件配置

<property>
        <name>fs.defaultFSname>
        <value>hdfs://node1:9000value>
property>
<property>
        <name>hadoop.tmp.dirname>
        <value>/export/data/hadoopdatavalue>
property>

​ 修改hdfs-site.xml文件配置


<property>
	<name>dfx.replicationname>
	<value>2value>
property>

<property>
	<name>dfx.namenode.secondary.http-addressname>
	<value>node1:50090value>
property>

​ 修改mapred-site.xml文件配置


<property>
	<name>mapreduce.framework.namename>
	<value>yarnvalue>
property>

如果没有找到该文件,就将mapred-site.xml.template文件重命名为mapred-site.xml

​ 修改yarn-site.xml文件配置

<property>
	<name>yarn.resourcemanager.hostnamename>
	<value>node1value>
property>

<property>
	<name>yarn.nodemanager.aux-servicesname>
	<value>mapreduce_shufflevalue>
property>

​ 修改slaves文件配置

vi slaves
# 添加
node1
node2
node3
...

每行一个hostname

2.2.3、修改环境变量
vi /etc/profile
# 在文件内最后一行添加,HADOOP_HOME是之前下载的hadoop解压文件路径
export HADOOP_HOME=/hadoop/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 
# 保存退出
source /etc/profile

文件分发,或者手动将之前配置的文件copy到其他节点

2.2.4、hdfs格式化(格式化namenode)
hadoop namenode -format
2.2.5、运行

以下命令在/hadoop/hadoop-2.6.4/sbin文件下执行

# 启动命令分为单独启动和快速启动两种
# 单独启动
start-dfs.sh
start-yarn.sh
# 单独停止
stop-dfs.sh
stop-yarn.sh
# 快速启动
start-all.sh
# 快速停止
stop=all.sh


# 检查
jps
# 会打印出以下的内容
42452 SecondaryNameNode
42308 DataNode
45767 Jps
42683 NodeManager
42191 NameNode
42591 ResourceManager
# 打开浏览器,输入http://127.0.0.1:50090或者 node1的ip地址:50090

剩下的可以开始练习dfs语法了

hadoop fs mkdir /file
hadoop fs -put /file /file # 前者为本地path,后者为节点path
hadoop fs -get /file
hadoop fs -stat /file
fs -stat "%b %F %g %n %o %r %u %y %Y" /file
等等...

本文是查看文档、视频以及自己踩坑后完成的,总体感觉是文档晦涩难懂,而且容易踩坑,需要视频辅助,但是视频与自己本机环境又不是很相同,还需要一部分配置修改,而且环境搭建好的实践最好参照实践来.总之,它山之石可以攻玉.

你可能感兴趣的:(hadoop,hadoop,分布式,大数据)