1 VM下Ubuntu安装和配置
1.1 安装Ubuntu系统
这个就不说了,不知道的可以去看看其他的博文。
1.2 集群配置
搭建一个由3台机器组成的集群:
IP | user/passwd | hostname | role | System |
192.168.174.160 | hadoop/hadoop | master | nn/snn/rm | Ubuntu-14.04-32bit |
192.168.174.161 | hadoop/hadoop | slave1 | dn/nm | Ubuntu-14.04-32bit |
192.168.174.162 | hadoop/hadoop | slave2 | dn/nm | Ubuntu-14.04-32bit |
nn: namenode snn: secondary namenode
dn: datanode rm: resourcemanager
nm: nodemanager
1.3 创建用户
我这里给每台机器创建一个hadoop的用户,密码也为hadoop,修改/etc/sudoers文件,增加:hadoop ALL=(ALL) ALL,给每个账户分配sudo的权限。
root@master:/home/duanwf# useradd --create-home hadoop root@master:/home/duanwf# passwd hadoop root@master:~# vi /etc/sudoers # User privilege specification root ALL=(ALL:ALL) ALL duanwf ALL=(ALL:ALL) ALL hadoop ALL=(ALL:ALL) ALL
1.4 设定电脑的IP为静态地址
参考博文“Vmware下Ubuntu 14.04静态IP地址的设置方法”。
1.5 设置各个主机的hostname
打开/etc/hostname文件:
root@master:~# vi /etc/hostname master
1.6 在以上三台电脑的/etc/hosts添加以上配置的hostname
root@master:~# vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 ubuntu # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.174.160 master 192.168.174.161 slave1 192.168.174.162 slave2
1.7 设置SSH无密码登陆
安装SSH
duanwf@master:~$ sudo apt-get install ssh
查看SSH是否安装成功以及版本
duanwf@master:~$ ssh -V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014
安装完成后会在~目录(当前用户主目录,即这里的/home/hadoop)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh)。
duanwf@master:~$ cd /home/hadoop duanwf@master:~$ ls -a duanwf@master:~$ mkdir .ssh
进入.ssh文件夹
duanwf@master:~$ cd .ssh
产生秘钥
duanwf@master:~/.ssh$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/duanwf/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/duanwf/.ssh/id_rsa. Your public key has been saved in /home/duanwf/.ssh/id_rsa.pub. The key fingerprint is: 49:ad:12:42:36:15:c8:f6:42:08:c1:d9:a6:04:27:a1 duanwf@master The key's randomart p_w_picpath is: +--[ RSA 2048]----+ |O++o+oo. | |.*.==. . | |E oo... . . | | . ...o o | | .. S | | . | | | | | | | +-----------------+
把id_rsa.pub 追加到授权的 key 里面去
duanwf@master:~/.ssh$ cat id_rsa.pub >> authorized_keys
重启 SSH 服务命令使其生效
duanwf@master:~/.ssh$ service ssh restart stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.109" (uid=1000 pid=8874 comm="stop ssh ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") start: Rejected send message, 1 matched rules; type="method_call", sender=":1.110" (uid=1000 pid=8868 comm="start ssh ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
将master的authorized_keys追加到slave1和slave2的authorized_keys:
把所有主机都配好之后再来完成该步骤。
这里只有一个是master,如果有多个namenode,或者rm的话则需要打通所有master都其他剩余节点的免密码登陆。
duanwf@master:~/.ssh$ scp authorized_keys duanwf@slave1:~/.ssh/authorized_keys_from_master The authenticity of host 'slave1 (192.168.174.161)' can't be established. ECDSA key fingerprint is 1f:c0:2a:ed:c1:7b:6e:26:46:e3:c3:b6:87:bb:99:42. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'slave1,192.168.174.161' (ECDSA) to the list of known hosts. duanwf@slave1's password: authorized_keys 100% 395 0.4KB/s 00:00 duanwf@master:~/.ssh$ scp authorized_keys duanwf@slave2:~/.ssh/authorized_keys_from_master The authenticity of host 'slave2 (192.168.174.162)' can't be established. ECDSA key fingerprint is 1f:c0:2a:ed:c1:7b:6e:26:46:e3:c3:b6:87:bb:99:42. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'slave2,192.168.174.162' (ECDSA) to the list of known hosts. duanwf@slave2's password: authorized_keys 100% 395 0.4KB/s 00:00
进入slave1和slave2的.ssh目录
duanwf@slave1:~$ cd .ssh duanwf@slave1:~/.ssh$ ssh -V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014 duanwf@slave1:~/.ssh$ cat authorized_keys_from_master >> authorized_keys duanwf@slave1:~/.ssh$ ls authorized_keys authorized_keys_from_master duanwf@slave2:~/.ssh$ ssh -V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014 duanwf@slave2:~/.ssh$ cat authorized_keys_from_master >> authorized_keys duanwf@slave2:~/.ssh$ ls authorized_keys authorized_keys_from_master
验证SSH无密码登录
duanwf@master:~/.ssh$ ssh slave1 Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic i686) * Documentation: https://help.ubuntu.com/ packages can be updated. updates are security updates. Last login: Tue Oct 7 18:25:31 2014 from 192.168.174.1
如上显示,说明已经安装成功,第一次登录时会询问你是否继续链接,输入yes即可以进入。
实际上,在hadoop的安装过程中,是否无密码登陆不是必须的,但是如果不配置无密码登陆的话,每次启动hadoop,都需要输入密码以登陆到每台daotanode,考虑到一般的hadoop集群动辄数十数百台机器,因此一般来说都会配置ssh的无密码登陆。
2 JDK安装和配置
2.1 JDK下载
2.2 解压下载的jdk到/opt目录下
hadoop@master:/home/duanwf/Installpackage$ sudo tar zxvf jdk-7u51-linux-i586.tar.gz -C /opt/
2.3 jdk环境变量配置
在终端输入以下命令来修改文件/etc/profile
hadoop@master:~$ sudo vi /etc/profile
在文件最后加上
export JAVA_HOME=/opt/jdk1.7.0_51 export JRE_HOME=/opt/jdk1.7.0_51/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH
使修改生效,执行命令:
hadoop@master:~$ source /etc/profile
验证java环境变量是否配置成功:
hadoop@master:~$ java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
3、防火墙配置
ubuntu下关闭防火墙,执行命令:
hadoop@master:~$ sudo ufw disable
4、Hadoop-2.4.1的安装和配置
4.1 编译hadoop-2.4.1-src.tar.gz源包
对于64位操作系统,需要重新编译源码包。
Hadoop下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/
4.2 解压安装包hadoop-2.4.1.tar.gz
hadoop@master:/home/duanwf/Installpackage$ sudo tar zxvf hadoop-2.4.1.tar.gz -C /opt/
4.3 Hadoop环境变量配置
修改/etc/profile文件,加入以下内容:
hadoop@master:~$ sudo vi /etc/profile export HADOOP_DEV_HOME=/home/hadoop/hadoop-2.4.1/ export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME} export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME} export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME} export YARN_HOME=${HADOOP_DEV_HOME} export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export PATH=$HADOOP_DEV_HOME/bin:$HADOOP_DEV_HOME/sbin:$PATH
使修改的配置生效,在终端输入命令:
hadoop@master:~$ source /etc/profile
查看Hadoop环境变量是否生效,在终端执行命令:
hadoop@master:~$ hadoop Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jarrun a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp copy file or directories recursively archive -archiveName NAME -p * create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters.
4.4 hadoop配置
配置之前,需要在master本地文件系统创建以下文件夹:
~/dfs/name
~/dfs/data
~/temp
hadoop@master:~$ mkdir ~/dfs hadoop@master:~$ mkdir ~/temp hadoop@master:~$ mkdir ~/dfs/name hadoop@master:~$ mkdir ~/dfs/data
这里要涉及到的配置文件有7个:
~/hadoop-2.4.1/etc/hadoop/hadoop-env.sh
~/hadoop-2.4.1/etc/hadoop/yarn-env.sh
~/hadoop-2.4.1/etc/hadoop/slaves
~/hadoop-2.4.1/etc/hadoop/core-site.xml
~/hadoop-2.4.1/etc/hadoop/hdfs-site.xml
~/hadoop-2.4.1/etc/hadoop/mapred-site.xml.template
~/hadoop-2.4.1/etc/hadoop/yarn-site.xml
<---------------------------------- hadoop-env.sh ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi hadoop-env.sh # The java implementation to use. export JAVA_HOME=/opt/jdk1.7.0_51/ <---------------------------------- yarn-env.sh ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi yarn-env.sh # some Java parameters export JAVA_HOME=/opt/jdk1.7.0_51/ <---------------------------------- slaves ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi slaves slave1 slave2 <---------------------------------- core-site.xml ---------------------------------> hadoop@master:~/hadoop-2.4.1/etc/hadoop$ sudo vi core-site.xml<---------------------------------- hdfs-site.xml ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi hdfs-site.xml fs.defaultFS hdfs://master:9000 io.file.buffer.size 131072 hadoop.tmp.dir /home/hadoop/temp/ Abase for other temporary directories. hadoop.proxyuser.hduser.hosts * hadoop.proxyuser.hduser.groups * <---------------------------------- mapred-site.xml.template ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi mapred-site.xml.template dfs.namenode.secondary.http-address master:9001 dfs.namenode.name.dir /home/hadoop/dfs/name/ dfs.datanode.data.dir /home/hadoop/dfs/data/ dfs.replication 3 dfs.webhdfs.enabled true <---------------------------------- yarn-site.xml ---------------------------------> hadoop@master:/opt/hadoop-2.4.1/etc/hadoop$ sudo vi yarn-site.xml mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address master:8032 yarn.resourcemanager.scheduler.address master:8030 yarn.resourcemanager.resource-tracker.address master:8031 yarn.resourcemanager.admin.address master:8033 yarn.resourcemanager.webapp.address master:8088
4.5 复制到其他节点
进入slave1:
hadoop@slave1:~$ scp -r hadoop@master:/home/hadoop/hadoop-2.4.1/ /home/hadoop/
进入slave2:
hadoop@slave2:~$ scp -r hadoop@master:/home/hadoop/hadoop-2.4.1/ /home/hadoop/
4.6 Hadoop启动
(1)格式化HDFS
hadoop@master:~/hadoop-2.4.1$ ./bin/hdfs namenode -format 14/10/08 18:43:05 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = master/192.168.174.160 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.4.1 STARTUP_MSG: classpath = /home/hadoop/hadoop-2.4.1//etc/hadoop:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jackson-mapper-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jersey-core-1.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/xz-1.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-el-1.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jackson-jaxrs-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/hadoop-annotations-2.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jsr305-1.3.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/httpcore-4.2.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-compress-1.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/junit-4.8.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/xmlenc-0.52.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/protobuf-java-2.5.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/avro-1.7.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jsch-0.1.42.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-lang-2.6.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jackson-core-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/asm-3.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-cli-1.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jetty-util-6.1.26.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-codec-1.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-httpclient-3.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jasper-compiler-5.5.23.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jets3t-0.9.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-net-3.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-math3-3.1.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-logging-1.1.3.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-digester-1.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/netty-3.6.2.Final.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/stax-api-1.0-2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/activation-1.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-configuration-1.6.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jersey-json-1.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jackson-xc-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/httpclient-4.2.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jersey-server-1.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/mockito-all-1.8.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/zookeeper-3.4.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jettison-1.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-collections-3.2.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/log4j-1.2.17.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jsp-api-2.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/guava-11.0.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/hadoop-auth-2.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jasper-runtime-5.5.23.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jaxb-api-2.2.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/commons-io-2.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/jetty-6.1.26.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/slf4j-api-1.7.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/servlet-api-2.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/lib/paranamer-2.3.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/hadoop-nfs-2.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/hadoop-common-2.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/common/hadoop-common-2.4.1-tests.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jackson-mapper-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jersey-core-1.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-el-1.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jsr305-1.3.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/xmlenc-0.52.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-lang-2.6.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jackson-core-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/asm-3.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-cli-1.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-codec-1.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jersey-server-1.9.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/log4j-1.2.17.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jsp-api-2.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/guava-11.0.2.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jasper-runtime-5.5.23.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-io-2.4.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/jetty-6.1.26.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/lib/servlet-api-2.5.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/hadoop-hdfs-2.4.1-tests.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/hadoop-hdfs-nfs-2.4.1.jar:/home/hadoop/hadoop-2.4.1//share/hadoop/hdfs/hadoop-hdfs-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jackson-mapper-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jersey-core-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/xz-1.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jackson-jaxrs-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jsr305-1.3.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-lang-2.6.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jackson-core-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/asm-3.2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-cli-1.2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/javax.inject-1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-codec-1.4.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-httpclient-3.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jersey-client-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/activation-1.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jersey-json-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jackson-xc-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jersey-server-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/zookeeper-3.4.5.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/guice-3.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/aopalliance-1.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jettison-1.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-collections-3.2.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jline-0.9.94.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/log4j-1.2.17.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/guava-11.0.2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/commons-io-2.4.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/jetty-6.1.26.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/lib/servlet-api-2.5.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-tests-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-client-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-common-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-server-common-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/yarn/hadoop-yarn-api-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/hamcrest-core-1.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/xz-1.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/hadoop-annotations-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/jackson-core-asl-1.8.8.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/asm-3.2.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/javax.inject-1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/junit-4.10.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/guice-3.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.1-tests.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.4.1.jar:/home/hadoop/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.4.1.jar:/contrib/capacity-scheduler/*.jar STARTUP_MSG: build = http://svn.apache.org/repos/asf/hadoop/common -r 1604318; compiled by 'jenkins' on 2014-06-21T05:43Z STARTUP_MSG: java = 1.7.0_51 ************************************************************/ 14/10/08 18:43:05 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 14/10/08 18:43:05 INFO namenode.NameNode: createNameNode [-format] 14/10/08 18:43:06 WARN common.Util: Path /home/hadoop/dfs/name/ should be specified as a URI in configuration files. Please update hdfs configuration. 14/10/08 18:43:06 WARN common.Util: Path /home/hadoop/dfs/name/ should be specified as a URI in configuration files. Please update hdfs configuration. Formatting using clusterid: CID-f1441872-89ef-4733-98df-454c18da5043 14/10/08 18:43:06 INFO namenode.FSNamesystem: fsLock is fair:true 14/10/08 18:43:06 INFO namenode.HostFileManager: read includes: HostSet( ) 14/10/08 18:43:06 INFO namenode.HostFileManager: read excludes: HostSet( ) 14/10/08 18:43:06 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000 14/10/08 18:43:06 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true 14/10/08 18:43:06 INFO util.GSet: Computing capacity for map BlocksMap 14/10/08 18:43:06 INFO util.GSet: VM type = 32-bit 14/10/08 18:43:06 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB 14/10/08 18:43:06 INFO util.GSet: capacity = 2^22 = 4194304 entries 14/10/08 18:43:06 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false 14/10/08 18:43:06 INFO blockmanagement.BlockManager: defaultReplication = 3 14/10/08 18:43:06 INFO blockmanagement.BlockManager: maxReplication = 512 14/10/08 18:43:06 INFO blockmanagement.BlockManager: minReplication = 1 14/10/08 18:43:06 INFO blockmanagement.BlockManager: maxReplicationStreams = 2 14/10/08 18:43:06 INFO blockmanagement.BlockManager: shouldCheckForEnoughRacks = false 14/10/08 18:43:06 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000 14/10/08 18:43:06 INFO blockmanagement.BlockManager: encryptDataTransfer = false 14/10/08 18:43:06 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000 14/10/08 18:43:06 INFO namenode.FSNamesystem: fsOwner = hadoop (auth:SIMPLE) 14/10/08 18:43:06 INFO namenode.FSNamesystem: supergroup = supergroup 14/10/08 18:43:06 INFO namenode.FSNamesystem: isPermissionEnabled = true 14/10/08 18:43:06 INFO namenode.FSNamesystem: HA Enabled: false 14/10/08 18:43:06 INFO namenode.FSNamesystem: Append Enabled: true 14/10/08 18:43:06 INFO util.GSet: Computing capacity for map INodeMap 14/10/08 18:43:06 INFO util.GSet: VM type = 32-bit 14/10/08 18:43:06 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB 14/10/08 18:43:06 INFO util.GSet: capacity = 2^21 = 2097152 entries 14/10/08 18:43:06 INFO namenode.NameNode: Caching file names occuring more than 10 times 14/10/08 18:43:06 INFO util.GSet: Computing capacity for map cachedBlocks 14/10/08 18:43:06 INFO util.GSet: VM type = 32-bit 14/10/08 18:43:06 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB 14/10/08 18:43:06 INFO util.GSet: capacity = 2^19 = 524288 entries 14/10/08 18:43:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033 14/10/08 18:43:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0 14/10/08 18:43:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000 14/10/08 18:43:06 INFO namenode.FSNamesystem: Retry cache on namenode is enabled 14/10/08 18:43:06 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis 14/10/08 18:43:06 INFO util.GSet: Computing capacity for map NameNodeRetryCache 14/10/08 18:43:06 INFO util.GSet: VM type = 32-bit 14/10/08 18:43:06 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB 14/10/08 18:43:06 INFO util.GSet: capacity = 2^16 = 65536 entries 14/10/08 18:43:06 INFO namenode.AclConfigFlag: ACLs enabled? false Re-format filesystem in Storage Directory /home/hadoop/dfs/name ? (Y or N) Y 14/10/08 18:43:10 INFO namenode.FSImage: Allocated new BlockPoolId: BP-215877782-192.168.174.160-1412764990823 14/10/08 18:43:10 INFO common.Storage: Storage directory /home/hadoop/dfs/name has been successfully formatted. 14/10/08 18:43:11 INFO namenode.NNStorageRetentionManager: Going to retain 1 p_w_picpaths with txid >= 0 14/10/08 18:43:11 INFO util.ExitUtil: Exiting with status 0 14/10/08 18:43:11 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at master/192.168.174.160 ************************************************************/ 格式化HDFS:hadoop@master:~/hadoop-2.4.1$ ./bin/hdfs namenode -format
(2)启动HDFS
执行一下命令启动HDFS,会自动启动所有master的namenode和slave1,slave2的datanode:
hadoop@master:~/hadoop-2.4.1$ ./sbin/start-dfs.sh Starting namenodes on [master] The authenticity of host 'master (192.168.174.160)' can't be established. ECDSA key fingerprint is 1f:c0:2a:ed:c1:7b:6e:26:46:e3:c3:b6:87:bb:99:42. Are you sure you want to continue connecting (yes/no)? yes master: Warning: Permanently added 'master,192.168.174.160' (ECDSA) to the list of known hosts. hadoop@master's password: master: mkdir: 无法创建目录"/opt/hadoop-2.4.1/logs": 权限不够 master: chown: 无法访问"/opt/hadoop-2.4.1/logs": 没有那个文件或目录 master: starting namenode, logging to /opt/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out master: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 151: /opt/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out: 没有那个文件或目录 master: head: 无法打开"/opt/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out" 读取数据: 没有那个文件或目录 master: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 166: /opt/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out: 没有那个文件或目录 master: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 167: /opt/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out: 没有那个文件或目录 The authenticity of host 'slave2 (192.168.174.162)' can't be established. ECDSA key fingerprint is 1f:c0:2a:ed:c1:7b:6e:26:46:e3:c3:b6:87:bb:99:42. Are you sure you want to continue connecting (yes/no)? The authenticity of host 'slave1 (192.168.174.161)' can't be established. ECDSA key fingerprint is 1f:c0:2a:ed:c1:7b:6e:26:46:e3:c3:b6:87:bb:99:42. Are you sure you want to continue connecting (yes/no)? yes slave2: Warning: Permanently added 'slave2,192.168.174.162' (ECDSA) to the list of known hosts. hadoop@slave2's password: Please type 'yes' or 'no': slave1: Warning: Permanently added 'slave1,192.168.174.161' (ECDSA) to the list of known hosts. hadoop@slave1's password: slave2: mkdir: 无法创建目录"/opt/hadoop-2.4.1/logs": 权限不够 slave2: chown: 无法访问"/opt/hadoop-2.4.1/logs": 没有那个文件或目录 slave2: starting datanode, logging to /opt/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out slave2: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 151: /opt/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out: 没有那个文件或目录 slave2: head: 无法打开"/opt/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out" 读取数据: 没有那个文件或目录 slave2: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 166: /opt/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out: 没有那个文件或目录 slave2: /opt/hadoop-2.4.1/sbin/hadoop-daemon.sh: 行 167: /opt/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out: 没有那个文件或目录 hadoop@master:~/hadoop-2.4.1$ ./sbin/start-dfs.sh
【出现问题】
mkdir: 无法创建目录"/home/hadoop/hadoop-2.4.1/logs": 权限不够
【解决办法】
在master上都执行命令:
hadoop@master:~$ sudo chown -R hadoop:hadoop hadoop-2.4.1/
slave1和slave2同样需要执行。
重新启动HDFS
hadoop@master:~/hadoop-2.4.1$ ./sbin/start-dfs.sh Starting namenodes on [master] hadoop@master's password: master: starting namenode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-namenode-master.out hadoop@slave1's password: hadoop@slave2's password: slave1: starting datanode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave1.out hadoop@slave2's password: slave2: Permission denied, please try again. slave2: starting datanode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-datanode-slave2.out Starting secondary namenodes [master] hadoop@master's password: master: starting secondarynamenode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-secondarynamenode-master.out hadoop@master:~/hadoop-2.4.1$ ./sbin/start-dfs.sh
检查Hadoop集群是否安装好了,在master上面运行jps,如果有NameNode这个进程,说明master安装好了:
hadoop@master:~/hadoop-2.4.1$ jps 31711 SecondaryNameNode 31464 NameNode 31857 Jps
在slave1上面运行jps,如果有DataNode这个进程,说明slave1安装好了。
hadoop@slave1:~$ jps 5529 DataNode 5610 Jps
在slave2上面运行jps,如果有DataNode这个进程,说明slave1安装好了。
hadoop@slave2:~$ jps 8119 Jps 8035 DataNode
<-----------------------------安装完成----------------------------->