参考博文链接:
https://blog.csdn.net/u010960155/article/details/81069112
https://blog.csdn.net/wyc199273/article/details/51559442
"启动hadoop,报错Error JAVA_HOME is not set and could not be found"
只需将各个配置文件中的export JAVA_HOME=${JAVA_HOME}中路径修改为显示路径即可
Titan 是一个分布式的图数据库,支持横向扩展,可容纳数千亿个节点和边。Titan 支持事务,并且可以支撑上千用户并发进行复杂图遍历操作。
Titan包含下面这些特性:
弹性与线性扩展
分布式架构,可容错
支持多数据中心的高可用和热备
支持ACID和最终一致性
支持多种存储后端
Apache Cassandra
Apache HBase
Oracle BerkeleyDB
Akiban Persistit
支持位置、数字和全文检索
ElasticSearch
Apache Lucene
原生支持TinkerPop软件栈
Gremlin graph query language
Frames object-to-graph mapper
Rexster graph server
Blueprints standard graph API
开源协议 Apache 2 license
Titan使用Hbase存储数据,elasticSearch做索引。但是Titan本身只支持某些版本
主要在于 Hbase与Hadoop版本兼容:https://blog.csdn.net/hsg77/article/details/81033963
考虑到兼容性问题,选用如下版本:
Java1.8
[Hadoop:2.6.5 ](https://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.6.5/)
[Hbase:1.2.8](https://mirrors.cnnic.cn/apache/hbase/hbase-1.2.8/)
[elasticSearch:1.5.2](https://www.elastic.co/downloads/past-releases/elasticsearch-1-5-2)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#验证是否成功
ssh localhost
(1)、解压安装
# 我个人安装的软件都统一放在/opt文件夹
tar -xzvf hadoop-2.6.5.tar.gz -C /opt
(2)、增加相关文件夹
cd /opt/hadoop-2.6.5
mkdir tmp hdfs hdfs/data hdfs/name
(3)、设置环境变量
vim ~/.bashrc # 在文件末添加
#set hadoop path
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin
#保存退出并使设置生效
source ~/.bashrc
(4)、修改配置文件 在/opt/hadoop-2.5.6/etc/hadoop文件夹中
1)将./etc/hadoop/hadoop-env.sh,./etc/hadoop/yarn-env.sh中的JAVA_HOME修改为显示路径
2)修改core-site.xml配置如下
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>namenode上本地的hadoop临时文件夹</description>
</property>
</configuration>
3)修改hdfs-site.xml配置
<configuration>
<!—hdfs-site.xml-->
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop-2.6.5/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop-2.6.5/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>
</configuration>
4)修改mapred-site.xml配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)修改yarn-site.xml配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8099</value>
</property>
</configuration>
(5)、Hadoop启动
cd /opt/hadoop-2.6.5
#格式化namenode
./bin/hadoop namenode -format
#启动NameNode 和 DataNode 守护进程
./sbin/start-dfs.sh
#启动ResourceManager 和 NodeManager 守护进程
./sbin/start-yarn.sh
(6)、启动验证
1)执行jps命令,如有如下进程,说明Hadoop正常启动
# jps
54679 NameNode
54774 DataNode
15741 Jps
9664 Master
55214 NodeManager
55118 ResourceManager
54965 SecondaryNameNode
2)在浏览器中输入http://localhost:8099、http://localhost:50070查看管理页面
(1)、解压并配置安装路径
sudo tar -zxvf hbase-1.2.8-bin.tar.gz -C /opt
cd /opt/habase-1.2.8
sudo vim ~/.bashrc
export HBASE_HOME=/opt/hbase-1.2.8
export PATH=$PATH:$HBASE_HOME
source ~/.bashrc
(2)、验证是否安装成功
执行命令 hbase version 得:
HBase 1.2.8
Source code repository git://amanita/home/busbey/projects/hbase/hbase revision=56d38a088319413dc3a70e90b1b8e655c6a22340
Compiled by busbey on Fri Oct 12 13:02:02 CDT 2018
From source with checksum a44d1d22c15c436b6a9ceade7803cd63
(3)、配置单机模式
1)配置/opt/hbase-1.2.8/conf/hbase-env.sh
vim conf/hbase-env.sh
export JAVA_HOME=/opt/jdk-1.8.0 #修改为显示路径
export HBASE_MANAGES_ZK=true #配置由hbase自己管理zookeeper,不需要单独的zookeeper
2)、配置conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/opt/hbase-1.2.8/hbase-tmp</value>
</property>
</configuration>
3)、启动Hbase
./bin/start-hbase.sh
(1)、解压并剪切到/opt
unzip elasticsearch-1.5.2.zip
sudo mv elasticsearch-1.5.2 /opt
(2)、启动elasticsearch,默认在终端运行,终端关闭服务也会关闭,可使用nouhp在后台运行
./bin/elasticsearch
附注:如果报错找不到JAVA_HOME,则修改./bin/elasticsearch.sh 顶部添加
export JAVA_HOME=/opt/jdk1.8.0
(1)、jar包修正
Titan-1.0.0有两个版本,一个是和Hadoop1组合,一个是Hadoop2组合
当使用和Hadoop2组合时,其本身的lib中jar存在问题
删除lib文件夹中的jar包:hadoop-core-1.2.1.jar
添加所需要的jar包:
http://search.maven.org/remotecontent?filepath=com/thinkaurelius/titan/titan-hadoop/1.0.0/titan-hadoop-1.0.0.jar
http://search.maven.org/remotecontent?filepath=com/thinkaurelius/titan/titan-hadoop-core/1.0.0/titan-hadoop-core-1.0.0.jar
(2)使用gremlin客户端测试服务是否启动成功
附注:如果报错找不到JAVA_HOME,则修改./bin/titan.sh 顶部添加
export JAVA_HOME=/opt/jdk1.8.0
cd /opt/titan-1.0.0-hadoop2/
./bin/gremlin.sh
#将titan中自带例子众神图谱加载进来,并执行简单的图查询操作帮助熟悉gremlin console
#titan getting started [http://s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html]
gremlin> graph = TitanFactory.open('conf/titan-hbase-es.properties') #创建一个graph实例,使用hbase存储,es索引。执行完后可以看到habse中多了一个titan表
==>standardtitangraph[cassandrathrift:[127.0.0.1]]
gremlin> GraphOfTheGodsFactory.load(graph) #将titan中的众神图谱导入数据库。导完以后,hbase titan表里会增加很多行数据。
==>null
gremlin> g = graph.traversal() #遍历图
==>graphtraversalsource[standardtitangraph[cassandrathrift:[127.0.0.1]], standard]
#图查询案例
gremlin> saturn = g.V().has('name', 'saturn').next()
==>v[256]
gremlin> g.V(saturn).valueMap()
==>[name:[saturn], age:[10000]]
gremlin> g.V(saturn).in('father').in('father').values('name')
==>hercules
gremlin> g.E().has('place', geoWithin(Geoshape.circle(37.97, 23.72, 50)))
==>e[a9x-co8-9hx-39s][16424-battled->4240]
==>e[9vp-co8-9hx-9ns][16424-battled->12520]
gremlin> g.E().has('place', geoWithin(Geoshape.circle(37.97, 23.72, 50))).as('source').inV().as('god2').select('source').outV().as('god1').select('god1', 'god2').by('name')
==>[god1:hercules, god2:hydra]
==>[god1:hercules, god2:nemean]