能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事。
现将前期手里面的一个项目做一个大致的总结,与大家一起分享、交流、进步。项目现在正在线上运行,项目名——基于Hadoop的数据分析综合管理平台。
项目流程整体比较清晰,爬取数据(txt文本)-->数据清洗-->文本模型训练-->文本分类-->热点话题发现-->报表"实时"展示,使用到的技术也是当今互联网公司常用的技术:Hadoop、Mahout、HBase、Spring Data Hadoop、JavaEE。
本文将Hadoop1、Zookeeper、HBase环境的搭建工作总结一下,关于项目中的其他情况,后续博文会再做分享。
本文按照如下思路进行:
集群环境
RedHat5.5 OS
具体步骤
准备工作
查看RedHat版本
arch/uname -a
修改主机名(重启生效)
vi /etc/sysconfig/network
修改hosts映射文件
vi /etc/hosts
222.22.91.70 master
222.22.91.68 slave1
222.22.91.69 slave2
修改Windows下hosts文件
C:\Windows\System32\drivers\etc\hosts
222.22.91.70 master
222.22.91.68 slave1
222.22.91.69 slave2
远程拷贝
scp /etc/hosts 222.22.91.70:/etc/
scp /etc/hosts 222.22.91.70:/etc
rpm-qa | grep ssh 查看系统中是否已安装ssh
netstat-nat 查看端口
ssh-keygen–t rsa
cd/root/.ssh
cp id_rsa.pub authorized_keys
cp id_rsa.pub slave1_id_rsa.pub
cp id_rsa.pub slave2_id_rsa.pub
先聚集
cat slave1_id_rsa.pub >> authorized_keys
cat lave2_id_rsa.pub >> authorized_keys
再分发
scp authorized_keys slave1:/root/.ssh
scp authorized_keys slave2:/root/.ssh
每个节点都持有其他节点的公钥,免密钥登录。
配置JDK
查询是否已安装过java
rpm -qa | grep java
rpm -qa | grep jdk
卸载旧版本jdk
yum remove java
rpm -e --nodeps (gcc-java-4.1.2-48.el5)
安装新的jdk
cd/usr
mkdirjava
在/usr/java中执行
./jdk-6u24-linux-i586.bin
配置java环境变量(见文章最后的附录)
cd/home/yujianxin/
mkdir hadoop
tar–zxvf hadoop-1.1.2.tar.gz
配置Hadoop环境变量(见文章最后的附录)
依次修改conf/下的
hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_24/
# set hbase environment
export HBASE_HOME=/home/yujianxin/hbase/hbase-0.94.7-security
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin:$HBASE_HOME/hbase-0.94.7-security.jar:$HBASE_HOME/hbase-0.94.7-security-tests.jar:$HBASE_HOME/conf:$HBASE_HOME/lib/zookeeper-3.4.5.jar:$HBASE_HOME/lib/protobuf-java-2.4.0a.jar(配置此句,避免以后运行HBase MapReduce出错)
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yujianxin/hadoop/hadoop-1.1.2/HadoopTempDir
</value>
</property>
</configuration>
人为创建hadoop.tmp.dir
hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/work/hadoop/name/name1,/work/hadoop/name/name2</value>
<description>动态挂载移动硬盘,挂载到/work路径下</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/work/hadoop/data/data1,/work/hadoop/data/data2</value>
<description>动态挂载移动硬盘,挂载到/work路径下</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
注:
dfs.name.dir、dfs.data.dir目录不能人为创建,由Hadoop自动创建。
其中,
(1)dfs.name.dir是执行hadoop namenode -format时创建。
(2)dfs.data.dir是执行start-all.sh时创建。
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/work/hadoop/mapred/mapred1,/work/hadoop/mapred/mapred2</value>
</property>
</configuration>
masters文件
master
slaves文件
slave1
slave2
格式化一个新的分布式文件系统
hadoop namenode -format
启动
start-all.sh
验证
方式一、查看启动的Java守护进程
方式二、通过web端
cd/home/yujianxin/
mkdirzookeeper
tar–zxvf zookeeper-3.4.5.tar.gz
添加zookeeper环境变量(见附录)
修改conf/zoo_sample.cfg为zoo.cfg,配置
dataDir=/home/yujianxin/zookeeper/zookeeper-3.4.5/data
logDir=/home/yujianxin/zookeeper/zookeeper-3.4.5/log
server.0=master:2887:3887
server.1=slave1:2887:3887
server.2=slave2:2887:3887
在zookeeper-3.4.5文件夹创建data和log目录
在data文件夹下创建文件myid,里面填写zookeeper服务器的id号,如上面的server.0的0就是一个id号。
启动、测试
每台机器都执行
zkServer.sh start
zkServer.sh status
执行Zookeeper的Shell客户端命令zkCli.sh
解压缩
cd/home/yujianxin/
mkdirhbase
tar–zxvf hbase-0.94.7-security.tar.gz
添加hbase环境变量(见博文附录)
修改conf/下的配置文件
hbase-env.sh
exportJAVA_HOME=/usr/java/jdk1.6.0_24/
exportHBASE_MANAGES_ZK=false #不使用HBase自带的Zookeeper
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase_yjx</value>
<description>HDFS提供底层存储<description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
<description>关联Zookeeper集群<description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>hbase.coprocessor.user.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>
</configuration>
regionnserve
slave1
slave2
启动、验证
start-hbase.sh
验证一,查看HMaster、HRegionServer守护进程
附录:
/etc/profile(保留一份,以后当模板用就行了,哈哈)
# /etc/profile
# set javaenvironment
exportJAVA_HOME=/usr/java/jdk1.6.0_24
exportJRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
# set hadoopenvironment
exportHADOOP_HOME=/home/yujianxin/hadoop/hadoop-1.1.2
exportPATH=$PATH:$HADOOP_HOME/bin
exportHADOOP_HOME_WARN_SUPPRESS=not_null
# set zookeeperenvironment
exportZOOKEEPER_HOME=/home/yujianxin/zookeeper/zookeeper-3.4.5
exportPATH=$PATH:$ZOOKEEPER_HOME/bin
# set hbaseenvironment
exportHBASE_HOME=/home/yujianxin/hbase/hbase-0.94.7-security
exportPATH=$PATH:$HBASE_HOME/bin
OK,基于Hadoop1、HBase的大数据处理分析开发环境搭建完毕,欢迎大家留言交流哟
Mahout学习中,Storm学习中...
基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建,布布扣,bubuko.com
基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建
原文:http://blog.csdn.net/aaronhadoop/article/details/24867257