天天看点

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

鸣谢——主要参考:

1. MySQL运维:设置或修改用户密码的方法

2.Hive:如何开启、关闭server服务

3.ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@‘localhost’

4.hue从安装到集成hdfs、sql等hadoop环境专栏

正文开始,前置环节:

【说明】:在本分布式中,slave1、slave2主要作为数据存储。而,hive是用于检索的工具,故仅在Master服务器端安装hive与mysql。

Mysql环境搭建:

【说明】:mysql与hive好像没有版本兼容问题,故下载5.7版本

1.下载mysql5.7组件

cd /home/test/install/

	#ubantu系统对应指令
	sudo apt-get install mysql-server-5.7	#安装MySQL的客户端和服务端

	sudo apt install libmysqlclient-dev	#安装MySQL需要的依赖

	ps -e | grep mysql	#查看状态

           

2.创建Mysql账户信息

2.1. 启动Mysql:

#1.1开启(关闭)mysql
	cd /home/test/install	#你下载Mysql的目录
	
	service mysql start	#启动mysql
	#service mysql stop指令就是关闭
	service mysql status	#查看mysql安装情况:出现绿色灯泡则表示正常启动,ESC键+输入":wq"退出查看
           

2.2. 初始化Mysql的root账户信息

#2.初始化登入Mysql的root账户信息
	mysql_secure_installation #初始化账户信息,如下
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

3.设置用户hive登录的账户

#3.1进入mysql
	cd ~	#进入linux的/root目录
	mysql -uroot -p 	#登录,mysql,之后会提醒输入密码
	
	#3.2创建,hive访问mysql的用户及权限
	GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION;	#hive是账户名,identified by后面的是用户密码
	flush privileges;	#更新操作

	#3.3测试用户登录状态
	exit	#从“mysql”退出到“linux的命令行”
	mysql -uhive -p	#u后面的就是Mysql的账户名,hive。输入,密码hive即可登录,说明成功

	#补充,想修改自己的mysql账户(我修改了,不想修改的别管如下指令)
	#确保自己知道过去的密码,并按照“3.3”登录进hive账户
	SET password=password("newpassword");	#newpassword:新密码

           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

二、(仅Master-主服务器端)配置hive环境:

【说明】:由于hive类似mysql是作为数据检索的工具,故,不再dataNode端服务器安装,仅在nameNode端安装。

1.装载hive安装包

  1. 载入安装包
#1.载入安装包
	cd /home/test/Downloads	

	tar -zxvf  /home/test/Downloads/hive-1.1.0-cdh5.14.0.tar.gz -C /home/test/install/	#解压到install目录路径下

           
  1. 设置安装路径
#2.安装环境配置
	vim /etc/profile

	#填入如下信息之后:wq退出
	export HIVE_HOME=/home/test/install/hive-1.1.0-cdh5.14.0
	export CLASSPATH=.:${HIVE_HOME}/lib:$CLASSPATH
	export PATH=${HIVE_HOME}/bin:${HIVE_HOME}/conf:$PATH

	#退出编辑后,输入:
	source /etc/profile	#激活环境变量,没输入此命令一般无法使用查看hive命令
           
  1. 检查安装路径状态
#3.查看hive安装情况

	hive --version	#查看hive版本
           

【正确安装结果】:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-1.1】:查看hive版本时提示,ls: cannot access ‘…/lib/spark-assembly-*.jar’: No such file or directory

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】:参考如下步骤。原理:链接

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-1.2】:查看hive版本时,提示,“SLF4J: Class path contains multiple SLF4J bindings.”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】本义是指“日志实现”的方式出现冲突。其中,“slf4j-log4j12”是日志自适应接口,“slf4j-impl”是日志的具体接口,故删除自适应接口。参考

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-1.3】:查看hive版本时,提示:Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】hadoop缺少相应的native包,下载并且配置其到hadoop的native库中即可。原理:链接

