Hadoop+Zookeeper+Hbase+JanusGraph伪分布式(单机版)环境搭建
1.准备工作
-
安装jdk
安装jdk1.8.x并配置环境变量(该步骤省略) 使用 java -version
进行验证
-
下载相关环境包
可在官网进行下载,附下载地址:下载
注意:hadoop+hbase+janusgraph+elasticsearch需要参考版本对照,zookeeper下载最新版本即可,这里es我使用其他的集群服务器
这里我使用的是hadoop-2.7.7+hbase-2.1.5+zookeeper-3.6.2+hbase-3.6.2+janusgraph-0.4.0+elasticsearch-6.7.1
将安装包解压到 /opt/ 下并改名,方便后期升级环境频繁修改环境变量
-
配置环境变量:
# HADOOP export HADOOP_HOME=/opt/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/natie export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/" # 不指定会找不到native库 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin # HBASE export HBASE_HOME=/opt/hbase export PATH=$PATH:$HADOOP_HOME/bin # ZOOKEEPER export ZOOKEEPER_INSTALL=/opt/zookeeper export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
export HADOOP_HOME=/opt/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/natie export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/" # 不指定会找不到native库 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin # HBASE export HBASE_HOME=/opt/hbase export PATH=$PATH:$HADOOP_HOME/bin # ZOOKEEPER export ZOOKEEPER_INSTALL=/opt/zookeeper export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
-
验证:
hadoop version #hadoop hbase version # hbase echo stat|nc localhost 2181 # zookeeper需启动验证
#hadoop hbase version # hbase echo stat|nc localhost 2181 # zookeeper需启动验证
2.hadoop部署
-
创建临时目录,这里系统不会自动创建
mkdir /opt/hadoop/tmp mkdir /opt/hadoop/dfs/name mkdir /opt/hadoop/dfs/data mkdir /opt/hadoop/var
/opt/hadoop/tmp mkdir /opt/hadoop/dfs/name mkdir /opt/hadoop/dfs/data mkdir /opt/hadoop/var
-
修改conf/hadoop-env.sh文件
# 将${JAVA_HOME}改为具体路径 export JAVA_HOME=/usr/java/jdk1.8.0_74 # 指定native库,/etc/profile不一定生效 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/natie export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
export JAVA_HOME=/usr/java/jdk1.8.0_74 # 指定native库,/etc/profile不一定生效 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/natie export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/" -
修改etc/hadoop/core-site.xml文件
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> -
修改etc/hadoop/hdfs-site.xml配置文件
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/dfs/data</value> </property> </configuration>
configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/dfs/data</value> </property> </configuration> -
修改etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> <property> <name>mapred.local.dir</name> <value>/opt/hadoop/var</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> <property> <name>mapred.local.dir</name> <value>/opt/hadoop/var</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> -
启动hadoop
# 首次启动,需进行初始化 cd /opt/hadoop/bin ./hadoop namenode -format # 进入sbin目录启动,启动顺序namenode->datanode->secondarynamenode cd /opt/hadoop/sbin ./start-dfs.sh # 启动YARN ./start-yarn.sh
cd /opt/hadoop/bin ./hadoop namenode -format # 进入sbin目录启动,启动顺序namenode->datanode->secondarynamenode cd /opt/hadoop/sbin ./start-dfs.sh # 启动YARN ./start-yarn.sh -
查看启动状态
-
查看能否正常访问http://ip:8080/cluster
3.zookeeper部署
-
创建数据目录和日志目录,以及myid文件
mkdir /opt/zookeeper/data mkdir /opt/zookeeper/logs # 创建myid文件,并写入数字1 echo 1 >> myid
-
同级目录下复制conf/zoo_sample.cfg文件,并改名为zoo.cfg
dataDir=/opt/zookeeper/data dataLogDir=/opt/zookeeper/logs # 数字1与myid文件对应,2888是该server和集群中的leader通信端口,3888是选举leader的端口 server.1=zookeeper:2888:38888 #限制zookeeper的客户端链接数量,设置为0或者不设置表示取消对并发连接的设置 maxClientCnxns=0 #最小会话超时时间和最大会话超时时间 minSessionTimeout=4000 maxSessionTimeout=10000
-
启动zookeeper
cd /opt/zookeeper/bin ./zkServer.sh start
jps命令查看是否启动QuorumPeerMain服务
进入zookeeper的安装目录执行bin/zkCli.sh
执行ls / 查看当前根目录下的节点 发现有一个zookeeper的节点
4.hbase部署
-
修改conf/hbase-env.sh
export HBASE_PID_DIR=/opt/hbase/data/pids # 是否启用hbase自带的zookeeper,这里我们进行了单独安装,选择false export HBASE_MANAGES_ZK=false export HBASE_LOG_DIR=/opt/hbase/logs export JAVA_HOME=/usr/java/jdk1.8.0_74
-
修改conf/hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <!-- 是否为单机版 false为单机版 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost:2181</value> </property> <!-- 这里的路径需要与janusgraph-hbase-es.properties文件中对应 --> <property> <name>zookeeper.znode.parent</name> <value>/hbase</value> </property> <!-- zookeeper超时时间 --> <property> <name>zookeeper.session.timeout</name> <value>120000</value> </property> </configuration>
-
启动hbase
cd /opt/hbase/ ./start-hbase.sh jps # 出现Hmaster和HRegionServer服务代表启动成功
访问http://ip:16010进UI页面