Hadoop之安装hdfs集群
- Hadoop之虚拟机创建与安装(1)
- Hadoop之集群创建与配置(2)
- Hadoop之linux服务器的基础软件环境配置(3)
- 安装hadoop
- 上传hadoop安装包到hdp-01
- 解压hadoop-3.0.3.tar.gz
- 删除doc文件夹--非必要
- 修改配置文件
- 远程拷贝hadoop安装目录到其他机器
- 配置环境变量
- 启动HDFS
- 初始化namenode的元数据目录
- 启动namenode进程(在hdp-01上)
- 查看端口
- 在浏览器访问namenode提供的web端口:9870
- 报错解决
- 启动众datanode们(在任意地方)
- 用自动批量启动脚本来启动HDFS
- 配置hdp-01到集群中的免密登陆
- 配完免密后
- 添加datanode进程的节点
- 在hdp-01上用脚本来自动启动整个集群
- 在hdp-01上用脚本来自动停止整个集群
- 启动脚本报错
- 将SecondaryNameNode放至hdp-02
- 效果展示
Hadoop之虚拟机创建与安装(1)
Hadoop之集群创建与配置(2)
Hadoop之linux服务器的基础软件环境配置(3)
安装hadoop
上传hadoop安装包到hdp-01
软件:hadoop-3.0.3.tar.gz
解压hadoop-3.0.3.tar.gz
tar -zxvf hadoop-3.0.3.tar.gz
删除doc文件夹–非必要
删除 /root/apps/hadoop-3.0.3/share/doc以减少450M容量,可忽略
rm -rf doc
修改配置文件
要点提示:
核心配置参数:
1) 指定hadoop的默认文件系统为:hdfs
2) 指定hdfs的namenode节点为哪台机器
3) 指定namenode软件存储元数据的本地目录
4) 指定datanode软件存放文件块的本地目录
- 修改hadoop-env.sh 找到# JAVA_HOME=/usr/java/testing hdfs dfs -ls
添加:JAVA_HOME=/root/apps/jdk1.8.0_191
vim /root/apps/hadoop-3.0.3/etc/hadoop/hadoop-env.sh
# JAVA_HOME=/usr/java/testing hdfs dfs -ls
JAVA_HOME=/root/apps/jdk1.8.0_191
2. 修改core-site.xml
添加节点:
vim /root/apps/hadoop-3.0.3/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>
</configuration>
3. 修改hdfs-site.xml
添加节点:
vim /root/apps/hadoop-3.0.3/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>
</configuration>
远程拷贝hadoop安装目录到其他机器
scp -r /root/apps/hadoop-3.0.3 hdp-02:/root/apps/
scp -r /root/apps/hadoop-3.0.3 hdp-03:/root/apps/
scp -r /root/apps/hadoop-3.0.3 hdp-04:/root/apps/
配置环境变量
要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量
vim /etc/profile
# hadoop-3.0.3
export HADOOP_HOME=/root/apps/hadoop-3.0.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境变量生效:
source /etc/profile
启动HDFS
初始化namenode的元数据目录
要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录
执行:hadoop namenode -format
创建一个全新的元数据存储目录
生成记录元数据的文件fsimage
生成集群的相关标识:如:集群id——clusterID
启动namenode进程(在hdp-01上)
hadoop-daemon.sh start namenode
启动完后,首先用jps查看一下namenode的进程是否存在
jps
18964 NameNode
19028 Jps
查看端口
netstat -nltp |grep 18964
在浏览器访问namenode提供的web端口:9870
192.168.30.131:9870
报错解决
NameNode is still loading. Redirecting to the Startup Progress page.
更换一个浏览器进行尝试!
360安全浏览器会报以上错误!
启动众datanode们(在任意地方)
hadoop-daemon.sh start datanode
用自动批量启动脚本来启动HDFS
配置hdp-01到集群中的免密登陆
配置hdp-01到集群中所有机器(包含自己)的免密登陆
- 在hdp-01进行配置
- ssh-keygen
输入:ssh-keygen
一直回车 - ssh-copy-id
ssh-copy-id hdp-01
ssh-copy-id hdp-02
ssh-copy-id hdp-03
ssh-copy-id hdp-04
配完免密后
可执行一次 ssh 0.0.0.0
添加datanode进程的节点
修改hadoop安装目录中/root/apps/hadoop-3.0.3/etc/hadoop/workers(把需要启动datanode进程的节点列入)
vim /root/apps/hadoop-3.0.3/etc/hadoop/workers
hdp-01
hdp-02
hdp-03
hdp-04
在hdp-01上用脚本来自动启动整个集群
start-dfs.sh
在hdp-01上用脚本来自动停止整个集群
stop-dfs.sh
启动脚本报错
解决方案:
进入:/root/apps/hadoop-3.0.3/sbin/目录下
cd /root/apps/hadoop-3.0.3/sbin/
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
将SecondaryNameNode放至hdp-02
修改各主机:hdfs-site.xml
添加节点
vim /root/apps/hadoop-3.0.3/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:9870</value>
</property>
在hdp-01进行一下操作:
停止:secondarynamenode
hadoop-daemon.sh stop secondarynamenode
重启整个集群:stop-dfs.sh
启动整个集群:start-dfs.sh
效果展示