这个本来是本人的云计算应用的课程作业,好吧!我承认我倒腾了半天,不过还是捣腾出来了,特此记之,方便后人。
1.hadoop配置 首先安装虚拟机VMware Workstation Pro,然后安装镜像Ubuntu 14.04.3 LTS,系统安装完毕手动安装VMware Tools工具。 (1).首先更新软件包,执行命令:
sudo apt-get update(2).配置jdk,首先从本机桌面拖拽到虚拟机桌面;执行命令:
sudo mkdir /usr/lib/jvm # 新建文件夹 sudo tar zxvf /home/ubuntu/Desktop/jdk-7-linux-i586.tar.gz -C/usr/lib/jvm # 解压文件(3).进入配置文件,更改配置环境:
sudo gedit /etc/profile在文件最后添加如下代码,注意路径按照自己的:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH(4).重启系统,使配置文件生效:
sudo shutdown -r now(5).查看是否安装配置成功:
java -version(6).复制hadoop-0.22.0.tar.gz文件到桌面,然后解压到指定路径下:
sudo tar zxvf /home/ubuntu/Desktop/hadoop-0.22.0.tar.gz -C/home/ubuntu # 解压 mv /home/ubuntu/hadoop-0.22.0 /home/ubuntu/Hadoop # 重命名文件(7).打开hadoop目录下面的conf文件夹,更改环境变量:
sudo gedit /home/ubuntu/Hadoop/conf/hadoop-env.sh将 #export JAVA_HOME=/usr/lib/jvm/java-7-sun改为export JAVA_HOME=/usr/lib/jvm/jdk1.7.0,如下: (8).配置ssh,命令如下:
sudo apt-get install sshsudo apt-get install rsync
(1).更改conf目录下的配置文件。 conf/core-site.xml文件 添加如下代码:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>文件内容如下图所示: conf/hdfs-site.xml文件 添加如下代码:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>文件内容如下图所示:
conf/mapred-site.xml文件 添加如下代码:
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>文件内容如下图所示: (2).查看是否能够免密登录。
ssh localhost如果提示需要输入密码,则执行如下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys(3).格式化一个新的分布式文件系统:
bin/hadoop namenode -format(4).启动hadoop守护进程:
bin/start-all.sh(5).将输入文件拷贝到分布式文件系统,并运行实例程序:
bin/hadoop fs -put conf input bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'(6).查看输出文件: 方式一:从分布式系统拷贝到本地进行查看:
bin/hadoop fs -get output output cat output/*方式二:在分布式文件系统上查看输出文件:
bin/hadoop fs -cat output/*(7).web页面查看管理界面。 hdfs管理界面查看:(http://localhost:50070) Reduce Administrationg管理界面查看:(http://localhost:50030) (8).完成全部操作后,停止守护进程。
bin/stop-all.sh前提:集群在原有的单击模式下进行修改,复制虚拟机并新建若干个虚拟机(此处为2个),配置好jdk环境并添加环境变量,安装ssh并实现自身的免密登录,教程见上。 (1).更改每台虚拟机的主机名,此处我们设置主节点为master,子节点分别为slave1,slave2,之后依次类推。主节点命令如下:
sudo gedit /etc/hostname(2).更改主机名后,为每台虚拟机分别设置hosts映射;并注释127.0.1.1 ubuntu,具体配置依照自身情况进行设置。个人配置如下,执行命令并进行修改:
sudo gedit /etc/hosts(3).配置hosts文件后,每台虚拟机都进行重新操作,保证配置文件生效。重启后交叉测试ping,保证每台虚拟机都能够相互连通,此处测试其一,ping后Ctrl+C进行取消:
ping slave1(4).为主节点进入子节点设置免密登录。 在每个子节点中分别执行如下命令(注意“ubuntu@master”是指主节点的“用户名@主机名”,可以直接在Terminal前面看到):
cd ~/.ssh ls scp ubuntu@master:~/.ssh/id_dsa.pub ./master_dsa.pub # 上传命令由于我之前进行了配置,默认需要进行确定并输入密码进行验证,此处省略。 (5).配置后,在主节点上测试是否能远程免密连接所有子节点,此处测试其一。若命令行之前的标识发生改变则进入成功,注意操作完需要exit进行退出操作。
ssh slave1 # 远程连接 yes # 确定 exit # 退出子节点(6).添加hadoop的环境变量,按自身的条件进行设置,然后source使配置文件生效。
sudo gedit /etc/profile # 修改文件 source /etc/profile(7).查看配置文件是否成效。
hadoop version(8).配置hadoop集群配置文件。 core-site.xml文件 hdfs-site.xml文件
mapred-site.xml文件 需要注意的是此处的IP为主节点的IP地址。 hadoop-en.sh文件 masters文件 主节点的IP地址。 slaves文件 子节点的IP地址。 (9).向各节点复制配置好的hadoop目录,使其配置一致。注意此处的本地路径和上传路径。每个子节点都需要上传。
scp -r ./hadoop slave1:~ scp -r ./Hadoop slace2:~(10).格式化一个新的分布式文件系统:
bin/hadoop namenode -format(11).启动hadoop守护进程:
bin/start-all.sh(12).使用jps命令查看集群是否正常运行: 主节点应该为4个进程: 子节点应该为3个进程(每个节点都需要查看):
输入两个文件,一个代表工厂表,包含工厂名列和地址编号列;另一个代表地址表,包含地址名列和地址编号列。要求从输入数据中找出工厂名和地址名的对应关系,输出“工厂名——地址名”表,按工厂名排序输出。数据文件自己设计样例。
(1).按要求编写Relevance.java文件,放在主节点的/home/ubuntu/achieve目录下, 测试文件address和factory文件放在achieve目录下的input文件夹下,代码见第六部分。 address文件
addressID addressname 1 Beijing 2 Guangzhou 3 Shenzhen 4 Xian 5 Wuhanfactory文件
factoryname addressed Beijing Red Star 1 Shenzhen Thunder 3 Guangzhou Honda 2 Huasheng Henghui 4 Beijing Rising 1 Micro pie Technology 5 Xian San yi 4 Guangzhou Development Bank 2 Tencent 3 Back of Beijing 1 douyu TV 5(2).编译Relevance.java程序。执行命令为:
javac -classpath /home/ubuntu//hadoop/hadoop-0.20.2-core.jar Relevance.java -d /home/ubuntu/achieve(3).将class文件打包成jar包。
jar cvf Relevance.jar *.class(4).上传测试文件进入hdfs中。
hadoop fs -put input/ /user/ubuntu/input(5).运行程序,会显示job运行时的一些信息。
hadoop jar Relevance.jar Relevance(6).查看运行结果。
hadoop fs -cat output/*(7).关于hadoop守护进程。
stop-all.sh还不睡觉,真的等着猝死啊,虽然还有很多事情没做,不管了,先美美的睡一觉!
