单机版Hadoop hdfs安装搭建记录
**系统配置** **规格:** 1vCPUs | 2GB | s6.medium.2 **镜像:** Ubuntu 18.04 server 64bit **用户:** 在Ubuntu上创建halo用户
预备软件:① Hadoop安装包(推荐cdh,cloudera站点) ② Java 1.8 + ③ ssh
1. 安装Java
- 首先下载Linux版JDK jdk-8u161-linux-x64.tar.gz
-
解压安装包
tar -zxvf jdk-8u161-linux-x64.tar.gz -C unzipPath
-
配置环境变量 /etc/profile 或者 ~/.bash_profile
#set java environment JAVA_HOME=/usr/local/java/jdk1.8.0_161 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
- 使配置内容生效 source /etc/profile
- 验证 java -version
2. 安装ssh,并配置免密登录
-
购买的服务器,已经安装了ssh,单机部署的情况下需要检查ssh服务是否安装
ps -e | grep ssh # 查看ssh进行 systemctl status ssh # 检测ssh状态
-
安装ssh
(1)判断是否安装ssh服务,可以通过如下命令进行: ssh localhost ssh: connect to host localhost port 22: Connection refused (2)如上所示,表示没有还没有安装,可以通过apt安装,命令如下: apt-get install openssh-server (3)启动服务: sudo /etc/init.d/ssh start
-
ssh免密登录
cd ~ ssh-keygen -t rsa cd .ssh # 将生成的rsa公钥信息写入authorized_keys文件中 cat id_rsa.pub >> authorized_keys # 修改authorized_keys文件读写权限 chmod 600 authorized_keys
.ssh文件夹结构
|--- id_rsa # ssh rsa生成的私钥文件
|--- id_rsa.pub # ssh rsa生成的公钥文件
|--- authorized_keys # 免密登录文件
|--- know_hosts # ssh远程登录记录
当ssh一台没登陆过的机器的时候,往往需要输入yes,确认一下添加know_hosts文件,在一些脚本处理的时候很不方便,可以修改/etc/ssh/ssh_config 文件达到自动添加,注意是ssh_config,不是sshd_config 查找# StrictHostKeyChecking ask 修改为 StrictHostKeyChecking no 这样就可以达到自动添加know_hosts~~
3. Hadoop安装
- 解压Hadoop3压缩包
-
添加环境变量.profile
export HADOOP_HOME=/home/hadoop0/app/hadoop-3.1.3 export PATH=$HADOOP_HOME/bin:$PATH
- hadoop目录说明
|--- bin # hadoop客户端命令
|--- etc/hadoop # 相关配置文件存放目录
|--- sbin # 启动hadoop相关进程脚本(Server端)
|--- share # 常见使用例子 *(share/hadoop/mapreduce)
-
修改配置文件
(1) etc/hadoop/hadoop_env.sh # 添加 export JAVA_HOME=/software/java/jdk1.8.0_161 (2) etc/hadoop/core-site.xml # 添加 hadoop0为配置的本地hosts <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop0:9000</value> </property> </configuration> # 备注 hadoop0 -> 127.0.0.1 则hadoop-client客户端不能连接,因为在本地监听 改为 hdfs://0.0.0.0:9000,hadoop-client连接正常可以创建文件夹,但不能读写 Exception:There are 1 datanode(s) running and 1 node(s) are excluded in this operation. stack overflow 建议更改为本地ip,但是在华为云服务器上或许因为ip转发问题,问题并未解决,有时间在研究。 (已确定上面的Exeption在单机上部署不存在问题,应该是云服务器有ip转发的关系) (3) etc/hadoop/hdfs-site.xml # 添加 <configuration> <property> <name>dfs.replication</name> # 副本数 <value>1</value> </property> <property> # 文件blocks存放位置,默认在linux系统tmp文件夹下,重启可能丢失 # 所以需要修改存储位置 <name>hadoop.tmp.dir</name> <value>/home/hadoop0/data/tmp</value> </property> </configuration> (4) 修改workers文件 # 添加配置 ip 或者 映射 name hadoop0
4. 启动及验证
-
第一次启动hadoop之前执行系统格式化
# 格式化 hdfs namenode -format
-
启动
# 启动dfs sbin/start-dfs.sh 启动hadoop dfs日志位置:logs/hadoop-hadoop0-namenode-xxxx.log # 停止集群 sbin/stop-dfs.sh # 单个组件进程启动 sbin/hadoop-daemons.sh stop|start|status xxx xxx可以为: NameNode SecondaryNameNode DataNode netstat -ntlp
-
验证
(1)linux命令行jps出现 NameNode、DataNode、SecondaryNameNode (2)验证网站-Namenode information http://ip:9870 注意防火墙问题 sudo ufw allow 9870 / systemctl stop firewalld (3)两种永久关闭/开启防火墙的方式 systemctl disable firewalld systemctl enable firewalld chkconfig iptables off chkconfig iptables on
5. Hadoop常用命令行操作
-
文件系统常见操作:查看、存储、移动、删除
hadoop fs -ls / # 查看hadoop根目录文件夹 -cp src dest # 复制 -getmerge file1 file2 localdst #合并 -get # 获取 -put # 提交(本地和hdfs均可以) ....
- -cat和-text的区别 (text命令会对文本进行解码转码,cat不会,所以cat命令输出会乱码)
安装过程中注意事项及用到的Linux命令
-
Linux hosts文件修改
# 打开vi /etc/hosts 文件修改,创建的用户名为hadoop0 127.0.0.1 localhost 127.0.0.1 hadoop0 uname -a # 获取系统信息
-
部分Linux 命令
-
ls命令
ls -a # 查看所有文件包括隐藏 ls -la # 树状展示 ll -h # 显示数据大小,转换为(K、M ...) env # 查看系统当前环境变量
-
tar命令
tar -zxvf jdk*.tar.gz -C ~/app # 解压文件到指定目录 tar -czvf *.tar abc/ # 打包压缩文件 指令: -c # 创建压缩文件 -x # 解压压缩文件 -t # 查看压缩包内有哪些文件 -z # 用Gzip解压或压缩 -j # 用bzip2解压或压缩 -v # 显示详细过程 -f # 目标文件名 -P # 保留原始权限与属性 -p # 使用绝对路径压缩 -C # 指定解压到的目录
-
-
ssh 修改端口
(1)修改ssh端口 ssh默认的端口是22,配置在/etc/ssh/sshd_config Port 22 Port 800 编辑防火墙配置启用22和800端口。 sudo /etc/init.d/ssh restart 这样ssh端口将同时工作与22和800上。 (2)结果验证 a.使用 ssh root@localhost -p 800 b.或使用 systemctl status ssh 出现 Server listening on 0.0.0.0 port 800. Server listening on :: port 800. Server listening on 0.0.0.0 port 22. Server listening on :: port 22. 如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
玩转ECS -- 2020修炼手册(第1季)
近期热点 赢取5000大奖 - 阿里云弹性计算自动化部署及运维模板挑战赛 面向全社会开放报名,欢迎企业开发者、个人开发者、学生群体、国际开发者的参与,报名时间2月24日-5月15日。我们希望通过此次比赛,沉淀和总结各行业使用云计算的服务和管理云基础架构的场景和经验,让更多用户了解和借鉴云上自动化部署运维的最新实践。 华南河源地域全网开服,支持30万台服务器规模,应对海量扩容需求。先进的金融级安全、稳定、可靠性保障,小于 1ms 的地域内可用区间延迟。 重点发布 自助排查问题的利器 — 操作审计实例的操作审计功能,可查询实例及其关联资源的所有操作记录,并且对操作记录的影响等级进行标注,把具有重大影响的操作从记录中高亮出来,助您高效排查问题和自证清白。 ECS 新版移动端购买发布啦!!!全新的体验,支持购买按量付费 ECS 以及更多丰富的功能,移动端购买 ECS 变得更加流畅。 不必晚睡早起做运维 — 实例定时开关机当您需要批量对ECS实例开关机状态进行管理时,通过OOS定时开关机可轻松搞定,当前支持每天以及指定每周中具体某些天的方式进行定时开关机。 标签管理利器 — 标签编辑器,多地域多...
- 下一篇
【建议收藏】面试没有亮点?给你一份Android热门三方库源码面试宝典
前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 众所周知,优秀源码的阅读与理解是最能提升自身功力的途径,如果想要成为一名优秀的Android工程师,那么Android中优秀三方库源码的分析和理解则是必备技能。就拿比较热门的图片加载框架Glide来说,相信很多同学都使用过,那么,当别人问你下面这些问题时你是否能回答出来呢?(Glide五连发) 1、为什么要在项目中使用这个库? 2、这个库都有哪些用法?对应什么样的使用场景? 3、这个库的核心实现原理是什么?如果让你实现这个库的某些核心功能,你会考虑怎么去实现? 4、Glide源码机制的核心思想是什么? 5、Glide中是如何计算一张图片的大小的? 相信能全部回答出来的同学并不多,下面我来解答一下上面几个问题。 1、为什么要在项目中使用这个库? 1、多样化媒体加载:不仅可以进行图片缓存,还支持Gif、WebP、缩略图,甚至是Video。 2、通过设置绑定生命周期:可以使加载图片的生命周期动态管理起来。 3、高效的缓存策略:支持内存、Disk缓存,并且Picasso只会缓存原始尺寸的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境