Hadoop-1.01

Hadoop关联项目

HBase:能支持结构化数据大表存储的可扩展的、分布式的数据库。
Hive:能够支持数据的汇总和临时查询的数据仓库基础框架。
ZooKeeper:一个分布式应用的高性能协调的服务。
Spark:一个快速和通用的计算Hadoop数据引擎。

核心

HDFS:Hadoop Distributed File System 分布式文件系统 MapReduce:分布式计算模型
Yarn:资源管理平台,在上面运行分布式计算,典型的计算模型有 MapReduce、Storm、Spark等
HDFS的架构: 负责对数据的分布式存储,主从结构

  • 主节点——namenode
    可以有2个,负责内容:
    1)接收用户的请求操作,是用户操作的入口
    2)维护文件系统的目录结构,称为命名空间
  • 从节点——datanode
    至少一个,只干一件事:存储数据
    Yarn的架构: 是一个资源的调度和管理平台,也是主从结构
  • 主节点——ResourceManager
    可以有2个,主要负责:
    1)集群资源的分配和调度
    2)MR、Storm、Spark等应用,要想被RM管理,必须实现ApplicationMaster接口
  • 从节点——NodeManager
    可以有多个,主要就是单节点资源的管理。
    MapReduce的架构:依赖于磁盘IO的批处理计算模型,
  • 只有一个主节点——MRAppMaster,主要负责:
    1)接收客户端提交的计算任务
    2)把计算任务分给NodeManager中的Container执行,即任务调度
    3)监控Task的执行情况

环境搭建

安装linux环境

一、关闭防火墙
	CentOS6:		
		1、关闭防火墙
			]# service iptables stop
		2、从开机启动项中关闭防火墙
			]# chkconfig iptables off/on--打开
		3、查看防火墙状态
			]# service iptables status
		4、查看防火墙的开机状态
			]# chkconfig --list | grep iptables
		
	CentOS7:			
		systemctl stop firewalld.service #停止firewall
		systemctl disable firewalld.service #禁止firewall开机启动	
		firewall-cmd --state			#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
		systemctl list-unit-files|grep firewalld.service            --防火墙处于关闭状态
		
二、主机名
	]# vim /etc/sysconfig/network
	修改其中的host
		HOSTNAME=uplooking01
	修改IP地址
                    
		注意:①勾选选项“Connect automatically”
		       勾选选项“Available to all users”
		     ②删除其余的连接配置信息
		     ③调整系统的时间

		选择手动manual
		添加IP地址(vim /etc/sysconfig/network-scripts/ifcfg-eth0)
		编辑的内容:
			DEVICE="eth0"
			**BOOTPROTO=static
			HWADDR="00:0C:29:73:2A:9B"
			IPV6INIT="yes"
			NM_CONTROLLED="yes"
			ONBOOT="yes"
			TYPE="Ethernet"
			UUID="8481efb8-9387-41a6-9c37-fbb554af7a78"
			IPADDR=192.168.8.101
			NETMASK=255.255.255.0
			GATEWAY=192.168.8.2
			DNS1=8.8.8.8

		
		通过下面的命令:service network restart,让网络配置立马生效。

                    刷新
                    查看ip新配置的ip地址
                       [root@localhost Desktop]# ifconfig
                    看是否能够连接外网
                        ping www.baidu.com						

	配置域名映射:
		]# vim /etc/hosts
		加入一行内容:
			192.168.8.101	uplooking01

                    显示隐藏文件:ls -a
                    删除文件:rm 文件名

	同时在windows的域名映射文件C:/windows/System32/drivers/etc/hosts中加入:
		192.168.8.101	uplooking01

	关闭selinux,否则户影响软件的正常使用:
		vim /etc/selinux/config
		设置selinux=disabled

1、修改linux的启动模式
 centos6  =
	vim /etc/inittab
		将模式从5修改为3
		id:5:initdefault:---》id:3:initdefault:				
	重启linux系统
              reboot
            关机:poweroff   
			
	注意:在命令行模式下,通过命令init 5 指令切换回图形界面模式。
	快捷键:ctrl+alt+f2  命令行
	             ctrl+alt+f1  图形
			
  centos7  =
	systemctl get-default #查看当前默认启动模式
    systemctl set-default multi-user.target #更改启动模式为多用户命令行模式
	
   其实这个命令只是更改了一个软链接而已,/etc/systemd/system/default.target是一个软链接文件,所链接的文件就是各启动模式的配置文件,
   多用户命令行模式的文件是/usr/lib/systemd/system/multi-user.target,图形模式则是/usr/lib/systemd/system/graphical.target		

三、使用客户端工具来操作linux系统
         XshellXftpPortable

四、在Linux下面安装jdk
            前提:创建目录soft
            [root@uplooking01 opt]# mkdir soft

	1、安装JDK
		当前目录:/opt
		1°、解压
			opt]# tar -zxvf soft/jdk-8u112-linux-x64.tar.gz
		2°、重命名:
			opt]# mv jdk1.8.0_112/ jdk
		3°、将JAVA_HOME配置到linux的环境变量里面:
			vim /etc/profile.d/bigdata-etc.sh
				加入以下内容:
				export JAVA_HOME=/opt/jdk
				export PATH=$PATH:$JAVA_HOME/bin
		4°、让环境变量生效:
			source /etc/profile.d/bigdata-etc.sh
		5°、测试jdk是否安装成功:
			java -version


    	
    Hadoop轻松安装前提~>配置ssh免密码登录:
		 进入到我的home目录
		 cd ~/.ssh

		ssh-keygen -t rsa

		一路回车

		执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
		将公钥拷贝到要免登陆的机器上(.ssh/id_rsa.pub)

		ssh-copy-id -i root@uplooking01
		根据提示输入当前机器的密码
		验证:ssh uplooking01 不需要再输入密码

                    需求:希望通过uplooking01机器上的root用户面密码登录到机器uplooking02上(192.168.8.102)
		 

