文章目录
一、部署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、访问图形化界面
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 /