暑假期间和小伙伴,师兄们一起学习了一下hadoop的部署和安装,了解了大概的流程
1.Hadoop安装部署步骤:
Hadoop为分布式文件系统和计算的基础框架系统,其中包含hadoop程序,hdfs系统等。在Ubuntu系统上安装hadoop需要配置JDK环境和ssh免密钥登录,在hadoop的基础之上再搭建Hbase和Hive。
所以安装次序如下:
Ubuntu系统--->Jdk文件--->OpenSSH--->Hadoop--->Hbase--->Hive
2.相关文件及注意事项介绍:
2.1名词解释
1.Hadoop, Apache开源的分布式框架。
2.HDFS, hadoop的分布式文件系统
3.NameNode, hadoop HDFS元数据主节点服务器,负责保存DataNode 文件存储元数据信息。
4.JobTracker, hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。
5.DataNode, hadoop数据节点,负责存储数据。
6.TaskTracker, hadoop调度程序,负责Map,Reduce 任务的具体启动和执行。
2.2所需文件介绍
Ubuntu文件(使用版本:ubuntu-12.04-desktop-i386.iso)
hadoop文件(使用版本:hadoop-0.20.205.0.tar.gz)
Jdk文件(使用版本:jdk-6u10-linux-i586.bin)
OpenSSH文件(使用版本:OpenSSH_5.9p1Debian-
5ubuntu1.1, OpenSSL 1.0.1 14 Mar2012)
Hbase文件(使用版本:hbase-0.92.0.tar.gz)
Hive文件(使用版本:hive-0.9.0.tar.gz)
3.Unbunt 安装简介
3.1安装Ubuntu系统
本次Ubuntu使用版本为ubuntu-12.04-desktop-i386.iso,使用Universal-USB-Installer工具烧录好U盘后,设置biso启动项为从U盘启动后,进入界面后,先择第二项进行安装。
注意:安装Ubuntu时要注意分区,还有账户名称和主机名称(安装hadoop集群时,要有统一的账户名,主机名,如:主机名:hadoop1,账户:hadoop,之后的主机可设置为,主机名:hadoop2,账户:hadoop)
因为使用hadoop账户所以会在 /home目录下生成hadoop文件,以后将文件统一放在/home/hadoop目录下,
3.2Ubuntu所需命令:
1. Ctrl+t 打开命令窗口
2. tar -zxf 文件路径(解压 .tar.gz文件)如(tar-zxf /home/hadoop/xxxx.tar.gz)
3. sudo sh 文件路径(运行.bin文件)如(sudosh /home/hadoop/jdk-6u10-linux-i586.bin)
4. sudo gedit 文件路径(以root权限编辑文件)
5. cd 文件目录(打开文件夹 如:cd ../表示返回上级目录)
6. ls (表示列出当前目录下的所有文件)
7. Tab (补全文件名)
8. source 文件路径(简单来说就是将设置在文件中的配置信息马上生效)
9. Ctrl+H显示隐藏文件
10. cp文件1路径 文件目录2(拷贝文件将文件1拷贝到文件目录2下)
如(cp /home/hadoop/test.txt /home/)
11. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 拷贝文件到另一文件(~表示当前账户的文件目录)
12。 chmod权限文件名(设置对文件的权限)
4.JDK 安装和配置
4.1安装JDK
安装版本:jdk-6u10-linux-i586.bin,由于ubuntu不支持rpm格式,所以要用bin格式。统一将文件拷贝到/home/hadoop目录下,打开命令窗口,
输入:sudo sh /home/hadoop/jdk-6u10-linux-i586.bin
注意:运行时要注意只有阅读完说明(按回车键)最后要输入yes才行。
4.2配置jdk环境:
4.2.1设置/etc/enviroment文件
在命令窗口中输入:sudo gedit /etc/enviroment
在文件中追加如下内容:
exportJAVA_HOME=/home/hadoop/jdk1.6.0_10
exportJRE_Home=/home/hadoop/jdk1.6.0_10/jre
exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
保存后在命令窗口中输入:source /etc/enviroment
注意:配置文件中要注意空格,在末尾不要留空格,配置完后要使用source命令使之立即生效
4.2.2设置 /etc/profile
在命令窗口中输入:sudo gedit /etc/profile
在文件中追加如下内容:
exportJAVA_HOME=/home/hadoop/jdk1.6.0_10
exportJRE_HOME=/home/hadoop/jdk1.6.0_10/jre
exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
umask022
保存后在命令窗口中输入:source /etc/profile
注意:配置文件中要注意空格,在末尾不要留空格,配置完后要使用source命令使之立即生效,安装完使用在 命令窗口输入:java -version 可以查看jdk版本,否者提示错误,表示未安装成功
5.Openssh 安装和配置
设置SSH免密钥登陆(需要联网)
5.1安装ssh服务
当前ubuntu系统使用apt-get命令进行openssh安装,可能没有所需的软件包,所以需要先更新软件包,
在命令窗口中输入:sudo apt-get update进行更新,升级完后输入:sudo apt-get install ssh进行ssh安装。
5.2配置ssh免密钥连接
安装后输入ssh-keygen -t dsa
第一项提示你的生成文件路径;回车就行了
第二项提示你的密钥密码;回车就行,表示为空
第三项提示核对你的密钥密码:回车
回车直到密钥生成
输入命令:cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys(拷贝文件内容到另一文件中)
将id_dsa.pub写入authorized_keys(这里的~表示/home/hadoop目录)
最后使用在命令窗口中输入:ssh localhost(进行自连查看是否成功。)
注意:第一次连接会出现提示,是因为没做标记。如果是hadoop集群安装,需要将namenode中的authorized_keys
拷贝到其他datanode中去,并设置权限为640,使用chmod命令
6.Hadoop 安装及配置
6.1安装hadoop
使用版本:hadoop-0.20.205.0.tar.gz,将文件拷贝到/home/hadoop目录下并解压
在/home/hadoop目录下会有一个hadoop-0.20.205.0文件夹
6.2配置hadoop环境
统一在/home/hadoop/hadoop-0.20.205.0/conf/目录下设置文件
打开文件统一在命令窗口使用(sudo gedit文件名)命令来编辑文件,这是root权限的编辑
6.2.1设置hadoop-env.sh
打开文件,进行编辑,在文件后面追加内容如下:
exportJAVA_HOME=/home/hadoop/jdk1.6.0_10
6.2.2配置core-site.xml
打开文件,进行编辑,在文件后面追加内容如下:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-0.20.205.0/tmp</value> //指定目录下的tmp文件夹为临时文件夹
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value> //配置的是HDFS的地址和端口号
</property>
6.2.3配置hdfs-site.xml
打开文件,进行编辑,在文件后面追加内容如下:
<property>
<name>dfs.replication</name>
<value>1</value> //replication是数据副本数量,默认为3,salve少于3台就会报错
</property>
6.2.4配置mapred-site.xml
打开文件,进行编辑,在文件后面追加内容如下:
<property>
<name>mapred.job.tracker</name>
<value>hadoop1:9001</value> //修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口
</property>
6.2.5配置master和slaves文件
在master中存放Namenode的主机名:hadoop1
在slaves中存放Datanode的主机名:hadoop2(假设有一个主机的主机名为hadoop2)
6.2.6配置/etc/hosts文件
127.0.0.1 localhost
192.168.149.7 hadoop1(IP:主机名)
192.168.149.2 hadoop2(IP:主机名)
6.2.7配置/etc/profile
exportHADOOP_HOME=/home/hadoop/hadoop-0.20.205.0
exportPATH=$HADOOP_HOME/bin:$PATH
将hadoop-0.20.205.0拷贝到其它主机对应的目录下。将/ect/profile和/etc/hosts也拷贝到其它机器上。profile需要使用source命令进行做生效操作。
6.3启动和停止hadoop服务
6.3.1启动hadoop服务
启动前需要格式化HDFS
(访问文件要使用cd命令如:cd ~/hadoop-0.20.205.0/)
先进入hadoop-0.20.205.0目录,再输入命令:
bin/hadoopnamenode -format // 格式化时会出现提示,输入yes
然后启动hadoop,输入命令:
bin/start-all.sh
启动后可以查看HDFS :
http://192.168.149.9:50070 (当前ip:192.168.149.9)
查看JOB状态 :
http://192.168.149.9:50030/jobtracker.jsp
6.3.2停止hadoop
先进入hadoop-0.20.205.0目录,输入命令:
bin/stop-all.sh
7.Hbase 安装及配置
7.1安装Hbase
安装版本:hbase-0.92.0.tar.gz
解压文件到/home/hadoop目录下
7.2 配置hbase环境
7.2.1配置hbase-env.sh文件
修改/home/hadoop/hbase-0.92.0/conf/中的文件目录下的hbase-env.sh配置文件,打开文件并编辑,增加内容如下:
exportJAVA_HOME=/home/hadoop/jdk1.6.0_10/
exportHBASE_CLASSPATH=/home/hadoop/hbase-0.92.0/conf
exportHBASE_MANAGES_ZK=true
7.2.2配置hbase-site.xml文件
打开并编辑文件,增加内容如下:
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
7.2.3配置regionservers文件
打开并编辑文件,增加如下内容:
Hadoop1(这是当前主机名)
7.3启动和停止hbase服务
7.3.1启动hbase服务
进入hbase文件目录下,输入如下命令:
bin/hbase start-hbase.sh
查看Master:http://localhost:60010/master.jsp 查看Region Server:http://localhost:60030/regionserver.jsp
7.3.2停止hbase服务:
bin/hbasestop-hbase.sh
8.Hive 安装及配置
8.1安装hive
安装版本:hive-0.9.0.tar.gz
将hive-0.9.0.tar.gz文件解压到/home/hadoop目录下
8.2配置Hive环境
在hive安装目录下的conf文件夹下设置配置文件
8.2.1配置hive-site.xml文件
可能没有hive-site.xml文件,如果没有则复制同一目录下的hive-default.xml.template文件改名为hive-site.xml追加内容如下:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBCconnect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driverclass name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>APP</value>
<description>usernameto use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mine</value>
<description>passwordto use against metastore database</description>
</property>
8.2.2配置hive-env.sh文件
依据hive-env.sh.template,创建hive-env.sh文件
追加如下内容:
exportHIVE_CONF_DIR=/home/hadoop/hive-0.9.0/conf
HADOOP_HOME=/home/hadoop/hadoop-0.20.205.0
8.3启动Hive服务
要先启动hadoop服务
再进入hive安装目录输入如下命令启动:
bin/hive
显示内容如下:
WARNING:org.apache.hadoop.metrics.jvm.EventCounteris deprecated. Please use org.apache.hadoop.log.metrics.
EventCounter in all the log4j.propertiesfiles.Logging initialized using configuration in jar:file:/home/test/Desktop/hive-0.8.1/lib/hive-common-0.8.1.jar!/hive-log4j.properties
Hive historyfile=/tmp/test/hive_job_log_test_201208260529_167273830.txt
建立测试表:
createtable test (key string);
•showtables;