写的不到位的地方,欢迎评论指出不足之处
前言
- 技术版本总是不断的更新,但企业为了能够安全、稳定的使用技术,通常不会使用最新,而是版本相对较低
- 即使使用的版本也存在一定的问题,但该版本存在的时间长,从而在互联网上更能寻找到相关的解决问题
- Hadoop 安装包
- Pseudo-Distributed Mode (伪分布式) / (单一节点)
- 单节点中,每个角色是独立的进程,而不是所有角色都在一起形成线程
- 在一个节点启动所有的角色:NameNode、DataNode、SecondaryNameNode
- 需要配置的文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves
一、配置环境信息
1、下载安装包,解压到指定位置:如:/opt/hadoop-2.6.5
2、配置 Hadoop 的环境变量
sudo vim /etc/profile
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:${JAVA_HOME}/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3、配置 Hadoop 的 Java 信息
cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=${JAVA_HOME} # 原配置信息
export JAVA_HOME=/usr/java/default # 更改后
二、配置核心相关文件
1、core-site.xml
<!-- 定义 NameNode -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://one:9000</value>
</property>
</configuration>
2、hdfs-site.xml
<configuration>
<!-- 定义 块的副本 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 设置 NameNode 元数据存放位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/hadoop/ha/dfs/name</value>
</property>
<!-- 设置 DataNode 块数据存放位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/hadoop/ha/dfs/data</value>
</property>
<!-- 设置 SecondaryNameNode 合并日志 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>one:50090</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/var/hadoop/ha/dfs/secondary</value>
</property>
<!-- SecondaryNameNode -->
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>600</value>
<description>默认时间3600/1小时执行一次</description>
</property>
<!-- 或 -->
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>操作动作次数</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description> 1分钟检查一次操作次数</description>
</property>
</configuration>
3、slaves
vim slaves
# 定义由哪台启动 DataNode
# hosts 的名
one
三、初始化与启动
# 格式化
# 只生成 NameNode 目录,DataNode 会在启动时自动生成
hdfs namenode -format
# 启动
# 第一次:DataNode 和 Secondary 角色会初始化创建自己的数据目录
# hadoop/sbin/
start-dfs.sh
# 关闭
stop-dfs.sh
四、测试
1、当配置顺利成功,在浏览器中输入,http://one:50070/,会显示相关数据
1.1、选 Utilities 再选 Browse the file system 可查看到上传的数据
2、测试操作
# 创建多级目录
hdfs dfs -mkdir -p /user
# 循环多次,数据追加到文本中
for i in {1..100000}; do echo "hello $i" >> data.txt ;done
# 指定块的大小,进行上传
hdfs dfs -D dfs.blocksize=1048576 -put data.txt /user