【Hadoop】(二)Hadoop 分布式安装一(HDFS)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 【Hadoop】(二)Hadoop 分布式安装一(HDFS)

文章目录


一、部署Java

二、配置SSH免密登录

三、Hadoop的环境变量配置

四、修改配置文件

五、修改datanode的启动地方


一、部署Java


创建三台虚拟机


部署Java


解压配置环境变量


具体安装步骤参考:手把手教你在Linux环境下安装JDK 1.8.0


二、配置SSH免密登录


目的是使用脚步启动远程服务器的启动,必须使用shell登陆远程服务,但每个登陆都需要输入密码就非常麻烦,所有需要配置无密配置,需要在NameNode上生成私钥,把公钥发给DataNode。


SSH基本原理


SSH之所以能够保证安全,原因在于它采用了公钥加密。过程如下:


(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。


SSH无密码原理


Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。


1、台虚拟机要实现互通,主机利用ssh-keygen命令生成一个无密码密钥对,其中id_rsa 私钥,id_rsa.pub 公钥

[root@zj1 ~]# ssh-keygen -t rsa -P '' 
[root@zj1 ~]# cd .ssh
[root@zj1 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts


2、这时为了实现无密登录,远程拷贝,把公钥复制到另外两个从机中

在这里完全分布式复制到DataNode

[root@zj1 .ssh]# scp id_rsa.pub root@192.168.56.139:/root/.ssh/


3、切换到从机:把公钥放到另外一个文件 authorized_keys 中

[root@zj2 .ssh]# cat id_rsa.pub >> authorized_keys


3、伪分布式复制到自己

cat  ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys


4、更改文件的权限为 600

[root@zj3 .ssh]# chmod 600 authorized_keys


5、主机再次登录从机,发现可以成功实现无密登录

[root@zj1 .ssh]# ssh 192.168.56.138


6、修改ip和主机名之间的映射

[root@zj1 .ssh]# vi /etc/hosts


7、将三个节点的地址和机名绑定

192.168.56.137 zj1
192.168.56.138 zj2
192.168.56.139 zj3


三、Hadoop的环境变量配置


在/etc/profile中

Shift+g 到末尾 添加

export HADOOP_HOME=/usr/local/softwave/hadoop-2.7.3  (注意这里改成自己配置文件的路径)
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME


四、修改配置文件


需要修改的配置文件在:

[root@zj1 hadoop]# pwd
/opt/soft/hadoop260/etc/hadoop


hadoop-env.sh : hadoop配置环境

core-site.xml : hadoop 核心配置文件

hdfs-site.xml : hdfs服务的 –> 会起进程

[mapred-site.xml : mapred计算所需要的配置文件] 只当在jar计算时才有

yarn-site.xml : yarn服务的 –> 会起进程

slaves: 集群的机器名称


1、修改 hadoop-env.sh


用于定义hadoop运行环境相关的配置信息

vi hadoop-env.sh
export JAVA_HOME=/opt/soft/jdk180
#此处修改为具体的JDK安装路径


2、修改 vi core-site.xml


用于定义系统级别的参数,如HDFS URL 、Hadoop的临时目录等


1.当前hadoop文件系统端口地址 (分布式靠网络地址互相连接)


2.hadopdir 文件地址 存储临时文件的地址


3.设置跨域信息设置hdfs权限 其他机器访问hadoop,如果对方为root就可以登录

vi core-site.xml
<configuration>
  <--!默认文件系统(本地默认 file:/位置)此处端口与HBASE端口设成一样-->
        <property>  
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.56.137:9000</value>
        </property>
        <--!临时文件的地址-->
        <property>  
                <name>hadoop.tmp.dir</name>
                <value>/opt/soft/hadoop260/tmp</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


用于名称节点和数据节点的存放位置、文件副本的个数、文件的读取权限等

vi hdfs-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>          
                // 副本个数,最少3个伪分布只写1个)
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>


4、修改mapred-site.xml


用于包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此处之配置了开启计算引擎yarn


Hadoop在当前目录中提供一个mapred-site.xml模板

拷贝一份之后编辑不是模板的.xml文件

[root@zj1 hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@zj1 hadoop]# vi mapred-site.xml
1
2
<configuration>
        <property>
                <name>mapreduce.framwork.name</name>
                <value>yarn</value>
                //设置映射化简模型框架为yarn
        </property>
</configuration>


5、修改yarn-site.xml


配置ResourceManager ,nodeManager的通信端口,web监控端口等

<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>zj1</value>  
                //yarn站点名称
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>  
                //辅助节点管理
        </property> 
</configuration>


五、修改datanode的启动地方


1、添加从机名

vi slaves
---------内容---------------
//这里伪分布式 直接localhost
//完全分布式则添加我另外两台从机名
zj2
zj3


2、拷贝当前hadoop文件到其他两台虚拟机

[root@zj1 hadoop]# scp -r /opt/soft/hadoop260/ root@192.168.56.139:/opt/soft/


3、格式化HDFS ,查看是否成功

[root@zj1 hadoop]# hdfs namenode -format


4、启动

切换到hadoop260下sbin目录

start-all.sh
stop-all.sh


5、查看线程jps

[root@zj4 sbin]# jps
18484 SecondaryNameNode
18213 NameNode
18725 NodeManager
18330 DataNode
18634 ResourceManager
19038 Jps


6、访问图形化界面


20191208130938279.png


7、操作HDFS ,我们可以通过输入 hdfs dfs后提示可知, hdfs dfs -绝大多数Linux命令

[root@zj1 soft]# hdfs dfs -mkdir -p /data
[root@zj1 soft]# hdfs dfs -put a.txt /data/
[root@zj1 soft]# hdfs dfs -ls -R /


目录
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
149 6
|
1月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
43 2
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
86 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
37 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
46 0
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
65 2
|
18天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
64 2
|
19天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
58 1

热门文章

最新文章