分布式 由分布在不同主机上的进程(程序)协同在一起才能构成整个应用。 Browser/web server:瘦客户端程序. 大数据4V特征 1.Volumn : 体量大 2.Velocity : 速度快 3.Variaty : 样式多 4.Value : 价值密度低 Hadoop 可靠的、可伸缩的、分布式计算的开源软件. 是一个框架、允许跨越计算机集群的大数据集处理,使用简单的编程模型(MapReduce)。 可从单个服务器扩展到几千台主机,每个节点提供了计算和存储的功能。而不是依赖高可用性的机器 依赖于应用层面上的实现, Hadoop 模块 1.hadoop common 公共类库 2.HDFS hadoop 分布式文件系统 3.Hadoop Yarn 作业调度和资源管理框架 4.Hadoop MapReduce 基于yarn系统的大数据集并行处理技术 MapReduce 工作原理 Hadoop安装
Jdk(建议使用JDK 1.8.11)Tar hadoop.tar.gz(建议使用Hadoop 2.7.3) 30 hostnamectl set-hostname hadoop01 31 hostname 32 vi /etc/hosts 34 cd / 35 mkdir software 36 cd /software/ 37 tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt 42 echo $PATH 43 cd /software/ 44 ll 45 tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz 46 mv hadoop-2.6.0-cdh5.14.2 /opt/hadoop 48 cd /opt 49 vi /etc/profile 50 source /etc/profile 53 hadoop 54 hadoop version 配置环境变量 export JAVA_HOME=/opt/java8 export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export HADOOP_HOME=/opt/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_INSTALL=$HADOOP_HOME export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 配置hadoop ${HADOOP_HOME}/etc/hadoop/*-site.xml a) Standalone | local 单机模式 i. 没有守护进程、所有程序运行在同一JVM中,利于test和debug b) Pseduo distributed Mode 伪分布模式 修改Hadoop配置文件:路径: /opt/hadoop/etc/hadoopi. 修改Core-site.xml 5. Fs.defaultFS = hdfs://192.168.220.129:9000 默认文件系统(本地默认 file:/位置)此处端口与HBASE端口设成一样 6. hadoop.tmp.dir=/usr/local/softwave/hadoop-2.7.3/tmp
<property> <name>fs.defaultFS</name> <value>hdfs://192.168.237.101:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <property> <name>hadoop.native.lib</name> <value>false</value> <description>Should native hadoop libraries, if present, be used. </description> </property>ii. hdfs-site.xml 1.dfs.replication = 1 (副本个数,最少3个伪分布只写1个)
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.237.101:50090</value> </property>修改hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/opt/java8a) 进程于主机关系 iii. mapred-site.xml (CP) 1. mapreduce.framework.name=yarn //设置映射化简模型框架为yarn
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.237.101:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.237.101:19888</value> </property>iv. yarn-site.xml a) yarn.resourcemanager.localhost=localhost//yarn站点名称 b) yarn.nodemanager.aux-service=mapreduce_shuffle//辅助节点管理
<!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</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.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>slaves文件设置为当前主机名:
hadoop01v. 配置SSH(安全套接字处理)
目的是使用脚步启动远程服务器的启动,必须使用shell登陆远程服务,但每个登陆都需要输入密码就非常麻烦,所有需要配置无密配置,需要在NameNode上生成私钥,把公钥发给DataNode步骤 a) 生成秘钥对 i. ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa b) 把公钥拷贝到秘钥库中 i. 伪分布式复制到自己cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ii. 完全分布式复制到DataNodeScp root@主机名:~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pubcat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys c) 把authorized_key权限设置为600 i. Chmod 600 ~/.ssh/authorized_keys vi. 格式化NameNodeHdfs namenode –format vii. 启动hadoop命令(都存放在sbin 文件夹下) a) ./Start-all.sh b) ./Start-dfs.sh start-yarn.sh 一键关闭开启测试:
hdfs dfs -ls / hadoop fs -mkdir /test上传一个文件:
hadoop fs -put README.txt /test执行
hadoop jar share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /test/README.txt /output在执行:hdfs namenode –format 前先删除Hadoop目录下的tmp和logs文件夹