Linux环境下配置及启动Hadoop(伪集群)
1.下载tag软件包后,我习惯放到software文件夹下,并建立app文件夹
2.通过tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/app/ 命令解压到app目录下
3.配置环境变量:通过vim ~/.bash_profile进行编辑
export HADOOP_HOME=/home/安装目录/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
4.使用source命令使修改立即生效source ~/.bash_profile,打印出环境变量:echo $HADOOP_HOME
5.在etc/hadoop目录下 vim hadoop-env.sh,配置export JAVA_HOME=/usr/lib/jvm/java-8-oracle
6.在etc/hadoop目录下 vim core-site.xml 配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://主机名:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/目录/app/tmp</value>
</property>
</configuration>
7.在etc/hadoop目录下 vim hdfs-site.xml 配置
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/目录/app/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/目录/app/tmp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
8.在etc/hadoop目录下没有mapred-site.xml文件需要通过拷贝一个 mapred-site.xml.template cp mapred-site.xml.template mapred-site.xml 并使用vim mapred-site.xml进行编译
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9.在etc/hadoop目录下 vim yarn-site.xml 配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
以上配置完成后需要的NameNode进行格式化
操作位置:hadoop的安装目录下bin文件夹执行./hdfs namenode -format或者./hadoop namenode -format
注意:启动HDFS后,如果没有namenode节点或datanode节点,需要删除tmp目录下的所有文件之后重新格式化,另重新启动linux系统后hdfs不会启动。
因为Hadoop集群分布时需要设置SSH免密码登陆
/.ssh/id_rsa.pub ~/.ssh/authorized_keys
查看主机名:hostname可以查看到当前主机的主机名
另:删除用户:sudo userdel -r 用户名
判断是否真正删除:cat /etc/passwd,中没有用户信息
ifconfig查看IP地址确定对应的主机名
sudo vi /etc/hosts,如果IP地址修改,需要对应上
启动hdfs:在hadoop/sbin/目录下./start-dfs.sh,会有3个进程namenode,datanode,secondarynamenode
HDFS的web访问方式:http://hadoop(主机名):50070
然后通过jps验证3个节点是否启动成功,然后使用命令hadoop -fs -ls /查看目录是否存在。
启动yarn:在hadoop/sbin/目录下./start-yarn.sh,会有2个进程resourcename,nodemanager,通过jps验证2个节点是否启动成功
web访问yarn方式:http://hadoop(主机名):8088
hadoop包括3部分:HDFS,YARN,MapReduce
2、什么是hadoop?
一个分布式系统基础架构,充分利用集群的高速运算和存储。
Hadoop Distributed File System(HDFS) 分布式存储
YARN是资源调度平台
MapReduce是分布式计算
3、企业选择Hadoop作为大数据平台的原因?
1)源码开放
2)社区活跃、参与者众多
3)设计到分布式存储和计算:
Flume进行数据采集
Spark/MR/Hive数据处理
HDFS/HBase数据存储
4)已经得到企业的验证
4、HDFS设计目标
非常巨大的分布式文件系统
运行在普通的廉价的硬件上
易扩展、为用户提供性能不错的文件存储服务
5、HDFS架构
1、Master(NameNode/NN) 对应 N个Slaves(DataNode/NN)
2、一个文件会被拆分成多个块(Block)
默认:128M
例: 130M ==> 128M + 2M
3、NameNode、DataNode负责内容:
NN:
1)负责客户端请求的响应
2)负责元数据(文件名称、副本系数、Block存放的DN)的管理
DN:
1)存储用的文件对应的数据块(Block)
2)定期向NN发送心跳信息(默认3秒),汇报本身及其所有的Block信息,健康状况
4、 重要提示:
A typical deployment has a dedicated machine that runs only the NameNode software.
Each of the other machines in the cluster runs one instance of the DataNode software.
The architecture does not preclude running multiple DataNodes on the same machine
but in a real deployment that is rarely the case.
一个典型的部署有一个专用的机器,它只运行NAMENODE软件。
群集中的每个其他机器运行DATEAON软件的一个实例。
架构不排除在同一台机器上运行多个数据流。
但在实际部署中,情况很少。 #不建议这种操作
NameNode + N个DataNode
建议:NameNode、DataNode分布在单独的节点中
2)replication factor 副本系数、副本因子
3)All blocks in a file except the last block are the same size
除了最后一个块之外,文件中的所有块都是相同大小的
HDFS相关配置:
hadoop-env.sh,core-site.xml,hdfs-site.xml3个配置文件进行修改
机器参数配置
hostname:主机名
修改机器名:/etc/sysconfig/network
NETWORK=yes
HOSTNAME=主机名
设置IP和hostname的映射关系:IP地址:主机名
SSH免密码登录:
ssh-keygen -t rsa
5、HDFS优缺点
优点:
高容错
适合批处理
适合大数据处理
可构建在廉价机器上
缺点:
低延迟访数据访问
不适合小文件存储
6、MapReduce
1、特点
1)易于编程
2)良好的扩展性
3)高容错性
4)海量数据的离线处理
2、不擅长场景
1)实时计算
2)流式计算
3)DAG(有向无环图)计算