Hadoop集群搭建详细步骤
一套大数据视频断断续续都看了三遍了,有半年了,有时候真的看不下去,有时候看的人打瞌睡,有时候几天都不想看
但还是咬着牙看。
最近无意中看了一部电视剧《孔子》,然后又在知乎上了解了下真实的孔子和他的弟子们,内心真鸡冻不已,久久不能平复,所以下定决心一点一点开始搭大数据框架。
子曰:十室之邑,必有忠信如丘者焉,不如丘之好学也
学而不厌,诲人不倦,发奋忘食,乐以忘忧,不知老之将至
建议大家也了解一下真实的孔子,真是天不生夫子,万古如长夜!
身高一米九,力能扛鼎,精通六艺,身配长剑,讲道理你讲不过,骂你骂不过,打你打不过
见了他,谁又不温良恭俭让呢?
况且老夫子是以理服人(道理或物理)因材施教(各种意义上的)
哈哈,佩服的五体投地
下来开始搭建大数据框架,今天端午节祝大家端午节安康!
一、 下载hadoop的jar包并解压
二 、我们可以看一看hadoo的目录
bin:自己的操作命令
sbin:系统启动管理的命令
etc:配置文件
include:c语言头文件
lib:本地库
share:jar包
三、 修改配置文件 cd etc/hadoop,发现文件超多
我们需要改这几个:
1:hadoop-env.sh
vi hadoop-env.sh
#第27行
export JAVA_HOME=/root/hadoop/tools/jdk/jdk1.8.0_201
2:core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://weekend-1206-01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
3:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.1.152:50090</value>
</property>
可以不配置,用默认值。我没有配置
4:mapred-site.xml (改下名字 mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>weekend-1206-01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
四、将hadoop添加到环境变量
vi /etc/proflie
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
五、格式化namenode(是对namenode进行初始化) 命令: hadoop namenode -format
六、拷贝server01的配置到server02、server03、server04上 。(不用改配置文件中的server01,他本来就是其他服务器的 namenode,其他三台是datanode)
命令:scp -r /root/hadoop/tools/hadoop server02:/root/hadoop/tools/
scp -r /root/hadoop/tools/hadoop server03:/root/hadoop/tools/
scp -r /root/hadoop/tools/hadoop server04:/root/hadoop/tools/
scp -r /etc/profile server02:/etc/profile
scp -r /etc/profile server03:/etc/profile
scp -r /etc/profile server04:/etc/profile
六、启动namenode 命令:hadoop-daemon.sh start namenode
命令:jps
七、在server02、server03、server04上启动hadoop
命令:hadoop-daemon.sh start namenode
命令:jps
八、在实际生产中,集群如果有几百,上千台,不可能一台一台去启动。
我们配置免密登陆
免密登陆
在server01上执行命令:
ssh-******
ssh-copy-id server01 (他自己对自己也要免密)
ssh-copy-id server02
ssh-copy-id server03
ssh-copy-id server04
然后在namenode所在的服务器执
命令:start-dfs.sh
九、浏览器输入server01:50070
十、 遇到的坑
1、配置文件,一个字母都不能错,一定要细心
2、namenode只format一次就好了,两次会出问题
3、如果start-all.sh无法启动从节点,那就hadoop-daemon.sh start datanode 启动从节点
问题还没找到,猜想是farmat之后然后scp给其他节点,有影响
我的公众号:java进阶