HDFS结构与组成
- HDFS采用主/从复制(master/slave)结构
- NameNode负责管理文件命名空间,是客户端访问的主服务器。
- DataNode负责存储管理
NameNode的功能
1. 管理元数据信息
2. 管理文件系统的命名空间
1) 对元数据修改,会在EditLog(事务日志记录)插入一条记录,而EditLog是存放在本地文件系统中的。
2) 文件系统的命名空间存放在FsImage(映像文件)中。FsImage也存放在本地文件系统中。
3. 监听客户端请求和DataNode事件。
4. 心跳检测,检测DataNode是否正常工作。
DataNode的功能
1. 数据块的读写
2. 向NameNode报告状态
3. 数据的流水线复制
HDFS读写
实际的IO事务并没有经过NameNode。如下图:
访问权限
HDFS实现了一个与POSIX类似的文件和目录权限模型。
操作的时候如果抛出异常:AccessControlException则是权限检查失败。
集中缓存管理
允许用户指定缓存的HDFS路径。
HDFS提供了快照功能
支持元数据快照 hadoop2.x版本。
快照只记录文件快的列表和大小的信息。
大数据平台的安装和配置
1. 下载jdk,hadoop,spark,scala
2. 解压上述文件压缩包到指定文件夹
3. 配置环境变量
4. 配置SSH免密码登陆
4. 修改配置文件
5. 启动hadoop
6. 启动spark
详情如下
1. 下载jdk,hadoop,spark,scala
2. 解压上述文件压缩包到指定文件夹
3. 配置环境变量
vim /etc/profile
#Java 环境变量
JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
#Hadoop环境变量
HADOOP_HOME=/opt/hadoop
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
HADOOP_MAPRED_HOME=$HADOOP_HOME
HADOOP_COMMON_HOME=$HADOOP_HOME
HADOOP_HDFS_HOME=$HADOOP_HOME
YARN_HOME=$HADOOP_HOME
export HADOOP_HOME PATH HADOOP_MAPRED_HOME HADOOP_COMMON_HOME HADOOP_HDFS_HOME YARN_HOME
#Scala环境变量
SCALA_HOME=/opt/scala
PATH=$SCALA_HOME/bin:$PATH
export SCALA_HOME PATH
#Spark 环境变量
SPARK_HOME=/opt/spark
PATH=$SPARK_HOME/bin:$PATH
SPARK_EXAMPLES_JAR=$SPARK_HOME/example/jars/spark-examples_2.11.1-2.0
export SPARK_HOME PATH SPARK_EXAMPLES_JAR
4. 修改配置文件
# 修改Hadoop配置文件
1. vim /opt/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_171
export HADOOP_HOME=/opt/hadoop
2. vim core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
3. vim hdfs-site.xml
配置备份数
配置namenode目录
配置datanode目录
4. vim mapred-site.xml
配置mapreduce。framework.name为yarn
5. vim yarn-site.xml
配置ResourceManage主机名和端口号8080
配置resource-tracker主机名和端口号8082
配置mapreduce-shuffle类
yarn.nodemanager.aux-services=mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class = org.apache.hadoop.mapred.ShuffleHandler
6. vim slaves
master
# 修改spark配置文件
1. vim /opt/spark/conf/spark-env.sh
export SCALA_HOME=${SCALA_HOME}
export JAVA_HOME=${JAVA_HOME}
SPARK_MASTER_IP=mylinux
2. vim slaves
5. 测试
安装ssh
apt-get install ssh
配置本机免密码登陆
cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
格式化hdfs
hadoop namenode -format
启动hadoop
./sbin/start-all.sh