#1.下载需要的native包(上述链接中,有所有版本的下载地址,或者直接更改下列命令的指令——但可能没有所以还是得看一下)
	cd /home/test/Downloads/	#进入自己一般存下载文件的地方
	wget http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar	#我是2.6.0的hadoop版本,所以下载这个到当前目录

	#2.解压上述文件到自己安装hadoop的目录下的两个地方
	tar -xvf hadoop-native-64-2.6.0.tar -C /home/test/install/hadoop-2.6.0-cdh5.14.0/lib/native/	#hadoop安装目录/lib/native
	tar -xvf hadoop-native-64-2.6.0.tar -C /home/test/install/hadoop-2.6.0-cdh5.14.0/lib	#hadoop安装目录/lib

	#3.配置环境变量
	sudo vim /etc/profile
	#加入,如下图:
	export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
	export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

	#4.:wq,并刷新环境配置就行了
	source /etc/profile
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2.创建并修改hive配置文件

#2.1.编辑hive安装配置文件
	cd /home/test/install/hive-1.1.0-cdh5.14.0/conf	#进入自己安装hive的路径下的conf文件夹

	#4.0 复制,temple文件为需要的设置文件,teplate为文件模型(系统自带,但有时不被编译接受)
	cp hive-env.sh.template hive-env.sh
	#cp hive-default.xml.template hive-site.xml	#有的地方有默认的,没有的话自己创建一个
	vi hive-site.xml	#创建一个“hive-site.xml”文件
	cp hive-log4j.properties.template hive-log4j2.properties
	cp hive-exec-log4j.properties.template hive-exec-log4j2.properties
           

2.1.编辑配置文件:vim hive-site.xml

  1. 编辑“vim hive-site.xml”
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
<configuration>
        <!-- 设置JDBC与MySQL之间的连接 -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1&amp;useSSL=false</value>
                <description>JDBC connect string for a JDBC metastore</description>
        </property>
        <!-- 设置驱动 -->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
                <description>Driver class name for a JDBC metastore</description>
        </property>
        <!-- 设置MySQL连接的用户名,这里一定要与前面的Mysql设置的普通账户密码一样 -->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
                <description>username to use against metastore database</description>
        </property>

        <!-- 设置MySQL连接的密码,可以根据自己的需要进行更改 -->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive123</value>
                <description>password to use against metastore database</description>
        </property>

        <!--设置自己的log日志所在目录 -->
        <property>
                <name>hive.querylog.location</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/log</value>
        </property>
        <!--设置自己hive的数据仓库位置 -->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/warehouse</value>
        </property>
        <!--设置hive的job位置-->
        <property>
                <name>hive.exec.local.scratchdir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/local</value>
        </property>
        <!--设置hive下载时的临时下载目录-->
        <property>
                <name>hive.downloaded.resources.dir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/download</value>
        </property>
</configuration>
           
  1. 创建上面的对应目录
cd /home/test/install/hive-1.1.0-cdh5.14.0/
	#为上面修改,创建文件夹
	mkdir warehouse	#仓库位置
	mkdir log
	mkdir download
	mkdir local
           

2.2编辑配置文件:hive-log4j2.properties

/home/test/install/hive-1.1.0-cdh5.14.0/conf	#进入自己的hive/conf
	# 修改hive日志配置文件, 修改log.dir以便出错的时候能够快速定位排查问题
	vi hive-log4j2.properties
	property.hive.log.dir = /home/test/install/hive-1.1.0-cdh5.14.0/log	# 排查问题时 去:查看 /home/test/install/apache-hive-2.3.6-bin/log/hive.log文件即可(自己hive的安装路径)

           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

3.装载Mysql、jave通信插件并更新hive数据库

#3.1配置MySQL、Java与Hive之间通信的jar包
	cd /home/test/install/hive-1.1.0-cdh5.14.0/lib	#进入hive下的lib包
	
	wget http://downloads.mysql.com/archives/mysql-connector-java-5.0/mysql-connector-java-5.0.8.tar.gz	#下载connectorjar包
	tar -zxvf mysql-connector-java-5.0.8.tar.gz	#当前文件夹下解压connectorjar包
	
	#3.2更新lib库状态,测试hive情况
	cd $HIVE_HOME/bin
	schematool -dbType mysql -initSchema	#更新lib库情况
           

