大数据特点
volume:产生的数据量计算量很大
variety:数据来源数据格式多种多样
value:价值密度低,综合价值大
velocity:增长速度处理速度,要求系统在短时间内做出反应,可用于生成决策的时间非常少
开源组件:
hadoop,spark(内存计算),hbase(列式数据库),zookeeper,nutch(数据采集),storm(流式计算)
R语言(可视化),hive,impala,麒麟
hadoop的主要模块:
HDFS,MapReduce,YARN,COMMON
hadoop集群
·M/S架构(主从架构)
·Master:主节点,运行NameNode(namespace源数据存储),ResourceManager服务进程
·Slave:从节点,运行DataNode,NodeManager服务进程
·服务进程举例
·NameNode,负责记录各个数据块存储空间,与DataNode进行通信,
获取其健康状态信息,并根据决策算法将数据分发到某些节点
·DataNode,负责实际数据的存储,与NameNode进行通信,将其所在
节点的存储状态汇报给NameNode,以供其决策。
安装虚拟机
VMware workstation 11-12版本
Centos镜像
1安装虚拟机
CD/DVD选择下载的镜像文件
网络适配器选择NAT模式
disc found 选择skip回车
是,忽略所有数据
主机名:bigdata
根密码root用户的密码
使用所有空间,将修改写入磁盘
---->开始
-----------安装完成
登录
ping www.baidu.com
vi etc/sysconfig/network-scripts/ifcfg-eth0
修改on_boot改成yes
重启虚拟机
service network restart
ifconfig查看ip地址
联网后安装软件
yum install -y vim
关闭虚拟机shutdown -h now
2远程连接
xshell5
xftp5
3在Linux上搭建Hadoop集群
下载软件
1. Jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. Hadoop包:http://apache.fayea.com/hadoop/common/hadoop-2.7.2/
下载到对应目录后,用Xftp把文件考到虚拟机上
步骤:
1、修改主机名:
vi /etc/hosts
把ip地址和主机名bigdata添加到文件配置中
reboot重启
2、配置JDK
安装:rpm -ivh jdk-8u111-linux-x64.rpm
jdk安装目录
/usr/java/default/
在/etc/profile文件下添加
vi /etc/profile
添加JAVA_HOME = /usr/java/default/
生效操作source /etc/profile
检查是否安装好java -version
3、配置SSH(免密码登录)
ssh-keygen -t rsa
拷贝cat xxx.pub >> authorized_keys
修改权限chmod 644 authorized_keys
检查命令ssh IP/HOSTNAME
当遇到如下情况
[root@bigdata .ssh]# ssh bigdata
-bash: ssh: command not found
执行,解决依赖关系
yum -y install openssh-clients
4、安装及配置Hadoop
解压
tar zxf hadoop-2.7.2.tar.gz
在/etc/profile文件下
vi /etc/profile
添加
HADOOP_HOME=/opt/hadoop-2.7.2
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
生效操作source /etc/profile
建文件夹,在配置文件中用到
mkdir /opt/hadoop-2.7.2/current/dfs/name
mkdir /opt/hadoop-2.7.2/current/tmp
mkdir /opt/hadoop-2.7.2/current/data
cd /opt/hadoop-2.7.2/etc/hadoop/
配置文件::
core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata:9000</value>
</property>
********临时文件夹
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/current/tmp</value>
</property>
*******垃圾箱
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>bigdata:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata:18025</value>
</property> <property>
<name>yarn.resource.manager.admin.address</name>
<value>bigdata:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
发现没有mapred-site.xml,可以先复制一个
cp mapred-site.xml.template mapred-site.xml
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>bigdata:50030</value>
</property>
<property>
<name>mapreduce.jobhisotry.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>mapreduce.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
slaves
bigdata
hadoop-env.sh
JAVA_HOME
5、格式化HDFS
hdfs namenode -format
找到以下信息,则代表成功
‘16/09/0403:07:30 INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.’
6、启动Hadoop集群
/opt/hadoop-2.7.2/sbin/start-all.sh
7、验证Hadoop集群
1)jps
2) service iptables stop
关闭防火墙 或者 在防火墙的规则中开放这些端口
hdfs http://bigdata:50070
yarn http://bigdata:18088
官网查看FS Shell命令
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html#rmdir
启动hadoop日志
/opt/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver
hadoop的getmerge命令:
hadoop fs -getmerge [-nl] <src> <localdst>
从hadoop上合并多个文件下载到本地目录下指定文件
hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt
或者
hdfs dfs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt
volume:产生的数据量计算量很大
variety:数据来源数据格式多种多样
value:价值密度低,综合价值大
velocity:增长速度处理速度,要求系统在短时间内做出反应,可用于生成决策的时间非常少
开源组件:
hadoop,spark(内存计算),hbase(列式数据库),zookeeper,nutch(数据采集),storm(流式计算)
R语言(可视化),hive,impala,麒麟
hadoop的主要模块:
HDFS,MapReduce,YARN,COMMON
hadoop集群
·M/S架构(主从架构)
·Master:主节点,运行NameNode(namespace源数据存储),ResourceManager服务进程
·Slave:从节点,运行DataNode,NodeManager服务进程
·服务进程举例
·NameNode,负责记录各个数据块存储空间,与DataNode进行通信,
获取其健康状态信息,并根据决策算法将数据分发到某些节点
·DataNode,负责实际数据的存储,与NameNode进行通信,将其所在
节点的存储状态汇报给NameNode,以供其决策。
安装虚拟机
VMware workstation 11-12版本
Centos镜像
1安装虚拟机
CD/DVD选择下载的镜像文件
网络适配器选择NAT模式
disc found 选择skip回车
是,忽略所有数据
主机名:bigdata
根密码root用户的密码
使用所有空间,将修改写入磁盘
---->开始
-----------安装完成
登录
ping www.baidu.com
vi etc/sysconfig/network-scripts/ifcfg-eth0
修改on_boot改成yes
重启虚拟机
service network restart
ifconfig查看ip地址
联网后安装软件
yum install -y vim
关闭虚拟机shutdown -h now
2远程连接
xshell5
xftp5
3在Linux上搭建Hadoop集群
下载软件
1. Jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. Hadoop包:http://apache.fayea.com/hadoop/common/hadoop-2.7.2/
下载到对应目录后,用Xftp把文件考到虚拟机上
步骤:
1、修改主机名:
vi /etc/hosts
把ip地址和主机名bigdata添加到文件配置中
reboot重启
2、配置JDK
安装:rpm -ivh jdk-8u111-linux-x64.rpm
jdk安装目录
/usr/java/default/
在/etc/profile文件下添加
vi /etc/profile
添加JAVA_HOME = /usr/java/default/
生效操作source /etc/profile
检查是否安装好java -version
3、配置SSH(免密码登录)
ssh-keygen -t rsa
拷贝cat xxx.pub >> authorized_keys
修改权限chmod 644 authorized_keys
检查命令ssh IP/HOSTNAME
当遇到如下情况
[root@bigdata .ssh]# ssh bigdata
-bash: ssh: command not found
执行,解决依赖关系
yum -y install openssh-clients
4、安装及配置Hadoop
解压
tar zxf hadoop-2.7.2.tar.gz
在/etc/profile文件下
vi /etc/profile
添加
HADOOP_HOME=/opt/hadoop-2.7.2
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
生效操作source /etc/profile
建文件夹,在配置文件中用到
mkdir /opt/hadoop-2.7.2/current/dfs/name
mkdir /opt/hadoop-2.7.2/current/tmp
mkdir /opt/hadoop-2.7.2/current/data
cd /opt/hadoop-2.7.2/etc/hadoop/
配置文件::
core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata:9000</value>
</property>
********临时文件夹
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/current/tmp</value>
</property>
*******垃圾箱
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>bigdata:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata:18025</value>
</property> <property>
<name>yarn.resource.manager.admin.address</name>
<value>bigdata:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
发现没有mapred-site.xml,可以先复制一个
cp mapred-site.xml.template mapred-site.xml
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>bigdata:50030</value>
</property>
<property>
<name>mapreduce.jobhisotry.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>mapreduce.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
slaves
bigdata
hadoop-env.sh
JAVA_HOME
5、格式化HDFS
hdfs namenode -format
找到以下信息,则代表成功
‘16/09/0403:07:30 INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.’
6、启动Hadoop集群
/opt/hadoop-2.7.2/sbin/start-all.sh
7、验证Hadoop集群
1)jps
2) service iptables stop
关闭防火墙 或者 在防火墙的规则中开放这些端口
hdfs http://bigdata:50070
yarn http://bigdata:18088
官网查看FS Shell命令
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html#rmdir
启动hadoop日志
/opt/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver
hadoop的getmerge命令:
hadoop fs -getmerge [-nl] <src> <localdst>
从hadoop上合并多个文件下载到本地目录下指定文件
hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt
或者
hdfs dfs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt