首页 / HADOOP / Hadoop小型集群搭建记录
Hadoop小型集群搭建记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Hadoop小型集群搭建记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4268字,纯文字阅读大概需要7分钟。
内容图文
![Hadoop小型集群搭建记录](/upload/InfoBanner/zyjiaocheng/1066/4bfa72ca39ca4ce587405d9a16c38b5d.jpg)
环境准备
ps: 后面又加开了一个datanode,配置同下
设置hostname
hostnamectl set-hostname hadoop-xx
设置hosts
-
服务器1
echo "<server_2_ip> <server_2_domain>" >> /etc/hosts
-
服务器2
echo "<server_1_ip> <server_1_domain>" >> /etc/hosts
设置防火墙端口
# namenode
firewall-cmd --add-port=9870/tcp --zone=public --permanent
firewall-cmd --add-port=9000/tcp --zone=public --permanent
# resourcemanager
firewall-cmd --add-port=8088/tcp --zone=public --permanent
firewall-cmd --add-port=8030/tcp --zone=public --permanent
firewall-cmd --add-port=8031/tcp --zone=public --permanent
firewall-cmd --add-port=8032/tcp --zone=public --permanent
firewall-cmd --add-port=8033/tcp --zone=public --permanent
设置Ali云安全组
端口同防火墙略
创建用户hadoop
# 创建用户hadoop
adduser hadoop
# 设置密码
passwd hadoop
切换用户到hadoop
# 切换用户
su hadoop
# 进入用户目录
cd
准备访问公钥
ssh-keygen -t rsa -C ‘hello hadoop!‘
cat ~/.ssh/<key_name>.pub >> ~/.ssh/authorized_keys
同步公钥
-
服务器1
ssh hadoop@<server_2_ip> "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
-
服务器2
ssh hadoop@<server_1_ip> "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
编辑ssh权限
chmod 700 .ssh/
chmod 600 .ssh/*
测试连通性
-
服务器1
ssh hadoop@<server_2_ip>
-
服务器2
ssh hadoop@<server_1_ip>
两个服务器均可以直接登录对方,则代表ssh部分配置成功
Java准备
下载AdoptOpenJDK与解压
# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/11/jdk/x64/linux/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz
# 解压
tar -zxf OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz
# 配置环境变量
cat << EOF >> .bashrc
export JAVA_HOME=/home/hadoop/jdk-11.0.10+9
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
# 刷新
source .baserc
同步其他服务
# 下载
scp OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz hadoop@<server_ip>:/home/hadoopOpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz
# 解压
ssh hadoop@<server_ip> "tar -zxf OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz"
# 配置环境变量
ssh hadoop@<server_ip> "cat << EOF >> .bashrc
export JAVA_HOME=/home/hadoop/jdk-11.0.10+9
export PATH=\\\$PATH:\\\$JAVA_HOME/bin
EOF
"
验证
# 验证
java -version
这里基于局域网操作,主要有两个好处
- 我这里使用的是阿里ECS服务,同一内网传输速度可达100MB/s
- 减少镜像服务器压力~
Hadoop准备
下载与解压Hadoop-基于清华镜像
# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
# 解压
tar -zxf hadoop-3.3.0.tar.gz
# 配置环境变量
cat << EOF >> .bashrc
export HADOOP_HOME=/home/hadoop/hadoop-3.3.0
export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
EOF
同步其他服务
# 传输
scp hadoop-3.3.0.tar.gz hadoop@<other_server_ip>:/home/hadoop
# 解压
ssh hadoop@<other_server_ip> "tar -zxf hadoop-3.3.0.tar.gz"
# 配置环境变量
ssh hadoop@<other_server_ip> "cat << EOF >> .bashrc
export HADOOP_HOME=/home/hadoop/hadoop-3.3.0
export PATH=\\\$PATH:\\\$HADOOP_HOME/bin:\\\$HADOOP_HOME/sbin
EOF
"
同Java准备
Hadoop配置
这里只进行简单的配置,使用VSCode和Remote插件,直接进行远程编辑.下面贴出具体配置
各文件配置
暂时略过,需要合并几个服务上的文件
启动所有节点
启动namenode
-
登陆hadoop@<server_01_ip>并执行下列命令
# 格式化namenode hfds namenode -format hfds --daemon start namenode # 启动namenode
-
访问 <server_01_ip>:9870
现在就能直接看到hadoop的web页面了
启动datanode
-
登陆hadoop@<server_02_ip>并执行下列命令
hfds --daemon start datanode
-
访问 <server_01_ip>:9870
可以在Datanodes页面中看到刚刚启动的server_02_datanode
启动resourcemanager
-
登陆hadoop@<server_01_ip>并执行下列命令
yarn --daemon start resourcemanager
-
访问 <server_01_ip>:8088
现在就能直接看到resourcemanager的web页面了
启动nodemanager
-
登陆hadoop@<server_02_ip>并执行下列命令
yarn --daemon start nodemanager
-
访问 <server_01_ip>:8088
可以在Nodes中看到刚刚启动的server_02_nodemanager了
运行一个程序
登陆hadoop@<server_01_ip>并执行下列命令
# 创建用户文件夹
hadoop fs -mkdir /user
hadoop fs -mkdir /user/hadoop
# 创建存放测试文件的文件夹
hadoop fs -mkdir input_01
# 将测试文件上传到hadoop中
hadoop fs -put test.txt
部分坑
Ali云特有
- 使用
hadoop jar
提交任务时,命令行长时间没有反应.同时resourcemanager日志可以观察到大量的未知host报错.原因: resourcemanager无法通过主机名访问nodemanager.
解决方案: 在Ali云ECS控制台中直接修改主机名
备注: 目前暂时不知道为什么会出现这个现象,即使使用命令设置hostname.在hadoop中的datanode的hostname依然是一串随机字符串,而这个字符串就是Ali云ECS控制台中显示的的主机名.我目前也没有能够直接在linux中获取到这个错误的主机名.且尚不知hadoop是如何获取的
其他
- 执行应用时,两台datanode所属ECS完全卡死.无法登陆,无法操作.Ali云控制台也无法重启
原因: 提交应用后,两个nodemanager分别创建了6个容器,导致ECS资源完全耗尽
解决方案: 设置yarn.nodemanager.resource.cpu-vcores
与yarn.nodemanager.resource.memory-mb
为ECS实际规格,并重新运行nodemanager即可
参考
原文:https://www.cnblogs.com/heaven-elegy/p/14358501.html
内容总结
以上是互联网集市为您收集整理的Hadoop小型集群搭建记录全部内容,希望文章能够帮你解决Hadoop小型集群搭建记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。