3台机器配置hadoop-2.7.3集群

来源:互联网 发布:阿里云服务器ecs备份 编辑:程序博客网 时间:2024/05/17 08:10

一. 环境介绍

三台主机,主机名和ip分别为:
ubuntu1  10.3.19.171
ubuntu2  10.3.19.172
ubuntu3  10.3.19.173
三台主机的登录用户名是bigdata,home目录是/home/bigdata
现在三台主机上部署hadoop集群, ubuntu1作为namenode, ubuntu1 ubuntu2 ubuntu3作为datanode。

二. 安装部署

1. 配置各主机名和hosts, 安装JAVA

修改各主机名的配置, 例如ubuntu1的主机名配置为:
bigdata@ubuntu1:~$ cat /etc/hostname ubuntu1
ubuntu2 和 ubuntu3分别配置为ubuntu2 和 ubuntu3

在各主机上配置hosts列表, 三台主机的配置相同,如下红色部分:
bigdata@ubuntu1:~$ cat /etc/hosts127.0.0.1       localhost127.0.1.1       ubuntu# The following lines are desirable for IPv6 capable hosts::1     localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters10.3.19.171 ubuntu110.3.19.172 ubuntu210.3.19.173 ubuntu3

安装配置java. 三台主机都需要安装java, ubuntu1下java安装路径如下, 其它两台主机,也是安装到~/usr/jdk1.8.0_25目录下
bigdata@ubuntu1:~/usr/jdk1.8.0_25$ pwd/home/bigdata/usr/jdk1.8.0_25
配置JAVA相关环境变量
export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_25export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libexport PATH=$JAVA_HOME/bin:$PATH 

2. 配置三台主机ssh免密码登录

step1: 分别在ubuntu1 ubuntu2 ubuntu3三台主机上,执行如下命令生成公钥/私钥对

bigdata@ubuntu1:~$ ssh-keygen -t rsa -P ''
按回车键,它在/home/bigdata下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。-P表示密码,-P '' 就表示空密码。


step2: 拷贝公钥到各主机,使得各主机可以ssh免密码登录

查看.ssh/authorized_keys文件是否存在,如果不存在则创建

bigdata@ubuntu1:~$ ls .ssh/authorized_keys .ssh/authorized_keys
修改.ssh/authorized_keys文件权限为600

bigdata@ubuntu1:~$ chmod 600 .ssh/authorized_keys
将ubuntu1 ubuntu2 ubuntu3三台主机 /home/bigdata/.ssh/id_rsa.pub 中的内容拷贝到ubuntu1主机的/home/bigdata/.ssh/authorized_keys文件中。拷贝后/home/bigdata/.ssh/authorized_keys文件的内容如下:

bigdata@ubuntu1:~$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrI0nqIW4P7mPbKytk/wo0d1utVQCIgDGQjUZDgVv1Ll9y6PoRtffTqDQ5cHLHnqapsdO/RAfDFUBPaDAHHwZeQ/sKP/c9GWbr9PxjH2dzzVcB6VOll3T0vTLAxMsIevtBj/fN5HRdZTasQeLtibY5CQvGF+owWCWtWp7cEdewL2fgPCFIVijFLqGLtAvLJrpcbnwoY0WgIivviK9QD2Ymm/kC5pAK/5/QljYldyOEiPbTeRLE94b4G7XWPDhIv/1SKLvnwQoy/Zs0HokG/jzW3VXSLJ9aecg8JfTp3q2Ngcm3hm/chfWvxfCRC5DnmTzlKg+HxsWp7M3ku3saR2Kv bigdata@ubuntu1ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7E/gMzpHo4YXEmIBMau+H1Jw01UVEvUSWWy1zz6v0xXQbSQt2fKm1Iwm9XoijLWrv0PWZp44XdPNAP0o+2pK2y8G3t7qMMbAIu9LSe7No51Npz450HMbKlXtZ2ED3Zd/09SP+ekpd4z8IiMeZGUQNCsdRe0jgIbP8QtEkg7MO7WrI9d54dBMzjWPqrxYcSfP3yf65WXGwTcxbmbaFpuFSMvx2c+OsA1u1wemNk0r1/f1Q5Qu4GavOX0ZQojUjz1z2CJe9Hm+hNtpgrIrmnzPk3+4qw/8udUkDGYuZD0G9J2xPmD1qwu5oz29a9b/2eMqStQu7NWoDfCCpoa6ZrHuv bigdata@ubuntu2ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMRgOi/sWQHXRgL24VqDgEncOxmoV9IlmjVhC9Mhbx1vpRWfLakGzxQdmyN6X7xJxZjc3O6CcJbVSZTBnAd45PpX5EhQ/QBa+ycz9Cfl44bVyEaeb2mAtcTbILlepNgvdT+MgVxDkkL+7bL9XMwkxptmQozTY7RTRd3MHiXOk+AoDMt9iJrpGyhjSpR5WEL7jG9TAakOlnBSyTPPnjPV+SerN3DEG/KSg3vAED9Pimzka7MM6syjMVypVt5AZhDmc5bTXPwq6+WTupspI6MdXkeKn6tTCZGhE1Qwvf8nP0Thope6fvrbVWTTOf4RGW8/f9zXyWy2PC9Pp2h5AIihZf bigdata@ubuntu3

