hadoop配置完整

这里是不完整的,没有配图,只有过程,在文件里,自己去下载,因为不想一个一个的复制过来了。

在这次安装linux是的过程中出现很多错误:比如刚开始的时候建立四个虚拟机的时候,配置时把名字写成node 01中间写了空格,导致配置时名字读不完,导致全都是node,所以千万不要留空格,前面的步骤都比较简单,都是些小错误,稍微改一下就行,安装linux时也要注意一些小问题,我刚开始就是把ip设置成一样了,导致四台机子的ip都一样,配置文件完成之后也改不过来,所以这时可以打开机子的属性,自行手动改一下机子的ip还有要注意的就是在发送文件的过程中千万不要按control+c让他停下来不论代码冒出来的多少,时间长或短,都要慢慢等待,否则就会导致文件传输不完,后面出错要回来慢慢找(我就是这样的,当时还找了一半天错误,没想到的是这末基础的小错误),在后面配置nmenode等信息时我就是一直错了,走一步错一步,几乎天天都在改错,(所以细心很重要)我会把我的错误都在下面成列出来(缺少namenode,datanode,journal,出现两台standby,缺少zkfc我都出现过,包括今天晚上全部都有后面却不见了,小问题很多耐心解决就OK)

Linux安装(适用新手)
说明:(让操作简单方便一点)
按ESC,:wq为保存退出 ,:q!为不保存退出,复制,粘贴时不能用control+c,+v了,直接右键复制,粘贴就好,vi是打开文件并可以修改文件,进入文件后修改文件时要输入时按i即可在原文件里改动了。table键可以自动填充路径等。
安装vmware虚拟机
一虚拟机安装:(注意:标注在下面,其他的直接下一步确认就行)
1.配型:自定义。
2.操作系统:linux.
3.虚拟机名称:我用的basic
4.保存地址:选择文件夹一定是超过20G空间的,不然后面会不能用的。
5.网络类型:使用网络地址转换
6.指定磁盘容量:200
7.在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

8.主机名:basic
在这里插入图片描述
9.密码自己设置,记得住就行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux环境安装
10.安装操作系统
11.打开虚拟机:
12.–vi /etc/sysconfig/network-scripts/ifcfg-eth0
13.如下修改:

14.service network restart(全ok)

15.ping www.baidu.com(contol+c停止)

16.编辑网络设置:(没圈的不要动)

17.-rm –fr /etc/udev/rules.d/70-persistent-net.rules
18.
19.关闭防火墙&Selinux
20.–service iptables stop
21.–chkconfig iptables off
22.–vi /etc/selinux/config
23.•SELINUX=disabled

24.关机
25.•拍摄快照

26.这个是我的克隆版

27.你的是纯净版(pure),为此描述一下,再克隆

28.打开刚克隆的虚拟机:
29.-vi /etc/sysconfig/network-scripts/ifcfg-eth0(把ip最后那个改为31)

30.service network restart
31.ping www.baidu.com
32.成功及成功
33.一共克隆四台虚拟机分别为:node01,node02,node03,node04,步骤一样的,要设置ip分别为
34.IPADDR=192168.9.31
35.IPADDR=192168.9.32
36.IPADDR=192168.9.33
37.IPADDR=192168.9.34
38.再service network restart
39.ping www.baidu.com(看看是否成功)
40.配置主机名
41.–vi /etc/sysconfig/network
42.•HOSTNAME=node01
43.•配置hosts
–vi /etc/hosts
44.打开文件夹c:/windows/system32/drivers/etc/hosts(最好找个notepad++来下载用来打开,做如下修改(添加四行),修改之后多保存几次)

45.关机
46.拍摄快照
47.vi /etc/hosts
48.
49.
50.给node01配置:
51.-然后poweroff拍快照,存一个非常干净的Linux版本
52.node02配置同样
53.配置完node01和node02后互相ping一下看是否能ping通
ping node02
54.node01 node02 node03node04都配好,且彼此间都能访问后,再配置一下让Windows和虚拟机之间也能访问,见下
55.页
56.然后在Windows的cmd窗口里
57.•-ping node01看能不能通

二.hadoop伪分布式安装:

1.下载Xftp
2.

