Hadoop单机模式安装示例

一、准备java环境

安装java环境,本示例使用jdk11版本,openjdk-11.0.2_linux-x64_bin.tar.gz
自行下载,并存放到Linux服务器 /usr/java 目录下
使用 解压命令解压到 java 目录下

[root@test java]# cd /usr/java/
[root@test java]# tar -zxvf openjdk-11.0.2_linux-x64_bin.tar.gz

配置环境变量,在/etc/profile末尾加入java_home

[root@test java]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk-11.0.2
export PATH=${PATH}:${JAVA_HOME}/bin
[root@test java]# source /etc/profile
[root@test java]# java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
[root@test java]#

二、安装Hadoop

1、下载Hadoop安装包

Hadoop版本下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/

2、Hadoop安装

将安装包 hadoop-3.3.4.tar.gz存放到Linux服务器 /usr/hadoop 目录下
使用 解压命令解压到 hadoop 目录下,并配置环境变量,在/etc/profile末尾加入HADOOP_HOME

[root@test hadoop]# cd /usr/hadoop/
[root@test java]# tar -zxvf hadoop-3.3.4.tar.gz
[root@test hadoop]# vi /etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-3.3.4
export PATH=${PATH}:${HADOOP_HOME}/bin
[root@test hadoop]# source /etc/profile
[root@longi hadoop]# hadoop version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /usr/hadoop/hadoop-3.3.4/share/hadoop/common/hadoop-common-3.3.4.jar
3、测试

进入hadoop根目录,新建一个文件夹input,随便找一个文本文件进行测试

[root@test hadoop]# cd hadoop-3.3.4
[root@test hadoop-3.3.4]# mkdir input
[root@test hadoop-3.3.4]# ll
总用量 120K
drwxr-xr-x. 2 1024 1024 4.0K  7月 29  2022 bin
drwxr-xr-x. 3 1024 1024 4.0K  7月 29  2022 etc
drwxr-xr-x. 2 1024 1024 4.0K  7月 29  2022 include
drwxr-xr-x. 2 root root 4.0K  2月  1 11:10 input
drwxr-xr-x. 3 1024 1024 4.0K  7月 29  2022 lib
drwxr-xr-x. 4 1024 1024 4.0K  7月 29  2022 libexec
-rw-rw-r--. 1 1024 1024  25K  7月 29  2022 LICENSE-binary
drwxr-xr-x. 2 1024 1024 4.0K  7月 29  2022 licenses-binary
-rw-rw-r--. 1 1024 1024  15K  7月 17  2022 LICENSE.txt
-rw-rw-r--. 1 1024 1024  29K  7月 17  2022 NOTICE-binary
-rw-rw-r--. 1 1024 1024 1.6K  4月 22  2022 NOTICE.txt
-rw-rw-r--. 1 1024 1024  175  4月 22  2022 README.txt
drwxr-xr-x. 3 1024 1024 4.0K  7月 29  2022 sbin
drwxr-xr-x. 4 1024 1024 4.0K  7月 29  2022 share
[root@test hadoop-3.3.4]# cd input/
[root@test input]# ll
总用量 4.0K
-rw-r--r--. 1 root root 846  1月 17 16:33 日常记录.txt

运行一个haoop官方例子,单词次数计算:

[root@test hadoop-3.3.4]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount input output
[root@test hadoop-3.3.4]# cd output/
[root@test output]# ll
总用量 4.0K
-rw-r--r--. 1 root root 1.1K  2月  1 11:14 part-r-00000
-rw-r--r--. 1 root root    0  2月  1 11:14 _SUCCESS
[root@test output]# cat part-r-00000

这样,单机模式就搭建完成了!这里只是为了验证应用的使用关系和逻辑,系统上线应使用集群化部署

四、启动HDFS

1、修改配置文件hadoop-env.sh

文件在/usr/hadoop/hadoop-3.3.4/etc/hadoop 目录下,修改jdk的java_home

export JAVA_HOME=/usr/java/jdk-11.0.2
2、修改配置文件core-site.xml

文件在/usr/hadoop/hadoop-3.3.4/etc/hadoop 目录下

<configuration>
	<property>
	        <!-- HDFS namenode地址 -->
	        <name>fs.defaultFS</name>
	        <!-- 集群应使用主机名,需要在/etc/hosts文件中配置映射,9000为hdfs访问端口 -->
	        <value>hdfs://172.19.249.41:9000</value>
	</property>
	<property>
	        <!-- HADOOP 运行时存储路径  -->
	        <name>hadoop.tmp.dir</name>
	        <value>/udata/hadoop</value>
	</property>
	<property>
	        <name>hadoop.proxyuser.root.hosts</name>
	        <value>*</value>
	</property>
	<property>
	        <name>hadoop.proxyuser.root.groups</name>
	        <value>*</value>
	</property>
</configuration>
3、需改配置文件hdfs-site.xml

文件在/usr/hadoop/hadoop-3.3.4/etc/hadoop 目录下

<configuration>
	<property>
			<!-- 设置hadoop存储文件的副本数,默认3份 -->
			<name>dfs.replication</name>
			<value>1</value>
	</property>
	<property>
		<name>dfs.http.address</name>
		<value>172.30.43.174:50070</value>
	</property>
</configuration>
4、初始化

直接执行命令,不报错即可

hdfs namenode -format

能看到Storage directory /udata/hadoop/dfs/name has been successfully formatted代表初始化成功

5、启动
[root@test sbin]# cd hadoop-3.3.4/sbin/
[root@test sbin]# ./start-all.sh

报错 ERROR: Attempting to operate on hdfs namenode as root,则需要修改配置

[root@test sbin]# vi /etc/profile
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
[root@test sbin]# ./start-all.sh

告警 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
没有配置好ssh 免密登录,重新设置ssh 免密登录
修改/etc/ssh/ssh_config文件,配置参数如下

PubkeyAuthentication yes
PasswordAuthentication yes

密钥的生成文件命名为 id_rsa

[root@test ~]# cd .ssh/
[root@test .ssh]# ll
总用量 28
-rw-------. 1 root root 1782  2月  1 17:00 authorized_keys
-rw-------. 1 root root 2602  2月  1 16:59 id_rsa
-rw-r--r--. 1 root root  570  2月  1 16:59 id_rsa.pub
-rw-------. 1 root root  928  2月  1 16:04 known_hosts
-rw-r--r--. 1 root root   87  2月  1 15:18 known_hosts.old
[root@test .ssh]#
[root@test sbin]#  ssh-keygen -t rsa
####这里的test为主机名
[root@test sbin]#  ssh-copy-id test

再执行启动脚本

[root@testsbin]# ./start-all.sh
6、验证
[root@test sbin]# jps
28450 ResourceManager
29171 Jps
28676 NodeManager
28118 SecondaryNameNode
27738 DataNode
18652 NameNode
[root@test sbin]#

四、问题

1、hadoop只是大数据生态的基础应用,在业务场景中对于开发人员来说如果存储类似物联网应用下的时序数据该怎么才做呢?数据分析还需要再编写mapreduce应用程序运行执行吗?
2、因为之前使用mongodb进行大数据存储,那么对比mongodb的使用方式,时序数据写入,类似Sql语句的聚合查询都比较方便,对应的在hadoop生态下也有相应的组件来处理相应的业务
3、Hbase:实时数据处理(随机读写);Hive、Spark:数据聚合分析工具,
4、后续再一一对组件进行应用验证和简单部署使用

五、参考资料

1、https://blog.csdn.net/m0_67401746/article/details/123934274
3、https://blog.csdn.net/m0_55868614/article/details/121147275

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值