【问题-3.1】:输入更新lib库指令后,提示Class path contains multiple SLF4J bindings

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】error1中,指“日志实现”的方式出现冲突。其中,“slf4j-log4j12”是日志自适应接口,“slf4j-impl”是日志的具体接口,故删除自适应接口,参考

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】error2中,由于Hive不认“hive-default.xml.template ”里面的操作,所以,从“hive-default.xml.template ”复制过来的再进行编辑的“hive-site.xml”也同样失效,所以,“hive-site.xml”中仅保留自定义的内容,其他复制过来的删除。

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-3.2】:使用仅含有自定义信息的“hive-site.xml”后,再次启动hive提示找不到“Failed to load driverdriver”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】下载对应的jdbc并且解压到“hive安装目录的lib”目录下(“hive-site.xml”中的描述不变)

#1.下载并解压jdbc到指定的下载目录,即:mysql-connector-java-5.0.8
	cd /home/test/Downloads/
	wget http://downloads.mysql.com/archives/mysql-connector-java-5.0/mysql-connector-java-5.0.8.tar.gz
	tar -zxvf mysql-connector-java-5.0.8.tar.gz	#解压出来的是文件夹
	
	#2.进入解压的文件
	cd /home/test/Downloads/mysql-connector-java-5.0.8	#此文件夹中的“mysql-connector-java-5.0.8-bin.jar”就是jdbc
	cp ./mysql-connector-java-5.0.8-bin.jar /home/test/install/hive-1.1.0-cdh5.14.0/lib	#将此jdbc拷贝到自己安装hive的目录下的lib目录就能找到了
           

【问题-3.3】:Underlying cause: java.sql.SQLException : Access denied for user ‘mysql’@‘localhost’ (using password: YES)

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】尽管,在“hive-site.xml”中配置了用于登录Mysql的Hive账户,但是,Mysql中我并没有设置此用户并赋予权限

【问题-3.4】:Error: Duplicate key name ‘PCS_STATS_IDX’ (state=42000,code=1061) ----Hive schematool -initSchema

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】:其实已经初始话过了,不必再初始话。除非你想重新建表,则参考.

【问题-衍生】上述处理完后,启动hadoop提示: “Call From master/172.16.1.8 to master:9000 failed on connection exception: java.net.ConnectExcept”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】上面的报错是由于,临时文件存在冲突。可能之前安装hadoop与现在安装hive的缓存发生冲突。暴力解决的方法就是,各服务器删除过去的tmp目录,再重新创建它,最后,再重新编译下hadoop环境

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#Master端:
	#1.关闭当前Hadoop进程
	cd $HADOOP_HOME/sbin
	stop-all.sh 

	#2.根据上图目录,删除原有tmp目录并重新创建
	cd /home/test/install/hadoop-2.9.2	#进入自己的hadoop目录
	rm -rf tmp	#删除原有tmp
	mkdir tmp
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#两个slave端:同上,必须也删除
	...
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2.重新formate下hadoop结点信息

#仅在master端即可
	cd /home/test/install/hadoop-2.9.2	#自己的Hadoop目录
	
	hadoop namenode -format	#重新创建节点信心
           

3.jps检测各服务器信心

【结果——master端正常】

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【结果——slave端正常】

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-衍生】slave端开启hadoop提示:java.io.IOException: Incompatible clusterIDs in /home/test/install/hadoop-2.9.2/tmp/dfs/data: namenode clusterID = CID-72d779cb-a5d4-4234-a040-10195ec306d2; datanode clusterID = CID-2d592fc2-2fb8-4cc0-b092-bb4f423b9a52

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】编辑对应的文件,让它们两者对应即可,或者重新建立tmp目录,参考。

启动hive

【说明】:hive启动前必须启动hadoop及mysql服务

1.(仅master端就可以)启动mysql

#Ubuntu系统开启(关闭)mysql
	#1.1切换地址
	cd /home/test/install/	#进入mysql所在文件夹

	#1.2开启(关闭)mysql
	service mysql start	#启动mysql
	#service mysql stop指令就是关闭
	service mysql status	#查看mysql安装情况:出现绿色灯泡则表示正常启动,ESC键+输入":wq"退出查看
	
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2.(仅master端就可以)启动hadoop

#2.1 切换地址
		cd /home/test/install/hadoop-2.6.0-cdh5.14.0	#就是你输入:echo $HADOOP_HOME的地址
		
		#2.2输入
		sbin/start-dfs.sh	#开启dfs,正常效果如上
		sbin/start-yarn.sh	#启动YARN,正常效果如上
		
		#2.2直接开启(等效上面两部)
		sbin/start-all.sh
		#sbin/stop-all.sh”就是关闭hadoop的node


		#2.3启动jobhistory
		$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
		
		你服务器公网ip:50070	#登录网页版hadoopUI,也可查看开启效果
           

3.(仅master端)启动与关闭hive

1. 启动HiveServer环境

cd $HIVE_HOME/bin
	schematool -dbType mysql -initSchema	#初始化lib库,一般初始化一次就行了。下次可直接跳过次步。
	hadoop dfsadmin -safemode leave	#关闭,hadoop的安全模式
	#方案一:
	hive	#进入,hive编辑模式,输入quit;即可退出

	#方案二:
	hive --service hiveserver2&	#启动hive的server服务,‘&’是为了让hive在后台运转不占用命令行,此命令输入后,直接回车就能再当前命令行继续操作,否则,必须得再新建命令行

	jps	#可以看到“RunJar”
           

【hive】编译成功:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【hive】编辑模式:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【hive】退出hive模式:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2. 退出,hive-server环境【转载】

ps -aux|grep hive	#命令行查看hive进程
	kill -9 进程号	#如下图
           

###【补充】如何跟进进程id杀死对应的进程,进而实现关闭特定服务?

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】:HIVE 启动错误 :Name node is in safe mode,参考

【思路】:关闭safemode。指令:

#仅master端
	hadoop dfsadmin -safemode leave
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】:如何查看hive的数据表存放的地址

#前提,进入hive,如下图
	use 数据库名;
	describe extended 表名;	#路径见下
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

三、(仅Master-主服务器端)Sqoop

1.(仅Master)安装步骤:

sqoop1.4.7兼容hadoop2.6以上所有版本

  1. 载入安装包
#FileZilla上传安装包sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz到服务器

	#从下载目录解压至特定目录
	#1.载入安装包
	cd /home/test/Downloads	

	tar -zxvf  /home/test/Downloads/sqoop-1.4.6-cdh5.14.2.tar.gz -C /home/test/install/	#解压到install目录路径下
	
	#2.更改目录名
	cd /home/test/install/	#进入解压后的目录
	#mv sqoop-1.4.6-cdh5.14.2 sqoop-1.4.7	#格式,mv A B。将目录A改名为目录B.
           

2.编辑环境变量

#修改配置文件
	cd /home/test/install/sqoop-1.4.6-cdh5.14.2/conf	#进入,sqoop安装目录下的conf
	
	#3.编辑环境变量
	vim /etc/profile	
	#添加如下内容:
	export SQOOP_HOME=/home/test/install/sqoop-1.4.6-cdh5.14.2
	export PATH=$PATH:$SQOOP_HOME/bin

	#退出编辑后,输入:
	source /etc/profile	#激活环境变量,没输入此命令一般无法使用查看hive命令
	
           