3.1文件传输这里点击打开,你的界面将时出不来的,所以需要安装xpf4,可以到百度搜索下载安装包下载,就可以打开了,这一步可以将Windows下 的文件放入到Linux环境下,点击桌面下的文件,右键,点击传输即可传到linux环境下,电脑 上的上箭头可以直接跳到之前输入的命令(开始之前先知道这些就会节省一些时间)

4.安装linux文件,安装好后放入桌面,将其传输到linux的环境下,像这样的文件,可自行找

5.用rpm装jdk
6.-rpm -i jdk-7u67-linux-x64.rpm
7.-whereis java(将绝对路径复制一下

8.-vi + /etc/profile(配置环境)

export JAVA_HOME=/usr/bin/java
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
9.如上图:我们可以查看jdk-7u67-linux-x64文件在目录下,接下来便jps一下,若能出现jps+一串数字(进程号)就正确了,若出现下图情况,则查找java的路径,然后复制下来用
这一步可能出现的错误
10.如果出现:-bash: jps: command not found
改:export JAVA_HOME=/usr/bin/java
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin

11.在家目录下,ll –a ,看有无.ssh文件,若无,则先ssh localhost一下(登录完别忘了exit)
免密钥:
-ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
-cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys(追加密钥)
12.验证:
ssh localhost 验证 (别忘了exit)
ssh node01 验证(别忘了exit)

13.下载hadoop

14.在虚拟机上创建software来存储hadoop
15.将下载的hadoop传输到linux的software中的环境下

16.将hadoop解压到C/opt/yss(名字首写字母)
tar xf hadoop-2.6.5.tar.gz -C /opt/ldy
到此目录下检查一下(ll)
17.修改hadoop配置文件信息(伪分布式hadoop的安装)
cd /opt/ldy/hadoop-2.6.5/etc/hadoop
注:以上路径的etc可不是根目录下的etc
vi hadoop-env.sh
vi mapred-env.sh
vi yarn-env.sh
给这三个文件里的JAVA_HOME都改成绝对路径/usr/java/jdk1.7.0_67

18.注意,这里的java_home是在if上面那里改。不要弄错,java_home如果有#(表注释)需要删掉
输入hd按Tab键可以联想出hdfs
输入start-d按Tab键可以联想出start-dfs.
就表示配置成功了

19.vi core-site.xml 空行留多一点,以免覆盖下面的config

在两个configration之间

fs.defaultFS
hdfs://node01:9000


hadoop.tmp.dir
/var/ldy/hadoop/pseudo

20.将node01改为你现在登录的虚拟机,名字最好改为自己名字的首字母
vi hdfs-site.xml(在两个configratin之间)

dfs.replication
1


dfs.namenode.secondary.http-address
node01:50090

只改node就好,副本数不需要改

21.vi slaves

22.hdfs namenode -format (只能格式化一次,再次启动集群不要执行,否则clusterID变了)
之前/var/ldy/hadoop/pseudo这个文件不存在,格式化后就存在了,检查一下看存在没

没有,所以需要格式化一下
若正确应该是这样的截图,可以参考看看

如果这里是been successfully formatted则就是正确的
在格式化时如果是如下这样的错误,则时slaves这里配置出错了,返回检查,重新改,重新格式化

23.启动机群:
start-dfs.sh,并用jps验证下都有哪些进程启动起来了
Jps 若输入jps, namenode 和datanode和…Node能够出来就是正确的

一般出错电话就检查检查core-side 和hdfs文件配置是否正确
只有namenode没有的可以去core-site.xml里端口9000成9001然后重新start
24.在windows环境下显示hadoop机群 ;node01:50070(node01为自己当前开的机子)(不是百度,360的浏览器就行,火狐,谷歌)

25.如果出不来则是,windowns里的hosts(C:system32)有问题或端口号xml文件那里面,去检查一下。最好火狐和谷歌

26.关于jps命令-bash:jps:commandnotfound解决方案_张小竟-CSDN博客_bash:jps:commandnotfound https://blog.csdn.net/zhanglu1236789/article/details/50445261?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

27.Hadoop下运行wordcount(统计数字)
在hdfs里建立输入目录和输出目录
hdfs dfs -mkdir -p /data/input
hdfs dfs -mkdir -p /data/output
将要统计数据的文件上传到输入目录并查看
hdfs dfs -put 500miles.txt /data/input
hdfs dfs -ls /data/input
进入MapReduce目录
cd /opt/ldy/hadoop-2.6.5/share/hadoop/mapreduce/

28.点击go,刷新即可看到,将文件放linux环境下

29.在hdfs里建立输入目录和输出目录
hdfs dfs -mkdir -p /data/input
hdfs dfs -mkdir -p /data/output
将要统计数据的文件上传到输入目录并查看
hdfs dfs -put 500miles.txt /data/input
hdfs dfs -ls /data/input
30.进入MapReduce目录
a)cd /opt/ldy(自己之前建的首字母写)/hadoop-2.6.5/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount(空格) /data/input (空格)/data/output/result
查看运行结果
hdfs dfs -ls /data/output/result
hdfs dfs -cat /data/output/result/part-r-00000
Hadoop的log在哪里查
31.停止集群:stop-dfs.sh

