一、环境 1、软件版本 Hadoop:hadoop-0.20.2. Hive:hive-0.5.0 JDK:jdk1.6以上版本 2、配置的机器: 主机[服务器master]:192.168.10.121 hadoop13 从机[服务器slaves]:192.168.10.68 hadoop4 在本文中,在命令或 二、先决条件
1、配置host: 打开/etc/host文件,添加如下映射 192.168.10.121 hadoop13 hadoop13 192.168.10.68 hadoop4 hadoop4
2、配置SSH自动登陆 1)以ROOT用户,登陆到[服务器master]上执行,如下操作: ssh-keygen -t rsa //一路回车 cd ~/.ssh cat id_rsa.pub >> authorized_keys scp -r ~/.ssh [服务器slaves]:~/
2)以ROOT用户,登陆到[服务器slaves]上执行,如下操作: scp -r ~/.ssh [服务器master]:~/
3)测试SSH是否配置成功 在主服务器中执行如下命令:ssh [服务器master] ssh 192.168.10.68
成功显示结果: Last login: Thu Aug26 14:11:27 2010 from zhangyu2-410.kingsoft.cn
在从服务器中执行如下命令:ssh [服务器slaves] ssh 192.168.10.121
成功显示结果 Last login: Thu Aug 26 18:23:58 2010 fromzhangyu2-410.kingsoft.cn
三、安装hadoop 1、JDK安装,解压到/usr/local/jdk1.6.0_17,并配置/etc/profile环境
export JAVA_HOME=/usr/local/jdk/jdk1.7.0
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar JDK路径:/usr/local/jdk/jdk1.7.0 export JAVA_HOME=/usr/local/jdk/jdk1.7.0
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar /usr/local/jdk/jdk1.7.0
2、下载Hadoop 并解压到[服务器master]的/root/zwmhadoop目录下
tar zxvf hadoop-0.20.2.tar.gz
hadoop配置 (大讲台国内首个it在线教育混合式自适应学习平台)
1.配置主机[服务器master] 到zwmhadoop/hadoop-0.20.2/ hadoop 目录下,修改以下文件: 1)配置conf/hadoop-env.sh文件,在文件中添加环境变量,增加以下内容: export JAVA_HOME=/usr/local/jdk1.6.0_17 export HADOOP_HOME=/root/zwmhadoop/hadoop-0.20.2/
2)配置conf/core-site.xml文件,增加以下内容 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl"href="configuration.xsl"?> <!-- Put site-specific property overrides in thisfile. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://192.168.10.121:9000</value>//你的namenode的配置,机器名加端口 <description>The name of the default file system. Either theliteral string "local" or a host:port for DFS.</description> </property> </configuration>
3)配置conf/hdfs-site.xml文件,增加以下内容 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl"href="configuration.xsl"?> <!-- Put site-specific property overrides in thisfile. --> <configuration> <property> <name>hadoop.tmp.dir</name> <value>/root/zwmhadoop/tmp</value> //Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了(手动加上该目录)。 <description>A base for other temporarydirectories.</description> </property> <property> <name>dfs.name.dir</name> <value>/root/zwmhadoop/filesystem/name</value> //NameNode持久存储名字空间及事务日志的本地文件系统路径(手动加上该目录)。 <description>Determines where on the local filesystem the DFS namenode should store the name table. If this is a comma-delimited list ofdirectories then the name table is replicated in all of the directories, forredundancy. </description> </property> <property> <name>dfs.data.dir</name> <value>/root/zwmhadoop/filesystem/data</value> //DataNode存放块数据的本地文件系统路径,逗号分割的列表(手动加上该目录)。 <description> Determines where on thelocal filesystem an DFS data node should store its blocks. If this is acomma-delimited list of directories, then data will be stored in all nameddirectories, typically on different devices. Directories that do not exist areignored. </description> </property> <property> <name>dfs.replication</name> <value>1</value>//数据需要备份的数量,默认是三 <description>Default block replication. The actual number ofreplications can be specified when the file is created. The default isused ifreplication is not specified in create time.</description> </property> </configuration>
4)配置conf/mapred-site.xml文件,增加如下内容: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl"href="configuration.xsl"?> <!-- Put site-specific property overrides in thisfile. --> <configuration> <property> <name>mapred.job.tracker</name>//JobTracker的主机(或者IP)和端口。 <value>192.168.10.121:9001</value> <description> Thehost and port that the MapReduce job tracker runs at. If "local",then jobs are run in-process as a single map and reducetask. </description> </property> </configuration>
5)配置conf/masters,添加[服务器master]的主机名或者IP,具体如下: 192.168.10.121
6)配置conf/slaves,添加[服务器slaves]的主机名或者IP,具体如下: 191.168.10.68
2、配置从机[服务器slaves] 将主机[服务器master]的文件夹zwmhadoop,复制到从机[服务器slaves],最好路径一致。从机中配置基本与主机一致。因为在本例中[服务器master]与[服务器slaves]的JAVA_HOME值不一致,所以在从机中需要修改conf/hadoop-env.sh文件,修改内容如下: export JAVA_HOME=/usr/local/jdk1.6.0_18 export HADOOP_HOME=/root/zwmhadoop/hadoop-0.20.2/
3、常用命令 连接到主机[服务器master],进入bin目录
cd zwmhadoop/hadoop-0.20.2/bin
1)namenode -format:格式化Hdfs文件系统
./hadoop namenode -format
输入Y,(注意区分大小写.这里一定要输入大写的Y,否刚不会成功format文件系统) 不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件。
2)start-all.sh: 启动所有的Hadoop 包括启动namenode,datanode, jobtracker, tasktrack。 ./start-all.sh
如果成功显示如下结果: starting namenode, logging to/root/zwmhadoop/hadoop-0.20.2/bin/../logs/hadoop-root-namenode-192.168.10.121.out 192.168.10.68: starting datanode, logging to/root/zwmhadoop/hadoop-0.20.2//logs/hadoop-root-datanode-192.168.10.68.out 192.168.10.121: starting secondarynamenode, loggingto /root/zwmhadoop/hadoop-0.20.2/bin/../logs/hadoop-root-secondarynamenode-192.168.10.121.out starting jobtracker, logging to/root/zwmhadoop/hadoop-0.20.2/bin/../logs/hadoop-root-jobtracker-192.168.10.121.out 192.168.10.68: starting tasktracker, logging to/root/zwmhadoop/hadoop-0.20.2//logs/hadoop-root-tasktracker-192.168.10.68.out
3)hadoop dfsadmin -report :查看报告 ./hadoop dfsadmin -report
如果成功显示如下结果: Configured Capacity: 11839819776 (11.03 GB) Present Capacity: 7551774735 (7.03 GB) DFS Remaining: 7551750144 (7.03 GB) DFS Used: 24591 (24.01 KB) DFS Used%: 0% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 ------------------------------------------------- Datanodes available: 1 (1 total, 0 dead) Name: 192.168.10.68:50010 Decommission Status : Normal Configured Capacity: 11839819776 (11.03 GB) DFS Used: 24591 (24.01 KB) Non DFS Used: 4288045041 (3.99 GB) DFS Remaining: 7551750144(7.03 GB) DFS Used%: 0% DFS Remaining%: 63.78% Last contact: Fri Aug 27 11:56:23 CST 2010
4)stop-all.sh: 停止所有的hadoop ./stop-all
如果成功显示如下结果: stopping jobtracker 192.168.10.68: stopping tasktracker stopping namenode 192.168.10.68: no datanode to stop 192.168.10.121: stopping secondarynamenode
停止后,可以使用jps命令,查看是否停止了所有的相关进程。 五、在主机上运行一个jar包 1、在文件系统中创建一个input目录 ./hadoop dfs -mkdir input
2、把主机上本地的/root/abc.txt文件copy到hadoop文件系统中 ./hadoop dfs -copyFromLocal /root/abc.txt input
3、查看hadoop文件系统中的文件 ./hadoop dfs -ls input
4、运行hadoop-0.20.2-examples.jar包中的程序 包名 函数名 文件名 输出到output文件夹下 ./hadoop jar hadoop-0.20.2-examples.jar wordcount -filesabc.txt inputoutput 指定文件 Input文件夹
5、查看运行结果 ./hadoop dfs -cat /user/root/output/part-r-00000
正确运行显示: ewfef|ewef 1 ffdf|ewff 1
六、安装及测试hive 1、安装hive 下载hive并解压到[服务器master]的/root/zwmhadoop目录下
tar zxvf hive-0.5.0-dev.tar.gz
2、测试hive 进入到/zwmhadoop/hive-0.5.0-dev/bin/下, cd zwmhadoop/hive-0.5.0-dev/bin/
使用hive命令,进入hive,使用showtables命令查看表,用quit命令退出hive。操作过程如下所示: -bash-3.2# ./hive Hive historyfile=/tmp/root/hive_job_log_root_201008271457_901347589.txt hive> showtables; OK Time taken: 9.926 seconds hive> quit; -bash-3.2#
将Hive的环境变量,配置到全局和hadoop的配置文件中 在使用Hive时,hadoop的core-site.xml一定要使用hostname,不要用ip,否则会包错。
|