尝试在ubuntu1上无密码登录ubuntu2, 第一次可能需要输入密码,后续登录不需要。

bigdata@ubuntu1:~$ ssh ubuntu2Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64) * Documentation:  https://help.ubuntu.com/Last login: Tue May  2 19:56:34 2017 from 10.3.19.171bigdata@ubuntu2:~$ 

3. 安装hadoop到一台主机ubuntu1上

我的hadoop部署在目录/home/bigdata/run目录下,在ubuntu1上部署hadoop先。操作部署如下:
step1. 解压hadoop-2.7.3.tar.gz,并将其拷贝到run目录下
bigdata@ubuntu1:~$ tar -zxvf hadoop-2.7.3.tar.gz
bigdata@ubuntu1:~$ mv hadoop-2.7.3 /home/bigdata/run/
bigdata@ubuntu1:~$ ln -s /home/bigdata/run/hadoop-2.7.3 /home/bigdata/run/hadoop
step2: 配置core-site.xml
bigdata@ubuntu1:~$ cd /home/bigdata/run/hadoop/etc/hadoopbigdata@ubuntu1:~/run/hadoop/etc/hadoop$ 
bigdata@ubuntu1:~/run/hadoop/etc/hadoop$ cat core-site.xml ......<configuration>        <property>                <name>fs.defaultFS</name>                <value>hdfs://ubuntu1:9000</value>        </property></configuration>

step3: 配置hdfs-site.xml
bigdata@ubuntu1:~/run/hadoop/etc/hadoop$ cat hdfs-site.xml .......<configuration>        <property>                <name>dfs.replication</name>                <value>3</value>        </property>        <property>                <name>dfs.namenode.name.dir</name>                <value>file:/home/bigdata/run/hadoop/tmp/name</value>        </property>        <property>                <name>dfs.datanode.data.dir</name>                <value>file:/home/bigdata/run/hadoop/tmp/data</value>        </property>        <property>                <name>dfs.http.address</name>                <value>ubuntu1:50070</value>        </property>        <property>                <name>dfs.datanode.http.address</name>                <value>ubuntu1:50075</value>        </property></configuration>

step4: 配置mapred-site.xml
bigdata@ubuntu1:~/run/hadoop/etc/hadoop$ cat mapred-site.xml......<configuration>        <property>                  <name>mapreduce.framework.name</name>                  <value>yarn</value>        </property>  </configuration>

step5:配置yarn-site.xml
bigdata@ubuntu1:~/run/hadoop/etc/hadoop$ cat yarn-site.xml ......<configuration>        <property>                  <name>yarn.resourcemanager.hostname</name>                  <value>ubuntu1</value>          </property>          <property>                  <name>yarn.nodemanager.hostname</name>                  <value>ubuntu1</value>         </property>          <property>                  <name>yarn.nodemanager.aux-services</name>                  <value>mapreduce_shuffle</value>          </property></configuration>

step6: 配置hadoop-env.sh,红色部署,配置JAVA_HOME,即jdk的安装路径
bigdata@ubuntu1:~/run/hadoop/etc/hadoop$ cat hadoop-env.sh ......# The java implementation to use.#export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_25......

step7: 创建namenode和datanode数据所在目录
mkdir /home/bigdata/run/hadoop/tmp/namemkdir /home/bigdata/run/hadoop/tmp/data
这两路径已配置到了hdfs-site.xml配置文件中。


这样在ubuntu1上部署hadoop已经完成了。接下来,将hadoop部署到ubuntu2和ubuntu3两台主机上。

4. 安装hadoop到ubuntu2和ubuntu3主机上