3.配置sqoop-env.sh

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#4.配置sqoop-env.sh 
	cp sqoop-env-template.sh sqoop-env.sh	#复制当前目录下的文件,创建配置文件

	vi sqoop-env.sh 
	#添加如下内容(写自己的路径)
	#Set path to where bin/hadoop is available
	export HADOOP_COMMON_HOME=/home/test/install/hadoop-2.6.0-cdh5.14.0
	
	#Set path to where hadoop-*-core.jar is available
	export HADOOP_MAPRED_HOME=/home/test/install/hadoop-2.6.0-cdh5.14.0
	
	#set the path to where bin/hbase is available
	export HBASE_HOME=/home/test/install/hbase-1.2.0-cdh5.14.0
	
	#Set the path to where bin/hive is available
	export HIVE_HOME=/home/test/install/hive-1.1.0-cdh5.14.0
	
	export ZOOKEEPER_HOME=/home/test/install/zookeeper-3.4.5-cdh5.14.0
	
	#Set the path for where zookeper config dir is
	export ZOOCFGDIR=/home/test/install/zookeeper-3.4.5-cdh5.14.0
	#:wq退出编辑
           
  1. 设置configure-sqoop【具体,安装下图对照自己路径设置】
#ZOOKEEPER_HOME的设置,我已经添加到了前面的描述了

	#“hcatalog ”与“accumulo ”的配置
	cd $SQOOP_HOME/bin

	vim configure-sqoop	#按照下图注释
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

3. 配置sqoop的mysql驱动

#5.复制mysql驱动程序到sqoop目录下的lib目录
	cd /home/test/Downloads/mysql-connector-java-5.0.8	#此文件夹中的“mysql-connector-java-5.0.8-bin.jar”就是jdbc
	
	cp ./mysql-connector-java-5.0.8-bin.jar /home/test/install/sqoop-1.4.6-cdh5.14.2/lib	#将此jdbc拷贝到自己安装hive的目录下的lib目录就能找到了
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2.检查安装

#2.1扫描sqoop状态
	cd $SQOOP_HOME
	sqoop help # 测试sqoop是否安装成功,当错误修正(见报错信心)后的结果:
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#2.2链接mysql,查看其中hive用户下的所有的数据表
	sqoop  list-databases  --connect jdbc:mysql://localhost:3306 --username hive --password  hive123
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#补充:关闭sqoop
	ps -aux|grep sqoop
	kill -9 对应进程号
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

3.报错信息

【问题-3.1】输入“sqoop help”提示,三个如下警告:

【问题】Warning: /home/test/install/sqoop-1.4.7/…/hcatalog does not exist! HCatalog jobs will fail.

【问题】Warning: /home/test/install/sqoop-1.4.7/…/accumulo does not exist! Accumulo imports will fail.

【问题】/home/test/install/sqoop-1.4.7/…/zookeeper does not exist! Accumulo imports will fail.

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】添加“ZOOKEEPER_HOME”注释掉,“hcatalog ”与“accumulo ”的配置信息。

#ZOOKEEPER_HOME的设置,我已经添加到了前面的描述了

	#“hcatalog ”与“accumulo ”的配置
	cd $SQOOP_HOME/bin

	vim configure-sqoop	#按照下图注释
           

【编辑】:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【结果】:

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

Hue

【】Hue的官网安装教程·含详细安装步骤

    1. 安装系统需要的依赖[此仅涉及:Ubuntu]

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

    1.1 需要的系统插件

sudo apt-get install git ant gcc g++ libffi-dev libkrb5-dev libmysqlclient-dev libsasl2-dev libsasl2-modules-gssapi-mit libsqlite3-dev libssl-dev libxml2-dev libxslt-dev make maven libldap2-dev python-dev python-setuptools libgmp3-dev
           

    1.2 需要的python及插件

【说明】我Python已经安装过了,在【另一模块·链接】

sudo apt-get install python3.8-dev python3-distutils
           

    1.3 需要的web服务用到的插件

sudo apt-get install python-snappy 
sudo apt-get install -y libsnappy-dev
           

    2. Ubuntu下安装hue的具体步骤[不同系统,点此官网原文]

    [窍门]如何快速按照关键词定位特定文件中的某个位置(在没有图形化界面下,无法使用“ctrl + F”时)?

  1. 代码
  1. 步骤举例
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

    2.1 mySql配置hue用户及hue数据库

