概述
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文件并在,标签之间添加以下属性。
(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
打开这个文件,并在此文件中的标签之间添加以下属性。
使用命令“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环境所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复