为了方便, 我们直接将ubuntu1上的/home/bigdata/run/hadoop-2.7.3目录打包,拷贝到ubuntu1和ubuntu2主机上。注意, ubuntu2和ubuntu3主机的目录结构,要同ubuntu1主机一样。我们同样将hadoop部署到/home/bigdata/run目录下
bigdata@ubuntu1:~/run$ tar -zcvf hadoop-2.7.3.tar.gz hadoop-2.7.3/
scp hadoop-2.7.3.tar.gz ubuntu2:/run/scp hadoop-2.7.3.tar.gz ubuntu3:/run/
在ubuntu2 ubuntu3主机上解压,并创建软链接,发下是ubuntu2上的操作,ubuntu3类似。
bigdata@ubuntu2:~/run$ tar -zxvf hadoop-2.7.3.tar.gz
bigdata@ubuntu2:~$ ln -s /home/bigdata/run/hadoop-2.7.3 /home/bigdata/run/hadoop

接下来修改配置文件。因ubuntu2和ubuntu3上修改配置文件完全一样,以下只讲述ubuntu2上的修改过程。
step1. 修改hdfs-site.xml, 注释掉红色部署。
bigdata@ubuntu2:~/run/hadoop/etc/hadoop$ cat hdfs-site.xml ......<configuration>        <property>                <name>dfs.replication</name>                <value>3</value>        </property><!--        <property>                <name>dfs.namenode.name.dir</name>                <value>file:/home/bigdata/run/hadoop/tmp/name</value>        </property>-->        <property>                <name>dfs.datanode.data.dir</name>                <value>file:/home/bigdata/run/hadoop/tmp/data</value>        </property><!--        <property>                <name>dfs.http.address</name>                <value>ubuntu1:50070</value>        </property>        <property>                <name>dfs.datanode.http.address</name>                <value>ubuntu1:50075</value>        </property>--></configuration>


step2: 修改mapred-site.xml, 注释掉红色部分
bigdata@ubuntu2:~/run/hadoop/etc/hadoop$ cat mapred-site.xml......<configuration>        <property>                  <name>mapreduce.framework.name</name>                  <value>yarn</value>        </property>  </configuration>


5. 启动hadoop集群

step0: 格式化namenode
bigdata@ubuntu1:~/run/hadoop/bin$ cd /home/bigdata/run/hadoop/binbigdata@ubuntu1:~/run/hadoop/bin$ ./hadoop namenode -format
step1. 启动
bigdata@ubuntu1:~$ cd /home/bigdata/run/hadoop/sbinbigdata@ubuntu1:~/run/hadoop/sbin$ ./start-all.sh
step2. 检查进程是否已启动
bigdata@ubuntu1:~/run/hadoop/sbin$ jps -l1827 org.apache.hadoop.yarn.server.nodemanager.NodeManager1494 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode1225 org.apache.hadoop.hdfs.server.namenode.NameNode1707 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager2110 sun.tools.jps.Jps1343 org.apache.hadoop.hdfs.server.datanode.DataNode

bigdata@ubuntu2:~/run/hadoop/etc/hadoop$ jps -l983 org.apache.hadoop.hdfs.server.datanode.DataNode1166 sun.tools.jps.Jps

step3. 查看页面, 访问 http://ubuntu1:50070



6.  测试hadoop

为了测试方便,设置环境变量如下:
export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_25export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libexport PATH=$JAVA_HOME/bin:$PATH export HADOOP_PREFIX=/home/bigdata/run/hadoopexport HADOOP_HOME=$HADOOP_PREFIX  export HADOOP_COMMON_HOME=$HADOOP_PREFIX  export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop  export HADOOP_HDFS_HOME=$HADOOP_PREFIX  export HADOOP_MAPRED_HOME=$HADOOP_PREFIX  export HADOOP_YARN_HOME=$HADOOP_PREFIX  export PATH=$PATH:$HADOOP_PREFIX/sbin:$HADOOP_PREFIX/bin

测试步骤如下:

a. 本地文件夹/home/bigdata/下创建文件test.txt

$ cat test.txt 

hello world
b. hdfs上创建文件夹test:hdfs dfs -mkdir /test
c. 拷贝test.txt到test文件夹下:hdfs dfs -copyFromLocal /home/bigdata/test.txt /test/test.txt
d. 查看hdfs上的test.txt:hdfs dfs -cat /test/test.txt
e. 执行工具类wordcount,将结果输出到output:
hadoop jar /home/bigdata/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/test.txt /output
f. 在output下查看输出结果文件:hdfs dfs -ls /output
g. 查看统计结果 hdfs dfs -cat /output/part-r-00000



0 0
原创粉丝点击