linux命令行:创建hue的mysql访问账户
sudo service mysql start
mysql -u root -p

create database hue;

GRANT ALL PRIVILEGES ON *.* TO 'hue'@'localhost' IDENTIFIED BY 'hue123' WITH GRANT OPTION;

flush privileges;

exit;

           

    2.2 配置hue.ini

  1. 设置hdfs及网页服务
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
  2. 设置[beeswax]下的hive描述
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
  3. 设置database下的数据库信息
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
  4. 设置mapred_lusters
    【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

    2.3 配置hive-site.xml

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
<configuration>
        <!-- 设置JDBC与MySQL之间的连接 -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1&amp;useSSL=false</value>
                <description>JDBC connect string for a JDBC metastore</description>
        </property>
        <!-- 设置驱动 -->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
                <description>Driver class name for a JDBC metastore</description>
        </property>

        <!-- 设置MySQL连接的用户名,这里一定要与前面的Mysql设置的普通账户密码一样 -->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
                <description>username to use against metastore database</description>
        </property>

        <!-- 设置MySQL连接的密码,可以根据自己的需要进行更改 -->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive123</value>
                <description>password to use against metastore database</description>
        </property>

        <!--设置自己的log日志所在目录 -->
        <property>
                <name>hive.querylog.location</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/log</value>
        </property>

        <!--设置自己hive的数据仓库位置 -->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/warehouse</value>
        </property>

        <!--设置hive的job位置-->
        <property>
                <name>hive.exec.local.scratchdir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/local</value>
        </property>

        <!--设置hive下载时的临时下载目录-->
        <property>
                <name>hive.downloaded.resources.dir</name>
                <value>/home/test/install/hive-1.1.0-cdh5.14.0/download</value>
        </property>
</configuration>
           

    2.4 初始化数据库信息

cd /home/test/install/hue-3.9.0-cdh5.14.0/build/env	#记得是你自己hue按照目录下的“build/env”

bin/hue syncdb
bin/hue migrate
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

    3. 启动hue服务

    3.1 启动hadoop服务(不写了,见上文)

    3.2 启动hive、sql服务

#启动hive
 cd /home/test/install/hive-1.1.0-cdh5.14.0/
 hive --service hiveserver2&

#启动mysql
service mysql start
           

    3.3 启动hue服务[原文]

  1. 编译hue组件
cd /home/test/install/hue-3.9.0-cdh5.14.0/
make apps #编译Hue
           

【说明】打开文件夹,进入hue安装目录下的“build/env/bin”目录,如果有hue文件,说明编译已经成功了,如果前面安装包的部分没有装完全,那么这一步肯定会出错。

  1. 启动hue
build/env/bin/supervisor
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

2. 后台启动hue服务

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

3. 【补充】关闭后台hue服务

方法一:利用进程号关闭

ps -ef|grep hue
	kill -9 对应的进程号
           

方法二:对存在进程的命令行,输入“ctrl+C”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

    4. 访问hueweb服务

【说明】由于个人实力有限,只摸索出在Ubuntu本地安装图形化后,在云服务器中使用hue的界面

【说明】由于个人实力有限,只摸索出在Ubuntu本地安装图形化后,在云服务器中使用hue的界面

【说明】由于个人实力有限,只摸索出在Ubuntu本地安装图形化后,在云服务器中使用hue的界面

    4.1在图形化后的Ubuntu自带web输入:localhost:8000

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题-4.-1】启动,hue的server后,本地windows无法打开下图连接。而,hue的log文件,提示:“Couldn’t import snappy. Support for snappy compression disabled.”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】安装Ubuntu下的snappy相应的包,再重新编译(make apps)

sudo apt-get install python-snappy 
sudo apt-get install -y libsnappy-dev
           

【思路】提供的网址,应该是指本地的localhost(即,阿里云当前服务器的localhost),于是打开界面化的当前服务器,以里面的浏览器来访问当前地址。

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

