1、大数据概述
大数据是指无法在一定时间内使用传统的数据库软件工具对其内容进行抓取、管理和处理的数据集合。
有5V+1C的特性
2、hadoop背景
google提出的两个处理抓取网页数据的解决方案:
1】分布式文件系统(GFS):处理海量网页的存储-----引申出HDFS
2】分布式技算框架MAPREDUCE:处理海量网页的索引----引申出MAPREDUCE
最终独立出HADOOP
3、hadoop和hadoop生态圈
宏观:hadoop为主的生态圈:hadoop flume 等工具
狭义:apache hadoop
hadoop.apache.org
4、hadoop的三大组件(存储+计算+资源和作业调度)
hadoop1.X:HDFS 存储
MAPREDUCE 计算+资源和作业调度
hadoop2.X(企业使用最广):
HDFS 存储
MAPREDUCE 计算
YARN 资源和作业调度平台(可以放很多其他组件)
hadoop3.X:
5、Maven部署
Maven:jar包管理
1】网址:http://mvnrepository.com/
查找hadoop
2】选择2.8.1
3】使用的时候,找到jar包里面复制maven里的内容放在配置文件就可以自动jar更新。
4】Maven部署
(1)rz命令将apache-maven-3.3.9-bin.zip传输到服务器中
(2)解压 unzip apache-maven-3.3.9-bin.zip
(3)进入apchemaven,cd apache-maven-3.3.9,ll展开,发现有bin目录
(4)配置到全局的环境变量
1)打开 /etc/profile 文件
2)添加环境变量
3)Path
6、which mvn看环境变量生效了没
7、打开conf目录下的settings.xml文件
8、此处由于下载文件包的时间太长,使用j哥提供的.m2/repository文件来直接编译。
(1)由上图得知,maven更新的jar包是放在home/.m2/repository下,所以要把j哥提供的.m2/repository文件放在home目录下
mv .m2.tar.gz ~
(2)在根目录进行解压 tar -xzvf .m2.tar.gz
注意:有空了解下自行下载的步骤。
9、hadoop编译
(1)src
(2)解压 tar -xzvf hadoop-2.8.1-src.tar.gz
(3)存在pom.xml说明是maven工程,可以通过mvn进行编译
(4)查看BUILDING.TXT文件查看环境要求,cd 到hadoop-2.8.1-src文件打开BUILDING.txt
jdk:java -version(符合)
maven:mvn -version(符合)
下载Findbugs组件:
1)由于已经下载好了,因此只需解压后配置环境变量即可在/opt/software目录下:unzip findbugs-1.3.9.zip
2)vi /etc/profile
export FINDBUGS_HOME=/opt/software/findbugs-1.3.9
export PATH=$FINDBUGS_HOME/bin:$MVN_HOME/bin:$JAVA_HOME/bin:$PATH
3)source /etc/profile
4)findbugs -version
下载protobuf-2.5.0
1)由于已经下载好了,因此只需解压后配置环境变量即可在/opt/software目录下:tar -xzvf protobuf-2.5.0.tar.gz
2)ll一下,发现protobuf解压后权限有问题需要修改用户组与用户权限:chown -R root
3)进入protobuf-2.5.0目录进行配置操作
4)yum安装gcc等倚赖:yum install -y gcc gcc-c++ make cmake
5)预编译protobuf:./configure --prefix=/usr/local/protobuf
6)make && make install:make && make install的意思就是执行make如果没有发生错误就执行make install。
7)配置环境变量:
vi /etc/profile
export PROTOC_HOME=/usr/local/protobuf
export PATH=$PROTOC_HOME/bin:
source /etc/profile
protoc --version
其余倚赖组件:通过yum安装:
yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake
注意: 在第二窗口想同时安装yum发生lock错误的话,可以通过杀僵尸线程来处理
(8)hadoop编译
打开BULIDING.TXT文件
选择其中比较适合的语句,再去掉docs.src两项。
安装CDH版本Hadoop要改下hadoop-annotations下的jdk版本指向1.8就行了
mvn clean package -Pdist,native -DskipTests -Dtar(clean是清理maven文件)
注意:要在由pom文件的hadoop-2.8.1-src目录中操作,否则会报错。
成功:
10、提醒:
(1)有时候编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,
此时按ctrl+c,重新运行编译命令。
(2)如果出现缺少了某个文件的情况,则要先清理maven(使用命令 mvn clean) 再重新编译。
11、编译Hadoop是为了修改源码,二次开发。
12、hadoop伪分布式部署(hdfs)
单机 没进程
伪分布式部署(*) 进程存在+1节点 开发
集群部署 进程存在+N节点 开发、生产
注意:
下载的包:src-------源代码包里面不包含jar 小
不带src或者带bin的文件------说明是编译好的组件 大
(1)解压:hadoop-2.8.1.tar.gz tar -xzvf hadoop-2.8.1.tar.gz
修改权限:chown -R root:root hadoop-2.8.1
(2)解读解压文件:
drwxrwxr-x. 2 root root 4096 Jun 2 2017 bin
drwxrwxr-x. 3 root root 4096 Jun 2 2017 etc
drwxrwxr-x. 2 root root 4096 Jun 2 2017 include
drwxrwxr-x. 3 root root 4096 Jun 2 2017 lib
drwxrwxr-x. 2 root root 4096 Jun 2 2017 libexec
-rw-rw-r--. 1 root root 99253 Jun 2 2017 LICENSE.txt
-rw-rw-r--. 1 root root 15915 Jun 2 2017 NOTICE.txt
-rw-r--r--. 1 root root 1366 Jun 2 2017 README.txt
drwxrwxr-x. 2 root root 4096 Jun 2 2017 sbin
drwxrwxr-x. 4 root root 4096 Jun 2 2017 share
(3)删除掉cmd文件 rm -f bin/*.cmd rm -f sbin/*.cmd
13、配置环境变量
与上述配置步骤一样
14、配置core-site.xml
官网的配置说明:
打开hadoop文件,路径/etc/hadoop
ll展开打开core-site.xml,将官网的第一段内容配置内容复制上去:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置hdfs保存数据的副本数量:
打开hdfs-site.xml,将第二段内容
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
黏贴上去。
以**意!!!是这几个xml文件的配置规则,一定要理解和记住。
15、配置ssh无密
将公钥文件放authorized_keys的步骤一致:
rm -rf .ssh
ssh-******
cd .ssh
cat id_rsa.pub >> authorized_keys
即可ssh无密
16、格式化hdfs
格式化成hdfs需要的类型
hdfs namenode -format
17、启动hdfs
在sbin目录下,执行脚本start-dfs.sh
解决方法:
(1)找到hadoop目录下hadoop-env.sh脚本
(2)填写JAVA_HOME
echo $JAVA_HOME查出路径
重新执行启动脚本,填yes,启动成功
测试:
(1)生成一个文件HBinz.log
(2)放在hdfs中 / 目录下
hdfs dfs -put HBinz.log /
(3)查看hdfs / 目录下是否有该文件
(4)查看hdfs / 目录下的HBinz.log文件内容是否与服务器根目录中的HBinz.log文件内容一致
测试结果成功!!!!