三.hadoop高可用的安装

32.分发jdk到node03、04、02
-scp jdk-7u67-linux-x64.rpm node02:pwd
-scp jdk-7u67-linux-x64.rpm node03:pwd
-scp jdk-7u67-linux-x64.rpm node04:pwd
并在Xshell的全部会话栏里一起ll,看jdk是否发送成功。
注意:` 这一符号是数字1左边这个键

33.分别在node02、03、04上执行rpm安装命令
-rpm -i jdk-7u67-linux-x64.rpm
在node01上 注意cd /etc(此路径下),在此目录下把profile文件分发到
node03、04、02上。
scp profile node04:pwd
34.利用Xshell全部会话栏,source /etc/profile
利用Xshell全部会话栏,jps,看04、05、06这三台机子
的jdk是否装好。

就可以在里面输入命令,然后同步到四个机子

36.第一步调时间:
37.在全部对话框中输入date查看一下四个机子是否同时,(以下在全部对话框中输入)
第一步:yum -y install ntp
第二步:ntpdate time1.aliyun.com
38.cat /etc/sysconfig/network查看HOSTNAME是否正确
39.cat /etc/hosts查看IP映射是否正确
若不正确,可以改文件,也可以把node03上的用scp分发过去。
40.cat /etc/sysconfig/network
41.cat /etc/sysconfig/selinux (防火墙是否关闭)
service iptables status

42.接下来检查一下有没有 .ssh(全部对话框中)

某台机子若没有则输入 :ssh localhost(记得exit退出)看截图
进如。Ssh文件查看一下,
43.进入ss.h目录文件夹下: cd .ssh
ll 查看公钥
44.将公钥发送到其他三个机子;如我的:
scp id_dsa.pub node02:pwd/node01.pub (将node01的公钥发送到node02)
依次发送到机子三和机子四:
scp id_dsa.pub node03:pwd/node01.pub
scp id_dsa.pub node04:pwd/node01.pub

45.再全部回话下查看一下是否都有公钥:而且都是(4台机子)这样的:

46.若不是则做以下修改;(没有id_dsa的)自己手动来免密钥:
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost
ssh node02(哪台机子没有的ssh一下)
exit(别忘记)
cd .ssh(进入.ssh检查是否有了文件)
ll -a
一般都出来了
47.接下来:(为其他三台机子面密钥)
cat node01.pub >> authorized_keys(我的公钥在node01上) (exit哦)
在node02的.ssh(cd .ssh)目录下看是否有node01
如果有追加authorizes_keys
cat node01.pub >> authorized_keys
并在node01上 ssh node02看是否免密钥了(exit不要忘)
给node02,03,04都追加下node01.pub,也就是在node05 ,06的.ssh目录下执行cat node01.pub >> authorized_keys
48.修改namenode的一些配置信息
vi hdfs-site.xml
两个Configration中间
去掉snn的配置

dfs.replication
3

dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2 dfs.namenode.rpc-address.mycluster.nn1 node01:8020 dfs.namenode.rpc-address.mycluster.nn2 node02:8020 dfs.namenode.http-address.mycluster.nn1 node01:50070 dfs.namenode.http-address.mycluster.nn2 node02:50070 dfs.namenode.shared.edits.dir qjournal://node01:8485;node02:8485;node03:8485/mycluster dfs.journalnode.edits.dir /var/yss/hadoop/ha/jn dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_dsa dfs.ha.automatic-failover.enabled true 49.vi core-site.xml fs.defaultFS hdfs://mycluster ha.zookeeper.quorum node02:2181,node03:2181,node04:2181 50.修改nodename的配置 第一步 1.cd /opt/yss/hadoop-2.6.5/etc/hadoop/ 2. vi slaves
  1. cd /opt/ yss(ll一下可以看到有haddop)
    .

51.安装hadoop:分别将这个文件发到node02,node03,04上,
scp -r yss/ node02:pwd
scp -r yss/ node03:pwd
scp -r yss/ node04:pwd
出来是这样的不要质疑(千万不要ctrol+c)

52.然后到node02,03,04的cd /opt/yss目录下ll查看一下

53.将hdfs-site.xml和core-site.xml分发到node04、05、06
-scp hdfs-site.xml core-site.xml node04:pwd
-scp hdfs-site.xml core-site.xml node05:pwd
-scp hdfs-site.xml core-site.xml node06:pwd
54.开始装zoomkeeper了(在node02中)
55.在家目录下创建software文件
(mkdir software)

56.将zookeeper-3.4.6.tar.gz通过xf4放到software文件夹下

查看一下:ll

57.tar xf zookeeper-3.4.6.tar.gz -C /opt/yss(将其解压到同自己名字首写的文件夹下)
ll看是否解压:在(cd /opt/yss目录下)
58.到此目录下:
cd /opt/yss/zookeeper-3.4.6/
能看到confs文件并进入: cd conf
cp zoo_sample.cfg
cp zoo_sample.cfg zoo.cfg(修改名字并复制一份 以防万一ll查看一下)
59.vi zoo.cfg (修改如下)
改dataDir=/var/ldy/zk
并在末尾追加
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888

60.cd /opt/yss/(此目录下)
scp -r zookeeper-3.4.6/ node03:pwd(将其发送到node03,node04)
scp -r zookeeper-3.4.6/ node04:pwd

mkdir -p /var/yss/zk
echo 1 > /var/yss/zk/myid
cat /var/yss/zk/myid

分别在node03,04上也执行一样的创建,echo
不一样的是Node03 :echo 2 > /var/yss/zk/myid
Node04 :echo 3 > /var/yss/zk/myid
如图:

61.cd /opt/yss/zookeeper-3.4.6/
62.vi /etc/profile(在/etc/profile里面配置)

6.然后在把/etc/profile分发到其他node03、node04
scp /etc/profile node03:/etc
scp /etc/profile node04:/etc

source /etc/profie,这步千万别忘
验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh
63.启动zookeeper
全部会话:zkServer.sh start
接着用zkServer.sh status查看每个zookeeper节点的状态(两个foller一个leader)

65.为了使两台namenode间完成数据同步
在02、03、04三台机子上分别把journalnode启动起来
hadoop-daemon.sh start journalnode

66.随意挑一台namenode上执行hdfs namenode –format
另一台namenode不用执行,否则clusterID变了,找不到
集群了。(我的是2)

67.然后,启动刚刚格式化的那台namenode
hadoop-daemon.sh start namenode
68.在另一台namenode ,我们要给另一台namenode同步一下数据,用以下命令(我的是node02)
hdfs zkfc -formatZK
在node02上执行zkCli.sh打开zookeeper客户端看
hadoop-ha是否打开

注意我在这里就开始一直出错了,上面步骤要确定对不对
69.在node01上启动hdfs集群:
start-dfs.sh
注意:如果那个节点没起来到hadoop目录下去看那个
node的日志文件log
我的错误有先后缺少namenode,datanode,出现两个standby,zkfc,奇怪吧,我所有错误都出现过而且在不同的时间
Node01

Node02:

Node03

Node04

这里出错的同学也会有很多:
我问题一般有:
问题1:就是之前发送文件到node03,04,02的时候按暂停了,所以文件夹下没有相应的文件
解决:重新发一下就行,会覆盖掉前面错误的文件,检查一下相应的配置(小心为妙)
问题2:突然不知道咋回事我的node01不能免密码访问2,3,4了,之前都好好的,我觉得应该是配置哪里把他给重复了,格式化了,忘记更新了都有可能whatever,只要按步骤解决就行
解决:我重新设置免密钥,发送公钥,追加公钥,(说实话弄了几次,差点崩溃,结果都是忘了exit)别急慢慢来,慢慢试
问题3:先是node02或node01没有namenode(我是忘了前面的namenode standby同步的那一步,而且)
解决:hdfs namenode –bootstrapStandby
把namenode的数据同步到node02上
hadoop-daemon.sh start namenode
启动node02上的namenode作为standby
问题4:没有datanode(之前是有的,第二次打开就没有了)
解决:这是因为我在同一个机子上格式了多次导致clusterid变了,到打开datanode时旁边提示的日志文件里,查看错误
cd /opt/yss/hadoop-2.6.5/logs
cat hadoop-root-datanode-node01.log(查看日志)

在at前面的都是错误(但其实看这里没有什么用,响上找,找可用信息)
我的图没了,当时没有截图,大概意思就是我的datanode的clusterid不一致,照着错误信息提示将正确的id改过来就行
node02,node03,node04
cd /tmp/hadoop-root/dfs/data/current/
vi VERSION
要保证node02,node03,node04的VERSION文件中的clusterID一样
到我划圈的类似路径中的路径中去看看datanode,他会标出错误id和正确id
cd /var/yss/hadoop/ha/ jin /jn /current (下的clusterid)
vi VERSION(如果路径不对你就ll,查一下文件夹下有什么文件,直到最后可以找到那个目录下的version文件)

cd /tmp/hadoop-root/dfs/data/current/下的id

对照使下面的id和上面的相等即可(node02,node03,node04都要改成一样)
问题5:没有zkfc
解决:这个不是什么大事,重新格式话一下zkfc就行了
问题6:就是缺少的有东西(忘了是啥了)
解决:前面设置namenode信息那里,core-site,yern,那里文件出错了,去检查一下(我的错误是少了最后的)
检查看看相应的机子名是否正确。
70.用浏览器访问node01:50070和node02:50070

这里我也出现了问题:
就是出现了两个standby(由于将两个机子都执行了hdfs namenode –bootstrapStandby)
如果出现这样的错误有两个可能:
1.打开集群的方式不对,先打开了集群,而不是zkserver
解决:关闭集群,重新打开:步骤为
zkServer.sh start
start-dfs.sh
2.需要从前面重新格式化named,standby, zkCli.sh执行一遍,其中一个standby就会变为active了(参考前面),这是因为多执行了同步standby在两台机子上。
71.关闭集群命令:stop-dfs.sh
关闭zookeeper命令:zkServer.sh stop
Jps检查一下看看是否只有jps,若是则全部关完了
72.把我给你的压缩包解压后的这三个文件夹放到一个usr文件夹里,把usr放到一个你知道的地方。

“此电脑”右键-属性-高级系统设置

新建环境变量,增加HADOOP_HOME
这里的路径是你存放刚刚hadoop文件的信息

并且给path后追加HADOOP_HOME的bin目录,注意:Windows里path的路径分隔符是分号;,而不是冒号:

然后再新建一个变量HADOOP_USER_NAME

把hadoop.dll拷贝到以下路径

安装ecipse-mars,此版本的eclipse带插件,可以可视化的看到hadoop的一些东西,比较方便

如果eclipse界面下方没有小象图标,则做后续三步调出

在eclipse里把hadoop相关信息填一下

这样在eclipse左侧列表的DFS location里新建一个目录,对应hdfs里也就建好了,可以用浏览器查看一下,自己试试。
在eclipse里导入自己建一个包库

把jar包导入刚建的包库

把刚建的包库引入到project里

利用xftp把hdfs-site.xml,core-site.xml等几个xml放到project的src目录

下载需要的东西在这个文件里:https://pan.baidu.com/s/1ssILTA78ZL9pATNC7fVOlQ

图太多了,发了文件,自己去下载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值