Hadoop集群搭建手册

1 环境准备

A 机器/ip准备 4台虚拟机,Centos6.4系统

   vim /etc/sysconfig/network,修改对应的hostname分别为namenode,datanode1,datanode2,datanode3

   并将下面的内容写入每台机器的/etc/hosts

   192.168.247.129 namenode

   192.168.249.130 datanode1

   192.168.249.131 datanode2

   192.168.249.132 datanode3


B 建立用户(组)及数据目录

建立用户及用户组

   groupadd hadoop

   useradd -g hadoop hadoop

修改权限

   chmod u+w /etc/sudoers

   vim /etc/sudoers  找到root  ALL=(ALL:ALL) ALL,在其下面加入 hadoop  ALL=(ALL:ALL) ALL

   chmod u-w /etc/sudoers

建立相应目录

   namenode

       mkdir /data/hadoop

       mkdir /data/hadoop/name

       mkdir /data/hadoop/tmp

       chown -R hadoop:hadoop /data/hadoop

   datanode

       mkdir /data/hadoop

       mkdir /data/hadoop/data

       mkdir /data/hadoop/tmp

       chown -R hadoop:hadoop /data/hadoop


C 配置ssh免密钥

让各机器之间能ssh免密钥登录,注意是针对hadoop用户。

---------以下操作,每台机器都进行-----------------—-

su hadoop

cd        #切到用户目录

ssh-keygen -t rsa  #一路回车即可

------------------------------------------------

上面的操作将会在~/.ssh目录下生成id_rsa私钥和id_rsa.pub公钥文件

将所有机器的id_rsa.pub文件里面的公钥串拷贝到~/.ssh/authorized_keys文件中

然后将authorized_keys分发到各台机器的~/.ssh/目录中。

测试验证……


D 安装jdk

cd /usr/java    #没有java文件夹 新建一个

下载jdk-8u5-linux-x64.rpm jdk文件到此目录下,注意jdk版本需要1.6及以上。

rpm -ivh jdk-8u5-linux-x64.rpm


将下面加入到/etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_45

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


执行source /etc/profile

java -version 测试


2 hadoop配置及安装

A下载安装

    官网放出的安装版本都针对32位系统的,所以要注意如果你的系统是64位,需要在64位系统下重新编译安装包。

    http://down.51cto.com/data/1078830 这里有编译好的64位的版本。


    解压安装包,并将其移到/usr/local中

    tar zxvf hadoop-2.2.0.gz

    mv hadoop_xx /usr/local/

    chown -R hadoop:hadoop /usr/local/hadoop-2.2.0


B 在namenode上修改配置文件

  su hadoop

  cd /usr/local/hadoop/etc/hadoop


  vim hadoop-env.sh 修改JAVA_HOME

  export JAVA_HOME=/usr/java/jdk1.8.0_45


  core-site.xml

  <configuration>

    <property>

        <name>fs.default.name</name> //namenode的配置,机器名加端口;

        <value>hdfs://192.168.247.129:11111</value>

    </property>

  </configuration>

  

  mapred-site.xml

  <configuration>

    <property>

       <name>mapred.job.tracker</name> //JobTracker的配置,机器名加端口;

       <value>namenode:11112</value>

    </property>

  </configuration>


  hdfs-site.xml 

  <configuration>

<property>

   <name>dfs.replication</name> 

   <value>3</value> 

</property>

<property>

   <name>dfs.name.dir</name> //Namenode持久存储名字空间及事务日志的本地文件系统路径;

   <value>/data/hadoop/name</value>

</property>

<property>

   <name>hadoop.tmp.dir</name> //Hadoop的默认临时路径是在/tmp下,最好进行配置,如果不配

   <value>/data/hadoop/tmp/</value>//置,机器重启后需要执行NameNode格式化的命令;

</property>

  </configuration>


  vim masters  

  192.168.247.129


  vim slaves

  192.168.249.130

  192.168.249.131

  192.168.249.132

  注:masters文件用于指定secondary的主机而不是namenode,slaves用于指定datanode和tasktracker,


C 将程序文件拷入到各个datanode中

  su root

  cd /usr/local

  scp -rp hadoop-xx [email protected]:/usr/local

  

  root登录到datanode,修改程序文件用户

  chown -R hadoop:hadoop /usr/local/hadoop-2.2.0


  su hadoop

  cd /usr/local/hadoop-2.2.0/etc/hadoop

  修改hdfs-site.xml

  <property>

    <name>dfs.data.dir</name> //DataNode存放块数据的本地文件系统路径,逗号分隔的列表

    <value>/data/hadoop/data</value> //注意不同之处在此

  </property>


3 hadoop运行

  cd /usr/loca/hadoop-2.2.0/bin

  ./hadoop namenode -format  #如果有报错,请处理

  cd /usr/local/hadoop-2.2.0/sbin

  ./start_all.sh 


  开始运行后通过网页的可以查看相关信息

  http://192.168.247.129:50070

  http://192.168.247.129:50030


  jps  #java自带查看进程的命令

       #此版本与以往版本不一样,namenode是看不到jobtracker进程,datanode看不到tasktracker进程

4 hdoop执行测试任务

su hadoop

cd /home/hadoop/

mkdir input

echo ‘hello world’ > input/test1.txt #准备数据

echo ‘hello hadoop’ > input/test2.txt


/usr/local/hadoop-2.2.0/bin/hdfs dfs -put input/ /in #导入数据


/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /

/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /in/

/usr/local/hadoop-2.2.0/bin/hadoop jar /usr/local/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /in /out #执行job


/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /out/

/usr/local/hadoop-2.2.0/bin/hdfs dfs -cat /out/*

hadoop1

hello2

world1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章