大数据开发之HADOOP安装教程

**

大数据开发之HADOOP安装教程##** 标题

本文特点比较详细的傻瓜式安装教学
安装前准备 :首先要准备好四台能相互ping通的虚拟机且能跟windows主机ping通(可参考[https://blog.csdn.net/weixin_41705703/article/details/90049744?utm_medium=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.nonecase]),然后建立xshell 5连接。
在这里插入图片描述
注意:这里的nodeXX尽量按顺序若一开始有错误01不行则可以从02开始同样原理删改即可
Namenode放在哪两台机子上,ZKFC就放在哪;ZK的功能是切换Namenode状态
正式安装过程
先下载一个Xftp如在这里插入图片描述
在这里插入图片描述
在这里插入图片描述左边windows右边虚拟机

安装打开后可选择连接虚拟机,然后进行文件传输windows下的(jdk-7u67-linux-x63.rpm)传输到nodeXX的家目录下,然后输入命令进行分发。

输入运行命令:
-scp jdk-7u67-linux-x63.rpm node01:pwd
-scp jdk-7u67-linux-x63.rpm node02:pwd
-scp jdk-7u67-linux-x63.rpm node03:pwd
之后输入ll观察是否接受成功!
在这里插入图片描述
分别在node01、02、03上执行rpm安装命令 -rpm -i jdk-7u67-linux-x63.rpm
在node02上cd /etc,在此目录下把profile文件分发到node02、03、03上。
scp profile node02:pwd
在Xshell中输入jps若输出结果为
数字+Jps则表示成功;

之后开始同步所有服务器的时间(输入date)查看机子当前时间 (时间不能差太大,否则集群启动后某些进程跑不起来。
若不同步怎
1。yum进行时间同步器的安装

-yum -y install ntp

2输入同步指令执行同步

-ntpdate time1.aliyun.com  和阿里云服务器时间同步

注意:装机前检查文件配置
1.-cat /etc/sysconfig/network
查看HOSTNAME是否正确
2.-cat /etc/hosts
查看IP映射是否正确
若不正确,可以改文件,也可以把node02上的用scp分发过去。
3. -cat /etc/sysconfig/selinux里是否
SELINUX=disabled
4. service iptables status查看防火墙是否关闭
7.NN与其他三台机子的免秘钥设置
1.在家目录下 ll –a看下有无.ssh文件,如果没有就ssh loalhost一下
2.-cd .ssh ,并ll查看一下
3.把node01的公钥发给其他三台机子

scp id_dsa.pub node02:`pwd`/node01.pub
scp id_dsa.pub node03:`pwd`/node01.pub
scp id_dsa.pub node04:`pwd`/node01.pub

将node02的.ssh目录下的node01.pub追加到authorized_keys

cat node01.pub >> authorized_keys

之后的node03 /04都以此照做执行。

下一步使两个NN间相互免秘钥;
nodel02与nodel03间互相免密钥: nodel02可免密钥登录nodel03,那现需nodel03上能免密钥登nodel02,因此在node03上输入

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

在这里插入图片描述
ssh localhost验证发送到node03上`

scp id_dsa.pub  node02:`pwd`/node03.pub

在这里插入图片描述
在node03上ssh node02验证一下可否免密钥登录
在这里插入图片描述
修改namenode的一些配置信息
vi hdfs-site.xml

<configuration>
   <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>

	<property>
  		<name>dfs.nameservices</name>
  		<value>mycluster</value>
	</property>
	<property>
  		<name>dfs.ha.namenodes.mycluster</name>
  		<value>nn1,nn2</value>
	</property>
	<property>
  		<name>dfs.namenode.rpc-address.mycluster.nn1</name>
  		<value>node02:9000</value>
	</property>
	<property>
  		<name>dfs.namenode.rpc-address.mycluster.nn2</name>
  		<value>node03:9000</value>
	</property>
	<property>
  		<name>dfs.namenode.http-address.mycluster.nn1</name>
  		<value>node02:50070</value>
	</property>
	<property>
  		<name>dfs.namenode.http-address.mycluster.nn2</name>
 		<value>node03:50070</value>
	</property>

	<property>
  		<name>dfs.namenode.shared.edits.dir</name>
  		<value>qjournal://node02:8485;node03:8485;node04:8485/mycluster</value>
	</property>

	<property>
  		<name>dfs.journalnode.edits.dir</name>
  		<value>/var/gf/hadoop/ha/jn</value>
	</property>

	<property>
  		<name>dfs.client.failover.proxy.provider.mycluster</name>
  		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<property>
  		<name>dfs.ha.fencing.methods</name>
  		<value>sshfence</value>
	</property>
	<property>
  		<name>dfs.ha.fencing.ssh.private-key-files</name>
  		<value>/root/.ssh/id_dsa</value>
	</property>

	<property>
   		<name>dfs.ha.automatic-failover.enabled</name>
   		<value>true</value>
 	</property>
</configuration>

vi core-site.xml

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
<!– zookeeper布署的位置-->
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node03:2181,node04:2181,node05:2181</value>
</property>

更改slaves vi slaves*
在这里插入图片描述
安装hadoopcd
cd /opt,将其下的yyj目录分发到node03、04、05
scp –r yyj/ nodel03:pwd
scp –r yyj/ nodel04:pwd
scp –r yyj/ nodel05:pwd
将hdfs-site.xml和core-site.xml分发到node03、04、05

scp hdfs-site.xml core-site.xml node03:`pwd`
scp hdfs-site.xml core-site.xml node04:`pwd`
scp hdfs-site.xml core-site.xml node05:`pwd`

安装zookeeper(并用xftp将windows下的zookeeperzookeeper-3.3.6.tar.gz -C传输到家目录下
运行tar xf zookeeper-3.3.6.tar.gz -C /opt/whj)
解压安装zookeeper

tar xf zookeeper-3.3.6.tar.gz -C /opt/whj

修改zookeeper的配置文件

cd /opt/whj/zookeeper-3.3.6/conf

给zoo_sample.cfg改名

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg
改dataDir=/var/whj/zk
并在末尾追加:

server.1=node03:2888:3888
server.2=node04:2888:3888
server.3=node05:2888:3888	

(其中2888主从通信端口,3888是当主挂断后进行选举机制的端口 )

scp -r zookeeper-3.3.6/ node04:`pwd`
scp -r zookeeper-3.3.6/ node05:`pwd`

并用ll /opt/gf检查下看分发成功没
给每台机子创建刚配置文件里的路径
对node03来说:

echo 1 > /var/whj/zk/myid	
cat /var/whj/zk/myid

以此类推
在/etc/profile里面配置

export ZOOKEEPER_HOME=/opt/whj/zookeeper-3.3.6
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

然后在把/etc/profile分发到其他nodel04、node05
scp /etc/profile nodel04:/etc
scp /etc/profile nodel05:/etc
在nodel03、04、05里source /etc/profie,这步千万别忘.
验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh
在这里插入图片描述
启动zookeeper
全部会话:zkServer.sh start
接着用zkServer.sh status查看每个zookeeper节点的状态
如果启动不起来,请把/etc/profile里的JAVA_HOME改成绝对路径。
启动journalnode
在02、03、04三台机子上分别把journalnode启动起来
hadoop-daemon.sh start journalnode
用jps检查下进程启起来了没
格式化namenode任意
随意挑一台namenode上执行hdfs namenode –format
另一台namenode不用执行,否则clusterID变了,找不到集群了。
然后,启动刚刚格式化的那台namenode:

hadoop-daemon.sh start namenode

给另一namenode同步数据
我们要给另一台namenode同步一下数据,用以下命令

hdfs namenode -bootstrapStandby

格式化ckfc

hdfs zkfc -formatZK

在node04上执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开
启动hdfs集群

start-dfs.sh
为MapReduce做准备
把mapred-site.xml.template留个备份,并且改下名字

cp mapred-site.xml.template mapred-site.xml

在mapred-site.xml里添加如下property

<property>
	<name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

在yarn-site.xml里添加如下property

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
</property>
<property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>cluster1</value>
</property>
<property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
</property>
<property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node04</value>
</property>
<property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node05</value>
</property>
<property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>node03:2181,node04:2181,node05:2181</value>
</property>

把mapred-site.xml和yarn-site.xml 分发到node03、04、05

scp mapred-site.xml yarn-site.xml node03:`pwd`
scp mapred-site.xml yarn-site.xml node04:`pwd`
scp mapred-site.xml yarn-site.xml node05:`pwd`

由于node04和node05都是resourcemanager,所以它俩应该相互免密钥
node04上免密钥登录node05:
在node04的.ssh目录下生成密钥

ssh-keygen -t dsa -P '' -f ./id_dsa

并追加到自己authorized_keys

cat id_dsa.pub >> authorized_keys

用ssh localhost验证看是否需要密码,别忘了exit
将node04 的公钥分发到node05

scp id_dsa.pub node05:`pwd`/node04.pub

在node05的.ssh目录下,追加node04.pub

cat node05.pub >> authorized_keys
在node04上ssh node05,看是否免密钥。
node05上免密钥登录node04同理。
启动所有进程,并检查是否有遗漏
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
准备mapredeuce
在nodel02上启动hdfs,start-dfs.sh
在nodel02上启动yarn,start-yarn.sh
在nodel04、05上分别启动resourcemanager,yarn-daemon.sh start resourcemanager
全部会话jps,看进程全不全
在浏览器访问node05:8088,查看resourcemanager管理的内容
在这里插入图片描述
cd /opt/whj/hadoop-2.6.5/share/hadoop/mapreduce
在hdfs里建立输入目录和输出目录
hdfs dfs -mkdir -p /data/in1
hdfs dfs -mkdir -p /data/out1
将要统计数据的文件上传到输入目录并查看
hdfs dfs -put ~/********.txt/data/in1
hdfs dfs -ls /data/in1
运行wordcount(注意:此时的/data/out1必须是空目录)
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/in /data/out/result
在网页上打开nodel04:8088,FinalStatus显示SUCCEEDED
查看运行结果
hdfs dfs -ls /data/out/result
hdfs dfs -cat /data/out/result/part-r-00000
关闭集群:
node02: stop-dfs.sh
node02: stop-yarn.sh (停止nodemanager)
node04,node05: yarn-daemon.sh stop resourcemanager
node04、05、03:zkServer.sh stop
更改环境变量,增加HADOOP_HOME。并且给path后追加HADOOP_HOME的bin目录。然后再新建一个变量HADOOP_USER_NAME
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开存放hadoop文件的文件夹,选择hadoop-2.6.5—bin中的hadoop.dll 将其复制到C盘—Windows—System32
在这里插入图片描述
安装eclipse-mars并打开,点击Windows,选择Preferences中的Hadoop Map…,填写相关信息 选择在页面下方的Map/Reduce Locations,在下方空白处右键,选择第一项,填写信息,host取值是active状态下的namenode
在这里插入图片描述

点击windows,选择Preferences,在Build Path下选择User Libraries,新建一个jar。在右侧点击Add Eternal…,选择hadoop-lib文件夹导入
在这里插入图片描述
新建一个Project,取名test2,右键,选择Build Path—Configure Build… 点击Add Library…,选择User Library,选择刚创建的jar。导入JUnit操作类似。

在这里插入图片描述
在这里插入图片描述
利用xftp把hdfs-site.xml,core-site.xml等几个xml放到project的src目录。打开xftp,找到project所在的位置,找到xml文件所在位置,选择并传输
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值