环境介绍
安装环境设置
配置各主机名和hosts, 安装JAVA
修改各主机名的配置, 例如ubuntu1的主机名配置为:
|
[email protected]:~$ cat /etc/hostname
|
|---|
ubuntu2 和 ubuntu3分别配置为ubuntu2 和 ubuntu3
在各主机上配置hosts列表, 三台主机的配置相同,如下红色部分:
|
[email protected]:~$ cat /etc/hosts |
|---|
安装配置java
三台主机都需要安装java, ubuntu1下java安装路径如下, 其它两台主机,也是安装到~/usr/jdk1.8.0_25目录下
|
[email protected]:~/usr/jdk1.8.0_131$ pwd |
|---|
配置JAVA相关环境变量
|
export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_131
|
|---|
配置三台主机ssh免密码登录
step1:生成公钥/私钥对
分别在ubuntu1 ubuntu2 ubuntu3三台主机上,执行如下命令生成公钥/私钥对
| [email protected]:~$ ssh-****** -t rsa -P '' |
|---|
按多次回车键,它在/home/bigdata下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。-P表示密码,-P '' 就表示空密码。
step2:将公钥添加到各主机,使得各主机可以ssh免密码登录
在ubuntu1上查看.ssh/authorized_keys文件是否存在,如果不存在则创建
|
[email protected]:~$ ls .ssh/authorized_keys
|
|---|
修改.ssh/authorized_keys文件权限为600
| [email protected]:~$ 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文件的内容类似如下:
|
[email protected]:~$ cat .ssh/authorized_keys
|
|---|
尝试在ubuntu1上无密码登录ubuntu2, 第一次可能需要输入密码,后续登录不需要。
|
[email protected]:~$ ssh ubuntu2 |
|---|
将主机ubuntu1的公钥文件/home/bigdata/.ssh/authorized_keys拷贝到ubuntu2 ubuntu3主机对应目录。
在各主机上,分别执行ssh命令免密码登录另外两台主机,第一次可能需要输入密码,后续不需要。
至此,三台主机可以互相免密码登录。
安装hadoop到一台主机ubuntu1上
我的hadoop部署在目录/home/bigdata/run目录下,在ubuntu1上部署hadoop先。操作部署如下:
step1:解压hadoop-2.7.3.tar.gz,并将其拷贝到run目录下
|
[email protected]:~$ tar -zxvf hadoop-2.7.3.tar.gz [email protected]:~$ mv hadoop-2.7.3 /home/bigdata/run/ [email protected]:~$ ln -s /home/bigdata/run/hadoop-2.7.3 /home/bigdata/run/hadoop |
|---|
step2: 配置core-site.xml
|
[email protected]:~$ cd /home/bigdata/run/hadoop/etc/hadoop
|
|---|
step3:配置hdfs-site.xml
|
[email protected]:~/run/hadoop/etc/hadoop$ cat hdfs-site.xml
|
|---|
step4:配置mapred-site.xml
|
[email protected]:~/run/hadoop/etc/hadoop$ cat mapred-site.xml
|
|---|
step5:配置yarn-site.xml
|
[email protected]:~/run/hadoop/etc/hadoop$ cat yarn-site.xml
|
|---|
step6: 配置hadoop-env.sh,红色部分,配置JAVA_HOME,即jdk的安装路径
|
[email protected]:~/run/hadoop/etc/hadoop$ cat hadoop-env.sh
|
|---|
step7: 创建namenode和datanode数据所在目录
|
[email protected]:~$ mkdir /home/bigdata/run/hadoop/tmp/name
|
|---|
这两路径已配置到了hdfs-site.xml配置文件中。
至此在ubuntu1上部署hadoop已经完成了。接下来,将hadoop部署到ubuntu2和ubuntu3两台主机上。
安装hadoop到主机ubuntu2和ubuntu3
为了方便, 直接将ubuntu1上的/home/bigdata/run/hadoop-2.7.3目录打包,拷贝到ubuntu1和ubuntu2主机上。
需要注意, ubuntu2和ubuntu3主机的目录结构,要同ubuntu1主机一样,所以需要将hadoop部署到ubuntu2和ubuntu3的/home/bigdata/run目录下
|
[email protected]:~/run$ tar -zcvf hadoop-2.7.3.tar.gz hadoop-2.7.3/
|
|---|
在ubuntu2 ubuntu3主机上解压,并创建软链接,以下是ubuntu2上的操作,在ubuntu3操作类似。
|
[email protected]:~/run$ tar -zxvf hadoop-2.7.3.tar.gz [email protected]:~$ ln -s /home/bigdata/run/hadoop-2.7.3 /home/bigdata/run/hadoop |
|---|
接下来修改配置文件。因ubuntu2和ubuntu3上修改配置文件完全一样,以下只描述ubuntu2上的修改过程。
step1:修改hdfs-site.xml, 注释掉红色部分
|
[email protected]:~/run/hadoop/etc/hadoop$ cat hdfs-site.xml
|
|---|
step2:修改mapred-site.xml, 注释掉红色部分
|
[email protected]:~/run/hadoop/etc/hadoop$ cat mapred-site.xml
|
|---|
ubuntu3上主机也做同样的修改。至此hadoop已经部署到三台主机。
启动hadoop集群
step1:格式化namenode
|
[email protected]:~/run/hadoop/bin$ cd /home/bigdata/run/hadoop/bin
|
|---|
step2:启动,只需要在ubuntu1主机上执行启动脚本即可
|
[email protected]:~$ cd /home/bigdata/run/hadoop/sbin
|
|---|
step3:检查进程是否已启动
ubuntu1主机
|
[email protected]:~/run/hadoop/sbin$ jps -l
|
|---|
ubuntu2和ubuntu3主机
|
[email protected]:~/run/hadoop/etc/hadoop$ jps -l
|
|---|
step4. 访问hadoop的web页面
测试hadoop
为了测试方便,设置环境变量如下,设置后使其生效:
|
export HADOOP_PREFIX=/home/bigdata/run/hadoop
|
|---|
测试操作如下:
step1:本地文件夹/home/bigdata/下创建文件test.txt,内容如下:
|
[email protected]:~$ cat test.txt |
|---|
step2:hdfs上创建文件夹test,命令如下:
| [email protected]:~$ hdfs dfs -mkdir /test |
|---|
step3:拷贝test.txt到hdfs的test目录下
|
[email protected]:~$ hdfs dfs -copyFromLocal /home/bigdata/test.txt /test/test.txt [email protected]:~$ hdfs dfs -cat /test/test.txt |
|---|
step4:执行示例代码中的wordcount(此示例实现统计单词数量功能),将结果输出到output
| [email protected]:~$ hadoop jar /home/bigdata/run/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/test.txt /output |
|---|
step5:在output下查看输出结果文件
|
[email protected]:~$ hdfs dfs -ls /output |
|---|