五、Hadoop的安装
	1、Hadoop的安装
		hadoop的版本:hadoop-2.6.4.tar.gz
		1°、解压:
			]# tar -zxvf /opt/soft/hadoop-2.6.4.tar.gz -C /opt/
		2°、重命名:
			opt]# mv hadoop-2.6.4/ hadoop
		3°、添加hadoop相关命令到环境变量中
			vim /etc/profile.d/hadoop-etc.sh
			加入以下内容:
			export HADOOP_HOME=/opt/hadoop
			export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

			目的:可以在任意路径下调用指定目录中的可执行文件(命令)

		4°、创建数据存储目录:(-p:批量创建目录)
			[root@uplooking01 opt]# mkdir -p /opt/hadoop-repo/name
			[root@uplooking01 opt]# mkdir -p /opt/hadoop-repo/secondary
			[root@uplooking01 opt]# mkdir -p /opt/hadoop-repo/data
			[root@uplooking01 opt]# mkdir -p /opt/hadoop-repo/tmp

			1) NameNode 数据存放目录: /opt/hadoop-repo/name
			2) SecondaryNameNode 数据存放目录: /opt/hadoop-repo/secondary
			3) DataNode 数据存放目录: /opt/hadoop-repo/data
			4) 临时数据存放目录: /opt/hadoop-repo/tmp	
		5°、配置
			要配置的文件
				hadoop-env.sh 
				yarn-env.sh 
				hdfs-site.xml 
				core-site.xml 
				mapred-site.xml 
				yarn-site.xml
			1)、配置hadoop-env.sh (脚本文件:/etc/profile.d/bigdata.sh中已经配置了名为JAVA_HOME的环境变量,此处不用配置了。)
				export JAVA_HOME=/opt/jdk
			2)、配置yarn-env.sh
				export JAVA_HOME=/opt/jdk
			3)、配置hdfs-site.xml
				
					  
						dfs.namenode.name.dir  
						file:///opt/hadoop-repo/name  
					
					 
						dfs.datanode.data.dir  
						file:///opt/hadoop-repo/data  
					
					
						dfs.namenode.checkpoint.dir
						file:///opt/hadoop-repo/secondary
					
					
					
						dfs.namenode.secondary.http-address
						uplooking01:9001
					
					
					
						dfs.replication
						1
					
					
					 
						dfs.webhdfs.enabled  
						true  
					
					
					
						dfs.permissions
						false
					 
				
			4)、配置core-site.xml
				
					
					
						fs.defaultFS
						hdfs://uplooking01:9000
					
					
					
						hadoop.tmp.dir
						file:///opt/hadoop-repo/tmp
					
				
			5)、配置mapred-site.xml
				
					
					
						mapreduce.framework.name
						yarn
					 
					
					  
						mapreduce.jobhistory.address  
						uplooking01:10020  
					
					
					  
						mapreduce.jobhistory.webapp.address  
						uplooking01:19888  
					
					
						mapreduce.map.log.level
						INFO
					
					
						mapreduce.reduce.log.level
						INFO
					
								
			6)、配置yarn-site.xml
				
					
					
						yarn.nodemanager.aux-services
						mapreduce_shuffle
					
					
					
						yarn.resourcemanager.hostname
						uplooking01
					 
					  
						yarn.resourcemanager.address  
						uplooking01:8032  
					  
					  
						yarn.resourcemanager.scheduler.address  
						uplooking01:8030  
					  
					  
						yarn.resourcemanager.resource-tracker.address  
						uplooking01:8031  
					  
					  
						yarn.resourcemanager.admin.address  
						uplooking01:8033  
					
					 
						yarn.resourcemanager.webapp.address  
						uplooking01:8088  
					
					
						yarn.log-aggregation-enable  
						true  
					
				
		格式化hadoop文件系统
			hdfs namenode -format
			标志:Storage directory /opt/hadoop-repo/name has been successfully formatted.

		启动hadoop
			start-all.sh
			分为以下
			start-dfs.sh
			start-yarn.sh
			启动成功之后,通过java命令jps(java process status)会出现5个进程:
				start-dfs.sh
					NameNode
					SecondaryNameNode
					DataNode		

	
				单独启动进程:
				   hadoop-daemon.sh start datanode
					
				start-yarn.sh
					ResourceManager
					NodeManager
										
				单独启动进程:
				   yarn-daemon.sh start nodemanager
				   
		验证:
			将本地编辑好的文件上传到hdfs上
			hdfs dfs -put hello.txt /

			1°、在命令中执行以下命令:
				hdfs dfs -ls /

				查看内容:
				   hdfs dfs -cat /hello.txt
				   hdfs dfs -text /hello.txt


			2°、在浏览器中输入
			http://uplooking01:50070 (HDFS管理界面)
			http://uplooking01:8088 (MR管理界面)

			3°、验证mr
				/opt/hadoop/share/hadoop/mapreduce目录下面,执行如下命令:
				yarn jar hadoop-mapreduce-examples-2.6.4.jar wordcount /hello.txt /out

				hadoop-mapreduce-examples-2.6.4.jar:作者设计的很多例子
                                    wordcount有一个java源程序编译好的类,该类有入口main,该类的名称是:wordcount
                                    /hello :hdfs上待计算的资源
				/out :计算结果输出的目录

				查看内容:
				  hdfs dfs -cat /output/part-r-00000

你可能感兴趣的:(Hadoop-1.01)