问题集,都是依赖问题(建议,搭配“ctrl+F”)

【问题】Unable安装一些插件…

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】有些依赖是真对centos系统的,之前看错博客所以安装失误。而,有些则需要更换“源【换源参考】”

【问题】Package ~ is not configured yet,例如:Package python-apt is not configured yet

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】参考链接

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题3-1】Ubuntu下numpy安装缺少Python.h头文件无法通过编译与python2.7-dev无法安装

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
#根目录下
	sudo apt-get -y install python2.7-dev
           

【问题3-2】Ubuntu出现sudo:pip: command not found参考

【问题3-3】Python 报错 Could not find a version that satisfies the requirement (from versions: ) No matching dist参考

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】Ubuntu16 提示中的x86_64-linux-gnu-gcc: error: pycocotools/_mask.c: No such file or directory 问题参考

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】ubuntu安装hue时报x86_64-linux-gnu-gcc: error:什么什么目录下的/bin/sh: 1: krb5-config: not found错误

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】检验到底哪个文件不存在,先看“x86_64-linux-gnu-gcc”再看看“krb5-config”,发现是后者参考

#hue安装目录下,安装
	sudo apt-get -y install gcc libkrb5-dev
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】编译hue,提示“OpenSSL/crypto/crypto.c:626:16: error: storage size of ‘md_ctx’ isn’t known”

【原因】libssl-dev版本不对,参考

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
cd 自己的hue目录
	sudo apt install libssl1.0-dev	#这个版本与我相匹配,你们可能跟我不同自己试试(好像可以不用删原来版本直接下其他版本就行了)
           

【问题】编译hue,提示“In file included from Modules/LDAPObject.c:9:0:

Modules/errors.h:8:10: fatal error: lber.h: No such file or directory

#include “lber.h”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】下载对应lber,参考

cd ~
	sudo apt-get -y install libldap2-dev
           

【问题】在Ubuntu 18.04系统中安装OpenLDAP服务器的方法

【思路】

sudo apt update
	
	sudo apt -y install slapd ldap-utils	#期间输入管理员密码
           

【问题】安装其他依赖

【思路】

sudo apt-get install aptitude 
	sudo aptitude install python-dev 	#提示“Errors were encountered while processing:不用管它
 python-libxslt1”
           

【问题】配置hue时,“Modules/LDAPObject.c:18:10: fatal error: sasl.h: No such file or directory#include <sasl.h>”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【思路】

cd ~
	sudo apt-get install libsasl2-dev
           

【问题】 fatal error: libxml/xmlversion.h: No such file or directory

#include “libxml/xmlversion.h”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
sudo apt-get install libxml2-dev libxslt1-dev
           

【问题】UBUntu解决fatal error: sqlite3.h: No such file or directory参考

sudo apt-get install sqlite3
	sudo apt-get install libsqlite3-dev	#安装sqlite-devel
           

【问题】Ubuntu提示 fatal error: gmp.h: No such file or directory

【思路】ubuntu18.04 安装 gmp

apt install -y libgmp-dev
           

【问题】django.db.utils.OperationalError: (1045, “Access denied for user ‘root’@‘master’ (using password: YES)”)

【思路】参考

mysql -u root -p	#进入mysql

	use mysql;
	
	ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 	#记得修改自己的密码
	
	FLUSH PRIVILEGES; 
           
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】无法安装Mysql-devel

pip install mysql
	sudo apt-get install libmysqld-dev	#安装Mysql-devel
           

【问题】“make-apps”没报错后,启动服务却卡主不动,Logs文件提示:“ERROR Exception in supervisor main loop”

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】socket.error: [Errno 98] Address already in use

【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装
【服务器】(五)阿里云ECS上搭建Hadoop集群环境——设置(分布式)Mysql、Hive、Sqoop与Hue安装

【问题】使用apt-install时,出现:“Errors were encountered while processing:

python-libxslt1”

【思路】该软件已经安装,但其他软件安装成功,报的是重新安装的冲突问题可以不管。