大数据挖坑前篇之hadoop环境搭建

大数据hadoop挖坑前篇——hadoop环境搭建

小女子乃文科名校毕业清纯女学生,没事唱唱小曲儿,逛逛街儿,看看剧儿~,向来是没有接触过这种高科技的活儿的。
屈于“裘千仞”这个倒霉老师的淫威之下,小女子踏上了自学大数据编程这条不归路(/(ㄒoㄒ)/~~)。
“裘千仞”还是真想空手套白狼啊,只给了小女子5台裸机,连操作系统都没有(exo???),看来,他是想让小女子去shi啊~~~
撸撸(想啥呢?)袖子,干活啦,以下是正文…

通过收集各方资料,搭建hadoop需要如下准备工作。

1.操作系统。linux系统,小女子使用的是centos6.5。毕竟名校毕业清纯女大学生,积攒的人脉还是不少的,小女子跪求大神帮我把5台机器的操作系统搞定了。

2.主机名和ip分配。hadoop使用的角色有两个:master和slave。master顾名思义是“主人”的意思,slave是“奴隶”的意思(惹,小女子好像想到了什么很邪恶的东西(。・∀・)ノ゙)。master用来管理slave,slave才是真真做实事的。一台master服务器组成单NameNode集群,两台master服务器组成双NameNode集群,多台slave服务器组成DataNode集群,客户端只是访问Master服务器。NameNode负责保存和管理所有的HDFS元数据,因而用户数据就不需要通过NameNode,也就是说文件数据的读写是直接在DataNode上进行的。以下表格是主机名和ip地址:

主机名ip
Master192.168.1.248
Slave1192.168.1.247
Slave2192.168.1.246
Slave3192.168.1.245
Slave4192.168.1.244

具体命令如下:

  • 修改主机名
# vim /etc/sysconfig/network 

 HOSTNAME=Master
  • 修改主机名和ip映射
# vim /etc/hosts

192.168.1.120 Master
192.168.1.121 Slave1
192.168.1.122 Slave2
192.168.1.123 Slave3
192.168.1.124 Slave4
  • 关闭防火墙
# service iptables status        //查看防火墙状态
# service iptables stop          //关闭防火墙
# chkconfig iptables –list       //查看防火墙开机启动状态
# chkconfig iptables off 
  • 重启系统
#reboot

3.jdk环境。hadoop是用java开发的,其中的编译以及运行过程都需要使用jdk。centos系统自带了jdk环境,小女子采用的是卸载自带jdk,安装Sun公司发布的jdk,版本采用的是1.7(毕竟日本产的.avi才是最棒的≖‿≖✧)。jdk环境配置小女子就不再赘述了。

4.ssh。在Hadoop启动以后,NameNode是通过ssh(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置ssh运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。即master和slave之间通过ssh实现无密钥通信。(如何配置,百度上小白教程很多啦~ (*•̀ㅂ•́)و)

5.hadoop安装。这个就是高潮了!小女子激动得shi了一把!小女子下载的hadoop是2.7.2版本的,进入到/usr/local目录下,并新建一个Hadoop的文件夹,windows通过winSCP(这个工具非常的好用啊,有够爽的(●’◡’●)ノ♥)把下载好的hadoop-2.7.2.tar.gz传到Hadoop文件夹下,将.tar.gz文件解压并删除。

#cd /usr/local
#mkdir Hadoop
#cd Hadoop
tar –zxvf hadoop-2.7.2.tar.gz //解压
mv hadoop-2.7.2 hadoop        //重命名
rm –rf hadoop-2.7.2.tar.gz

然后,在重命名后的hadoop文件夹下新建tmp文件夹,并将hadoop的安装路径添加到/etc/profile文件中,并重新使其生效

#cd /usr/local/Hadoop/hadoop
#mkdir tmp
#vi /etc/profile
# set hadoop path
export HADOOP_HOME=/usr/local/Hadoop/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
#source /etc/profile

接着,就是对hadoop中的配置文件进行修改了,位于/usr/local/Hadoop/hadoop/etc/hadoop中的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、slaves、yarn-site.xml这些文件全部都要改!(┙>∧<)┙

  • hadoop-env.sh
#cd /usr/local/Hadoop/hadoop/etc/hadoop
#vi hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
  • core-site.xml
#vi core-site.xml
<configuration>
 <property>
     <name>hadoop.tmp.dir</name>
     <value>/usr/local/Hadoop/hadoop/tmp</value>
     <description>A base for other temporary directories.</description>
 </property>
<!-- file system properties -->
  <property>
      <name>fs.default.name</name>
      <value>hdfs://192.168.1.248:9000</value>
  </property>
</configuration>
  • hdfs-site.xml
#vi hdfs-site.xml
<configuration>
  <property>
     <name>dfs.namenode.secondary.http-address</name>
      <value>192.168.1.248:9001</value>
  </property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/Hadoop/hadoop/data</value>
    </property>
  <property>
      <name>dfs.replication</name>
      <value>3</value>
  </property>
   <property>
       <name>dfs.webhdfs.enabled</name>
       <value>false</value>
    </property>
</configuration>
  • mapred-site.xml
#vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.1.248:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.1.248:19888</value>
</property>
<property>
    <name>dfs.permissions</name>
        <value>false</value>
        </property>
</configuration>
  • slaves
#vi slaves
Slave1
Slave2
Slave3
Slave4
  • yarn-site.xml
#vi yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
<property>
               <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name
>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
<property>
               <name>yarn.resourcemanager.address</name>
               <value>192.168.1.248:8032</value>
       </property>
<property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>Master:8030</value>
       </property>
<property>
               <name>yarn.resourcemanager.resource-tracker.address</name>
               <value>Master:8031</value>
       </property>
<property>
               <name>yarn.resourcemanager.admin.address</name>
               <value>Master:8033</value>
       </property>
<property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>Master:8088</value>
       </property>
</configuration>

这些配置都做完之后就是将这个hadoop目录传到所有slave中去啦,一定要注意所有机器中存放hadoop的地址要相同,不然启动会报错!!!

#scp -r /usr/local/Hadoop/hadoop root@Slave1:/usr/local/Hadoop/
#scp -r /usr/local/Hadoop/hadoop root@Slave2:/usr/local/Hadoop/
#scp -r /usr/local/Hadoop/hadoop root@Slave3:/usr/local/Hadoop/
#scp -r /usr/local/Hadoop/hadoop root@Slave4:/usr/local/Hadoop/

6.运行hadoop。终于到尾声了,小女子感觉仿佛身体被掏空。

  • 格式化数据节点
# hdfs namenode -format
  • 启动dfs
# start-dfs.sh 
  • 启动yarn
start-yarn.sh
  • jps检查
#jps

检查Master是否有SecondaryNameNode、NameNode、ResourceManager,Slave是否有NodeManager、DataNode

结尾

小女子从小白到完成hadoop环境搭建过程中,虽然是一脸懵逼(咦,这不是个体位吗?),但是感觉还是学到了挺多的,对linux算是了解了一些。搭建过程中碰到的问题真是不少(毕竟第一次总是会有点痛的>ㅂ<),什么本地库不匹配警告啦~各种服务没启动啦~搭完了环境到现在基本也忘干净了。以后能捡起来就好了O(∩_∩)O~(但觉得这是给自己挖了个大坑,日后跪着也要填完啊(;°○° ))
祝各位大数据大佬越混越起劲啊!小女子快要战亡了…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值