我是靠谱客的博主 爱撒娇手链,最近开发中收集的这篇文章主要介绍Ubuntu16.04 x64版本下搭建单节点hadoop+hive+thrift环境,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Ubuntu16.04 x64版本下搭建hadoop+hive+thrift环境
一、 准备工作
安装vim
apt-get install vim
安装openssh-server
apt-get install openssh-server
修改ubuntu默认ssh配置
vim /etc/ssh/ssh_config
在末尾添加
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
vim /etc/ssh/sshd_config
查找Authentication,在下面注释掉PermitRootLogin prohibit-password
增加一行
PermitRootLogin yes
重启服务 service ssh restart
service sshd restart
修改root用户密码
sudo su
passwd
输入新密码
测试ssh登录是否正常
ssh localhost
输入刚才的root密码,看是否能够正常登录。
准备工作完毕

二、 安装java、hadoop、hive
不要使用apt源中的openjdk 去官网获取
下载好hadoop hive

将上述三个包解压,mv 到/usr/local下
tar -zxvf jdk-8u141-linux-x64.tar.gz
mv jdk1.8.0_141/ /usr/local/
tar -zxvf hadoop-2.8.1.tar.gz
mv hadoop-2.8.1 /usr/local/hadoop
tar -zxvf apache-hive-2.1.1-bin.tar.gz
mv apache-hive-2.1.1-bin /usr/local/hive
配置环境变量,将下面代码贴到/etc/profile末尾
vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_141/
export JRE_HOME=/usr/local/jdk1.8.0_141/jre/
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop 
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/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
export DERBY_HOME=/usr/local/derby
export PATH=$PATH:$DERBY_HOME/bin
#Apache Hive 18
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar

:wq
source /etc/profile使配置生效
验证java
java -version

验证hadoop
hadoop version

三、 配置hadoop、hive
为了使用java开发Hadoop的项目,必须用java在系统的位置替换JAVA_HOME值重置hadoop-env.sh文件中的java环境变量。
export JAVA_HOME=${JAVA_HOME}修改为
export JAVA_HOME=/usr/local/jdk1.8.0_141/
需要修改hadoop-env.sh当中的服务内存数值,因为虚拟机系统能够提供的内存不够多,默认配置是一个服务1000M,这超过了虚拟机的承受能力。

# export HADOOP_HEAPSIZE=改为
export HADOOP_HEAPSIZE=128

下面给出的是编辑配置Hadoop的文件列表。
core-site.xml
core-site.xml文件中包含的信息,如使用Hadoop实例分配给文件系统的存储器,用于存储数据的内存限制的端口号,以及读/写缓冲器的大小。
打开core-site.xml文件并在,标签之间添加以下属性。

fs.default.name hdfs://localhost:9000 hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups * hdfs-site.xml hdfs-site.xml 文件中包含的信息,如复制数据的值,名称节点的路径,本地文件系统的数据节点的路径。 我们假定有以下数据。 dfs.replication (data replication value) = 1

(In the following path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)

namenode path = //home/hadoop/hadoopinfra/hdfs/namenode

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
打开这个文件,并在此文件中的标签之间添加以下属性。

dfs.replication 1 dfs.name.dir file:///home/hadoop/hadoopinfra/hdfs/namenode dfs.data.dir file:///home/hadoop/hadoopinfra/hdfs/datanode 注:在上面的文件,所有的属性值是用户定义的,可以根据自己的Hadoop基础架构进行更改。 yarn-site.xml 此文件用于配置yarn到Hadoop。打开yarn-site.xml文件,并在此文件中的标签之间添加以下属性。 yarn.nodemanager.aux-services mapreduce_shuffle mapred-site.xml 此文件用于指定我们正在使用的MapReduce框架。缺省情况下,包含 yarn-site.xml模板。缺省情况下,包含yarn-site.xml模板。首先,需要将文件从mapred-site.xml复制。模板mapred-site.xml文件使用以下命令。 $ cp mapred-site.xml.template mapred-site.xml 打开mapred-site.xml文件,并在在此文件中的标签之间添加以下属性。 mapreduce.framework.name yarn

使用命令“hdfs namenode -format”设置名称节点如下。
$ cd ~
$ hdfs namenode -format
预期的结果如下。
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1


