Hadoop安装步骤--亲测版

一、集群环境及安装:  

1.1 集群环境

系统: Ubuntu Kylin 14.04 LTS

- Hadoop版本:Apache Hadoop-2.6.0

 

节点类型

网络地址

机器名

配置信息

Master

192.168.0.100

master

CPU4核,内存:8G

Backup&Slave

192.168.0.99

backup

CPU4核,内存:8G

Slave

192.168.0.101

datanode1

CPU2核,内存:4G

Slave

192.168.0.102

datanode2

CPU4核,内存:4G

Slave

192.168.0.103

datanode3

CPU2核,内存:4G

Slave

192.168.0.104

datanode4

CPU4核,内存:4G

1.2 集群系统安装

1)首先使用U盘启动盘将Ubuntu Kylin系统直接安装到硬盘上,安装时SWAP分区大小设置为内存大小,即master/backupswap8192M,其余节点为4096M,并且设置合适的硬盘分区大小挂载到“/”路径下。

2)在安装过程中,可以设置用户名、机器名等。如果在该步骤中设置,可跳至步骤4

3)创建hadoop用户组和用户:

             $ sudo addgroup hadoop                                     //创建hadoop用户组

      $ sudo adduser -ingroup hadoop hadoop                        //创建hadoop用户

4hadoop用户添加权限:

      $ sudo gedit /etc/sudoers                       //打开/etc/sudoers文件

 

hadoop用户赋予root用户同样的权限。在root  ALL=(ALL:ALL)   ALL下添加: hadoop ALL=(ALL:ALL)   ALL    

二、安装JDK

2.1 配置环境变量

 2.1.1 解压JDK

$ sudo mkdir /usr/lib/jvm

 

$ sudo tar zxvf jdk-8u05-linuxX64.tar.gz /usr/lib/jvm

 

 2.1.2 添加环境变量

 

$ sudo gedit /etc/profile

 

在文件的末尾加上如下内容,保存并关闭文件

 

# for java
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_05
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

 

使设置生效:

 

$ gedit ~/.bashrc

 

在文件最后加上: source /etc/profile, 保存并退出。

 

2.2 修改默认JDK

 

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_05/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_05/bin/javac 300 

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_05/bin/jar 300 

 

然后执行:

sudo update-alternatives --config java 

 

若是初次安装 JDK,将提示

 

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java/bin/java

 

无需配置。

 

最后进行简单的测试:$ java –version

 

若出现:

 

java version "1.8.0_05"

 

Java(TM) SE Runtime Environment (build 1.8.0_05-b13)

 

则表示JDK的配置已经完成。

 

三、ssh与免密码登陆

 

3.1 安装openssh-server

 

$ sudo apt-get install ssh openssh-server  

 

3.2 ssh无密码登录本机

 

首先要转换成hadoop用户,执行以下命令:

 

    $ sudo su - hadoop  

 采用rsa方式创建ssh-key 

 

 $ ssh-keygen -t rsa -P "" (直接回车生成的密钥对:id_rsaid_rsa.pub,默认存储)

 

2.  创建授权文件authorized_keys,复制 id_rsa.pub authorized_keys

 

      $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 

 

3. 登录localhost;

 

      $ ssh localhost  

 

4. 执行退出命令(exitCTRL+D);  

 

权限要求:hadoop目录 755.ssh目录700authorized_key文件600

 

3.3 ssh无密码登录集群

 3.2.1 配置hosts文件

 

在每台机器上都完成3.2步骤,然后修改每台机器的hosts文件:

 

$  sudo gedit /etc/hosts

 

修改后的/etc/hosts文件如下:

 

127.0.0.1            localhost
192.168.0.99     backup
192.168.0.100   master
192.168.0.101   datanode1
192.168.0.102   datanode2
192.168.0.103   datanode3
192.168.0.104   datanode4

 3.2.2 追加授权

 

master3.2 步骤中生成的.ssh文件夹分发至集群每一台机器:

 

$ scp –r ~/.ssh hostname:/home/hadoop

 

权限要求:hadoop目录 755.ssh目录700authorized_key文件600

 

至此,集群内任意两台机器可以免密码登陆。 

 

问题集:

 

1Agent admitted failure to sign using the key

 

解决方法:在当前用户下执行命令:ssh-add

 

四、安装hadoop

 

4,1安装Hadoop

 

1解压Hadoop至用户目录:

 

$ sudo tar zxvf hadoop-2.6.0.tar.gz

2配置HADOOP_HOME

 

$ sudo gedit /etc/profile:

  export HADOOP_HOME=/home/hadoop/hadoop-2.6.0

  export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.2 配置Hadoop集群

1hadoop-env.sh

              增加:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_05

2)编辑配置文件core-site.xml

 

 

3)编辑配置文件hdfs-site.xml

 

4)编辑配置文件mapred-site.xml



 5)编辑配置文件yarn-site.xml

<configuration>
   <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>master: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:8035</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>

masters文件:主节点master

slaves文件:数据节点,一行一个。

 

运行hadoop

1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作, 

    $ cd  ~./Hadoop-yarn  

    $ bin/hadoop namenode -format  

2. 启动sbin/start-all.sh

$ sbin/start-all.sh                 //关闭:同目录下./stop-all.sh

3. Web查看

http://localhost:50070    集群概况

http://localhost:8088      集群任务

 

五、服务端配置

 

修改文件副本数和block大小。

1) 指定连接超时大小:(core-site.xml)

 

2) 指定副本数:(hdfs-site.xml)

 

3) 指定block大小(1M):(hdfs-site.xml)



 

服务端程序通过读取SRC文件夹下的hadoop配置文件来读取配置信息:

在编写应用程序时,需要将配置文件添加到应用程序的classpath中,或者通过以下方法手动读取下配置文件就可以了。

conf.addResource(new Path("/usr/local/hadoop/conf/hdfs-site.xml"));

运行hadoop自带的wordcount程序

1、通过hadoop的命令在HDFS上创建/tmp/workcount目录,命令如下:bin/hadoop fs -mkdir /tmp/wordcount

2、通过copyFromLocal命令把本地的word.txt复制到HDFS上,命令如下:bin/hadoop fs -copyFromLocal /home/grid/word.txt  /tmp/wordcount/word.txt

3、通过命令运行例子,使用命令如下:bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount /tmp/wordcount/word.txt  /tmp/wordcount/out

4、查看运行结果,使用命令: bin/hadoop fs -ls /tmp/wordcount/out查看例子的输出结果,发现有两个文件夹和一个文件,使用命令查看part-r-00000文件, bin/hadoop fs -cat /tmp/wordcount/out/part-r-00000可以查看运行结果。


注意:如果出现java.net.NoRouteToHostException: No route to host,关闭防火墙

/etc/init.d/iptables stop

猜你喜欢

转载自toking79.iteye.com/blog/2280580