10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/
步骤 II: 验证Hadoop dfs
下面的命令用来启动dfs。执行这个命令将开始启动Hadoop文件系统。
$ start-dfs.sh
期望的输出如下所示:
10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
步骤 III : 验证Yarn脚本
下面的命令用来启动yarn脚本。执行此命令将启动yarn守护进程。
$ start-yarn.sh
期望的输出如下所示:
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

启动上述两个脚本之后,可以用浏览器打开
localhost:8088
localhost:50070
看看是否能正常显示

配置HIVE
$ cd $HIVE_HOME/conf
$ cp hive-env.sh.template hive-env.sh
通过编辑hive-env.sh文件添加以下行:
export HADOOP_HOME=/usr/local/hadoop
将下载好的jdbc连接器放到/usr/local/hive/lib
cp mysql-connector-java-5.0.8-bin.jar /usr/local/hive/lib

另外,可能是由于使用的包版本导致启动hiveserver2时会卡住,解决办法:
cd /usr/local/hadoop/share/hadoop/hdfs/lib
cp log4j-1.2.17.jar /usr/local/hive/lib

启动hive服务器的操作:
source /etc/profile
start-dfs.sh
start-yarn.sh
如果是第一次启动,且底层数据库是mysql,需要输入这条指令schematool -dbType mysql -initSchema
hiveserver2
此命令不后台运行的话,会一直挂起占用一个终端
预期输出:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
17/07/26 03:20:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
17/07/26 03:21:06 INFO DataNucleus.Persistence: Property hive.metastore.integral.jdo.pushdown unknown - will be ignored
17/07/26 03:21:06 INFO DataNucleus.Persistence: Property datanucleus.cache.level2 unknown - will be ignored

可以打开localhost:10002 看一下是否能正常打开 hiveserver2的网页UI

四、使用客户端工具连接hiveserver2
1.windows下带客户端的工具,推荐sqldeveloper-17.2.0.188.1159-x64
下载地址http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
从http://www.cloudera.com/downloads/connectors/hive/jdbc/2-5-15.html下载Hive JDBC Driver for Oracle SQL Developer,并解压,进入解压后的目录,将Cloudera_HiveJDBC4_2.5.15.1040.zip解压。
打开sqldeveloper.exe,点击”工具”–>“首选项”,在”数据库”–>”第三方JDBC驱动”中,添加Hive JDBC驱动:

添加后重启sqldeveloper。
再次打开sqldeveloper后,点击”新建连接”之后,多了”Hive”数据库:
填好参数,用户密码

然后就可以开始使用了

2.使用hive自带的beeline 命令行工具在终端中连接server(linux下推荐)

前面设置好环境变量后,直接在终端当中输入 beeline启动客户端
下面是一个使用的例子

beeline
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Beeline version 2.1.1 by Apache Hive

进入beeline命令行,连接服务器

beeline> !connect jdbc:hive2://192.168.6.56:10000/default
Connecting to jdbc:hive2://192.168.6.56:10000/default
Enter username for jdbc:hive2://192.168.6.56:10000/default: root
Enter password for jdbc:hive2://192.168.6.56:10000/default: ****
Connected to: Apache Hive (version 2.1.1)
Driver: Hive JDBC (version 2.1.1)
17/07/26 19:47:50 [main]: WARN jdbc.HiveConnection: Request to set autoCommit to false; Hive does not support autoCommit=false.
Transaction isolation: TRANSACTION_REPEATABLE_READ

进行SQL等命令操作
0: jdbc:hive2://192.168.6.56:10000/default> show databases;
±---------------±-+
| database_name |
±---------------±-+
| default |
±---------------±-+
1 row selected (1.489 seconds)

安装thrift
1.下载源代码
http://thrift.apache.org/download/
下载最新版本thrift-0.10.0.tar.gz

2.安装boost库
sudo apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-*

3.安装其他相关工具包
sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev ant
如果需要支持java,需要安装jdk,配置java环境变量。

4.解压文件,进入目录thrift-0.8.0安装
./configure --with-cpp --with-boost --without-python --without-csharp --with-java --without-erlang --without-perl --with-php --without-php_extension --without-ruby --without-haskell --without-go
make
需要哪种语言支持,就选择with-xxx 不需要就without-xxx

5.测试
直接输入thrift命令,看是否有用法提示

最后

以上就是爱撒娇手链为你收集整理的Ubuntu16.04 x64版本下搭建单节点hadoop+hive+thrift环境的全部内容,希望文章能够帮你解决Ubuntu16.04 x64版本下搭建单节点hadoop+hive+thrift环境所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部