Browse Source

初始化项目

jkzlzhoujie 6 years ago
commit
7a330d75e8

+ 25 - 0
.gitignore

@ -0,0 +1,25 @@
/target/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

BIN
.mvn/wrapper/maven-wrapper.jar


+ 1 - 0
.mvn/wrapper/maven-wrapper.properties

@ -0,0 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip

+ 225 - 0
mvnw

@ -0,0 +1,225 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
#   M2_HOME - location of maven2's installed home dir
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
#     e.g. to debug Maven itself, use
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
  if [ -f /etc/mavenrc ] ; then
    . /etc/mavenrc
  fi
  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi
fi
# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  MINGW*) mingw=true;;
  Darwin*) darwin=true
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
    if [ -z "$JAVA_HOME" ]; then
      if [ -x "/usr/libexec/java_home" ]; then
        export JAVA_HOME="`/usr/libexec/java_home`"
      else
        export JAVA_HOME="/Library/Java/Home"
      fi
    fi
    ;;
esac
if [ -z "$JAVA_HOME" ] ; then
  if [ -r /etc/gentoo-release ] ; then
    JAVA_HOME=`java-config --jre-home`
  fi
fi
if [ -z "$M2_HOME" ] ; then
  ## resolve links - $0 may be a link to maven's home
  PRG="$0"
  # need this for relative symlinks
  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
      PRG="$link"
    else
      PRG="`dirname "$PRG"`/$link"
    fi
  done
  saveddir=`pwd`
  M2_HOME=`dirname "$PRG"`/..
  # make it fully qualified
  M2_HOME=`cd "$M2_HOME" && pwd`
  cd "$saveddir"
  # echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --unix "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Migwn, ensure paths are in UNIX format before anything is touched
if $mingw ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  # TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
  javaExecutable="`which javac`"
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
    # readlink(1) is not available as standard on Solaris 10.
    readLink=`which readlink`
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
      if $darwin ; then
        javaHome="`dirname \"$javaExecutable\"`"
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
      else
        javaExecutable="`readlink -f \"$javaExecutable\"`"
      fi
      javaHome="`dirname \"$javaExecutable\"`"
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
      JAVA_HOME="$javaHome"
      export JAVA_HOME
    fi
  fi
fi
if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi
if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly." >&2
  echo "  We cannot execute $JAVACMD" >&2
  exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
  echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
  if [ -z "$1" ]
  then
    echo "Path not specified to find_maven_basedir"
    return 1
  fi
  basedir="$1"
  wdir="$1"
  while [ "$wdir" != '/' ] ; do
    if [ -d "$wdir"/.mvn ] ; then
      basedir=$wdir
      break
    fi
    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
    if [ -d "${wdir}" ]; then
      wdir=`cd "$wdir/.."; pwd`
    fi
    # end of workaround
  done
  echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
  if [ -f "$1" ]; then
    echo "$(tr -s '\n' ' ' < "$1")"
  fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
  exit 1;
fi
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
echo $MAVEN_PROJECTBASEDIR
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
  $MAVEN_OPTS \
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 143 - 0
mvnw.cmd

@ -0,0 +1,143 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements.  See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership.  The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License.  You may obtain a copy of the License at
@REM
@REM    http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied.  See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM     e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

+ 139 - 0
pom.xml

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.yihu.ehr</groupId>
	<artifactId>svr-sep</artifactId>
	<version>1.1.0</version>
	<packaging>jar</packaging>
	<name>svr-sep</name>
	<description>HBase Side-Effect Processor </description>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<version.spring-boot>1.5.9.RELEASE</version.spring-boot>
		<version.spring-cloud-starter>1.3.2.RELEASE</version.spring-cloud-starter>
		<version.spring-cloud>1.4.2.RELEASE</version.spring-cloud>
	</properties>
	<!--引入Springboot的父级依赖。-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>
	<dependencies>
		<!-- spring boot start -->
			<!--引入Springboot的web starter-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>${version.spring-boot}</version>
			<exclusions>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
			<version>${version.spring-cloud-starter}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
			<version>${version.spring-cloud-starter}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
			<version>${version.spring-cloud-starter}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
			<version>${version.spring-boot}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<version>${version.spring-boot}</version>
			<scope>test</scope>
		</dependency>
		<!-- spring boot end -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
		</dependency>
			<!-- hbase sep start -->
		<dependency>
			<groupId>com.ngdata</groupId>
			<artifactId>hbase-sep-impl</artifactId>
			<version>1.6-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.5</version>
			<scope>runtime</scope>
		</dependency>
		<!-- hbase sep end -->
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>2.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-clients</artifactId>
			<version>2.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.kafka</groupId>
			<artifactId>spring-kafka</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>kafka-clients</artifactId>
					<groupId>org.apache.kafka</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

+ 19 - 0
src/main/java/com/yihu/ehr/SvrSepApplication.java

@ -0,0 +1,19 @@
package com.yihu.ehr;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableFeignClients
//@EnableDiscoveryClient
@SpringBootApplication
public class SvrSepApplication {
	public static void main(String[] args) {
		SpringApplication.run(SvrSepApplication.class, args);
	}
}

+ 83 - 0
src/main/java/com/yihu/ehr/controller/ConsumerController.java

@ -0,0 +1,83 @@
package com.yihu.ehr.controller;
import com.ngdata.sep.EventListener;
import com.ngdata.sep.PayloadExtractor;
import com.ngdata.sep.SepModel;
import com.ngdata.sep.impl.BasePayloadExtractor;
import com.ngdata.sep.impl.SepConsumer;
import com.ngdata.sep.impl.SepModelImpl;
import com.ngdata.sep.util.zookeeper.ZkUtil;
import com.ngdata.sep.util.zookeeper.ZooKeeperItf;
import com.yihu.ehr.listener.HbaseLogListener;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.kafka.common.requests.ApiVersionsResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by janseny on 2018/9/13.
 */
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
    Logger log = LoggerFactory.getLogger(ConsumerController.class);
    @Value("${server.host}")
    private String localhost;
    @Value("${zookeeper.broker.address}")
    private String zookeeperHost;
    private static String subscriptionName = "logger";
    private static byte[] table = Bytes.toBytes("sep-user-demo");  //hbase
    private static byte[]  columnFamily = Bytes.toBytes("");        //columnFamily
    private static byte[]  columnQualifier = Bytes.toBytes("payload");  //列限定符
    private SepConsumer sepConsumer;
    /**
     * 开启消费
     */
    @RequestMapping(value = "/start", method = RequestMethod.GET)
    public void start(){
        try {
            Configuration hbaseConf = HBaseConfiguration.create();
            hbaseConf.setBoolean("hbase.replication", true);
            ZooKeeperItf zk = ZkUtil.connect(zookeeperHost, 20000);
            SepModel sepModel = new SepModelImpl(zk, hbaseConf);
            if (!sepModel.hasSubscription(subscriptionName)) {
                sepModel.addSubscriptionSilent(subscriptionName);
            }
            PayloadExtractor payloadExtractor = new BasePayloadExtractor(table, columnFamily,columnQualifier);
            HbaseLogListener hbaseLogListener = new HbaseLogListener();
            sepConsumer = new SepConsumer(subscriptionName, 5000, hbaseLogListener, 1, localhost, zk, hbaseConf,payloadExtractor);
            sepConsumer.start();
            log.debug("started");
            System.out.println("Started");
            while (true) {
                Thread.sleep(Long.MAX_VALUE);
            }
        }catch (Exception e){
            log.debug(e.getMessage());
        }
    }
    /**
     * 停止消费
     */
    @RequestMapping(value = "/stop", method = RequestMethod.GET)
    public void stop(){
        try {
            sepConsumer.stop();
            log.debug("stop");
            System.out.println("Stop");
        }catch (Exception e){
            log.debug(e.getMessage());
        }
    }
}

+ 88 - 0
src/main/java/com/yihu/ehr/kafka/KafkaConsumerConfig.java

@ -0,0 +1,88 @@
package com.yihu.ehr.kafka;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.serialization.StringDeserializer;
import org.apache.kafka.common.serialization.StringSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
import org.springframework.kafka.core.*;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by janseny on 2018/9/13.
 */
@Configuration
@EnableKafka
public class KafkaConsumerConfig {
    @Value("${kafka.broker.address}")
    private String kafkaBrokerAddress;
    private static String GROUP_ID = "sep-hbase-data";
    /* --------------producer configuration-----------------**/
    @Bean
    public Map<String, Object> producerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaBrokerAddress);
        props.put(ProducerConfig.RETRIES_CONFIG, 0);
        props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
        props.put(ProducerConfig.LINGER_MS_CONFIG, 1);
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        return props;
    }
    @Bean
    public ProducerFactory<String, String> producerFactory() {
        return new DefaultKafkaProducerFactory<>(producerConfigs());
    }
    /* --------------consumer configuration-----------------**/
    @Bean
    public Map<String, Object> consumerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaBrokerAddress);
        props.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID);
        props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);
        props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, 100);
        props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "15000");
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        return props;
    }
    @Bean
    ConcurrentKafkaListenerContainerFactory<String, String>
    kafkaListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, String> factory =
                new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(consumerFactory());
        return factory;
    }
    @Bean
    public ConsumerFactory<String, String> consumerFactory() {
        return new DefaultKafkaConsumerFactory<>(consumerConfigs());
    }
    /* --------------kafka template configuration-----------------**/
    @Bean
    public KafkaTemplate<String,String> kafkaTemplate() {
        KafkaTemplate<String, String> kafkaTemplate = new KafkaTemplate<>(producerFactory());
        return kafkaTemplate;
    }
    @Bean//生产者
    public Producer producer() {
        return new Producer();
    }
}

+ 84 - 0
src/main/java/com/yihu/ehr/kafka/Producer.java

@ -0,0 +1,84 @@
package com.yihu.ehr.kafka;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.serialization.StringSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
import org.springframework.stereotype.Controller;
import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by janseny on 2018/9/14.
 */
@Controller
public class Producer {
    Logger logger = LoggerFactory.getLogger(Producer.class);
    private static String topic = "sep-hbase-data";
    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            URL url = Producer.class.getClassLoader().getResource("application.yml");
            if (url != null) {
                Map map =(Map)yaml.load(new FileInputStream(url.getFile()));
                Map map2 = (Map)map.get("kafka");
                Map map3 = (Map)map2.get("broker");
                System.out.println(map3.get("address"));
                //通过map我们取值就可以了.
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public ProducerFactory<String, String> producerFactory() {
        String kafkaBrokerAddress = "";
        try {
            Yaml yaml = new Yaml();
            URL url = Producer.class.getClassLoader().getResource("application.yml");
            if (url != null) {
                Map map =(Map)yaml.load(new FileInputStream(url.getFile()));
                Map map2 = (Map)map.get("kafka");
                Map map3 = (Map)map2.get("broker");
                kafkaBrokerAddress = map3.get("address").toString();
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaBrokerAddress);
        props.put(ProducerConfig.RETRIES_CONFIG, 0);
        props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
        props.put(ProducerConfig.LINGER_MS_CONFIG, 1);
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        return new DefaultKafkaProducerFactory<>(props);
    }
    public String sendMessage(String message) {
        try {
            KafkaTemplate<String, String> kafkaTemplate = new KafkaTemplate<>(producerFactory());
            logger.info("kafka的消息={}", message);
            kafkaTemplate.send(topic, message);
            logger.info("send Message success.");
            return "SUCCESS";
        } catch (Exception e) {
            logger.error("send Message fail.", e);
            return "FAIL";
        }
    }
}

+ 44 - 0
src/main/java/com/yihu/ehr/listener/HbaseLogListener.java

@ -0,0 +1,44 @@
package com.yihu.ehr.listener;
import com.ngdata.sep.EventListener;
import com.ngdata.sep.SepEvent;
import com.yihu.ehr.kafka.Producer;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.util.Bytes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by janseny on 2018/9/13.
 */
public class HbaseLogListener implements EventListener {
    Logger log = LoggerFactory.getLogger(HbaseLogListener.class);
    @Override
    public void processEvents(List<SepEvent> sepEvents) {
        log.info(" sep Events get listener");
        Producer producer = new Producer();
        for (SepEvent sepEvent : sepEvents) {
            System.out.println("  row = " + Bytes.toString(sepEvent.getRow()));
            log.debug("  table = " + Bytes.toString(sepEvent.getTable()));
            log.debug("  row = " + Bytes.toString(sepEvent.getRow()));
            Map<String, Object> json = new HashMap<String, Object>();
            json.put("table",Bytes.toString(sepEvent.getTable()));
            json.put("rowKey",Bytes.toString(sepEvent.getRow()));
            for (Cell cell : sepEvent.getKeyValues()) {
                String key = Bytes.toString(CellUtil.cloneQualifier(cell));
                String value = Bytes.toString(CellUtil.cloneValue(cell));
                json.put(key, value);
            }
            log.debug("message: " + json.toString());
            producer.sendMessage(json.toString());
        }
        log.info("sep Events end");
    }
}

+ 111 - 0
src/main/java/com/yihu/ehr/sep/DemoIngester.java

@ -0,0 +1,111 @@
/*
 * Copyright 2012 NGDATA nv
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yihu.ehr.sep;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.codehaus.jackson.map.ObjectMapper;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class DemoIngester {
    private List<String> names;
    private List<String> domains;
    public static void main(String[] args) throws Exception {
        new DemoIngester().run();
    }
    public void run() throws Exception {
        Configuration conf = HBaseConfiguration.create();
        DemoSchema.createSchema(conf);
        final byte[] infoCf = Bytes.toBytes("info");
        // column qualifiers
        final byte[] nameCq = Bytes.toBytes("name");
        final byte[] emailCq = Bytes.toBytes("email");
        final byte[] ageCq = Bytes.toBytes("age");
        final byte[] payloadCq = Bytes.toBytes("payload111");
        loadData();
        ObjectMapper jsonMapper = new ObjectMapper();
        Table htable = ConnectionFactory.createConnection(conf).getTable(TableName.valueOf("sep-user-demo"));
        while (true) {
            byte[] rowkey = Bytes.toBytes(UUID.randomUUID().toString());
            Put put = new Put(rowkey);
            String name = pickName();
            String email = name.toLowerCase() + "@" + pickDomain();
            String age = String.valueOf((int) Math.ceil(Math.random() * 100));
            put.addColumn(infoCf, nameCq, Bytes.toBytes(name));
            put.addColumn(infoCf, emailCq, Bytes.toBytes(email));
            put.addColumn(infoCf, ageCq, Bytes.toBytes(age));
            MyPayload payload = new MyPayload();
            payload.setPartialUpdate(false);
            put.addColumn(infoCf, payloadCq, jsonMapper.writeValueAsBytes(payload));
            htable.put(put);
            System.out.println("Added row " + Bytes.toString(rowkey));
            Thread.sleep(2000);
        }
    }
    private String pickName() {
        return names.get((int)Math.floor(Math.random() * names.size()));
    }
    private String pickDomain() {
        return domains.get((int)Math.floor(Math.random() * domains.size()));
    }
    private void loadData() throws IOException {
        // Names
        BufferedReader reader =
                new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("resources/names/names.txt")));
        names = new ArrayList<String>();
        String line;
        while ((line = reader.readLine()) != null) {
            names.add(line);
        }
        // Domains
        domains = new ArrayList<String>();
        domains.add("gmail.com");
        domains.add("hotmail.com");
        domains.add("yahoo.com");
        domains.add("live.com");
        domains.add("ngdata.com");
    }
}

+ 47 - 0
src/main/java/com/yihu/ehr/sep/DemoSchema.java

@ -0,0 +1,47 @@
/*
 * Copyright 2012 NGDATA nv
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yihu.ehr.sep;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;
public class DemoSchema {
    public static void main(String[] args) throws Exception {
        Configuration conf = HBaseConfiguration.create();
        createSchema(conf);
    }
    public static void createSchema(Configuration hbaseConf) throws IOException {
        Admin admin = ConnectionFactory.createConnection(hbaseConf).getAdmin();
        if (!admin.tableExists(TableName.valueOf("sep-user-demo"))) {
            HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("sep-user-demo"));
            HColumnDescriptor infoCf = new HColumnDescriptor("info");
            infoCf.setScope(1);
            tableDescriptor.addFamily(infoCf);
            admin.createTable(tableDescriptor);
        }
        admin.close();
    }
}

+ 150 - 0
src/main/java/com/yihu/ehr/sep/LoggingConsumer.java

@ -0,0 +1,150 @@
/*
 * Copyright 2012 NGDATA nv
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yihu.ehr.sep;
import com.ngdata.sep.EventListener;
import com.ngdata.sep.PayloadExtractor;
import com.ngdata.sep.SepEvent;
import com.ngdata.sep.SepModel;
import com.ngdata.sep.impl.BasePayloadExtractor;
import com.ngdata.sep.impl.SepConsumer;
import com.ngdata.sep.impl.SepModelImpl;
import com.ngdata.sep.util.zookeeper.ZkUtil;
import com.ngdata.sep.util.zookeeper.ZooKeeperItf;
import org.apache.commons.codec.StringEncoder;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
 * A simple consumer that just logs the events.
 */
public class LoggingConsumer {
    private static String localhost = "192.168.131.109";        //localhost
    private static String zookeeperHost = "master";             //zookeeper
    private static String subscriptionName = "logger";
    private static byte[] table = Bytes.toBytes("sep-user-demo");       //hbase
    private static byte[]  columnFamily = Bytes.toBytes("");        //
    private static byte[]  columnQualifier = Bytes.toBytes("payload");  //
    private static String index = "medical_service_index";
    private static String type = "medical_service";
    public static void main(String[] args) throws Exception {
        Logger log = LoggerFactory.getLogger(LoggingConsumer.class);
        log.debug("in sep Events ");
        Configuration hbaseConf = HBaseConfiguration.create();
        hbaseConf.setBoolean("hbase.replication", true);
        ZooKeeperItf zk = ZkUtil.connect(zookeeperHost, 20000);
        SepModel sepModel = new SepModelImpl(zk, hbaseConf);
        if (!sepModel.hasSubscription(subscriptionName)) {
            sepModel.addSubscriptionSilent(subscriptionName);
        }
        PayloadExtractor payloadExtractor = new BasePayloadExtractor(table, columnFamily,columnQualifier);
        EventListener eventLogger = new EventLogger();
        SepConsumer sepConsumer = new SepConsumer(subscriptionName, 5000, eventLogger, 1, localhost, zk, hbaseConf,payloadExtractor);
        sepConsumer.start();
        System.out.println("Started");
        while (true) {
            Thread.sleep(Long.MAX_VALUE);
        }
    }
    private static Producer createProducer() {
        Properties properties = new Properties();
        properties.put("zookeeper.connect", "192.168.131.234:2181");//
        properties.put("serializer.class", StringEncoder.class.getName());
        properties.put("bootstrap.servers", "192.168.131.234:9092");//
        properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        Producer<String, String> producer = new KafkaProducer<String, String>(properties);
        return producer;
    }
    private static void sendMessage(Producer producer ,String topic,String message){
//            for (int i = 0; i < 100; i++) {
//                ProducerRecord producerRecord = new ProducerRecord<String, String>(topic, Integer.toString(i), Integer.toString(i));
//                producer.send(producerRecord);
//            }
        producer.send(new ProducerRecord<Integer, String>(topic, "message: " + message));
        producer.close();
    }
    private static class EventLogger implements EventListener {
        private static String topic = "sep-hbase-data";
        @Autowired
        private KafkaTemplate<String,String> kafkaTemplate;
        Logger log = LoggerFactory.getLogger(LoggingConsumer.class);
        @Override
        public void processEvents(List<SepEvent> sepEvents) {
            log.info(" sep Events get listener");
            Producer producer =  createProducer();
            for (SepEvent sepEvent : sepEvents) {
                System.out.println("Received event:");
                System.out.println("  table = " + Bytes.toString(sepEvent.getTable()));
                System.out.println("  row = " + Bytes.toString(sepEvent.getRow()));
                log.debug("  table = " + Bytes.toString(sepEvent.getTable()));
                log.debug("  row = " + Bytes.toString(sepEvent.getRow()));
                Map<String, Object> json = new HashMap<String, Object>();
                for (Cell cell : sepEvent.getKeyValues()) {
                    String key = Bytes.toString(CellUtil.cloneQualifier(cell));
                    String value = Bytes.toString(CellUtil.cloneValue(cell));
                    log.debug("hbase  cloumn = " + key);
                    log.debug("hbase  value = " + value);
                    System.out.println("  key = " + key);
                    System.out.println("  value = " + value);
                    sendMessage(producer,topic,key + ":" + value);
//                    kafkaTemplate.send(topic,"你","好");
                    json.put(key, value);
                }
            }
            log.info("sep Events end");
        }
    }
}

+ 28 - 0
src/main/java/com/yihu/ehr/sep/MyPayload.java

@ -0,0 +1,28 @@
/*
 * Copyright 2012 NGDATA nv
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yihu.ehr.sep;
public class MyPayload {
    boolean partialUpdate = false;
    public boolean isPartialUpdate() {
        return partialUpdate;
    }
    public void setPartialUpdate(boolean partialUpdate) {
        this.partialUpdate = partialUpdate;
    }
}

+ 19 - 0
src/main/resources/application.yml

@ -0,0 +1,19 @@
##如果有配置服务的话,远程服务器和本地服务器配置不一致的情况下,优先远程的为主  git上 svr-base ->  git application ->本地 appliction ->本地 bootstarp
server:
  host: 192.168.131.109
  contextPath: /sep
  port: 9087
kafka:
  broker:
    address: slave1:9092
zookeeper:
  broker:
    address: master:2181
spring:
  profiles: dev

+ 0 - 0
src/main/resources/bootstrap.yml


+ 63 - 0
src/main/resources/hbase-site.xml

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>file:///usr/local/bigdata/hbase-1.2.6/data</value>
	</property>
	<!--<property>-->
		<!--<name>hbase.zookeeper.property.dataDir</name>-->
		<!--<value>/usr/local/bigdata/zookeeper/data</value>-->
	<!--</property>-->
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>master</value>
	</property>
	
	<!-- SEP is basically replication, so enable it -->
	  <property>
		<name>hbase.replication</name>
		<value>true</value>
	  </property>
	  <!-- Source ratio of 100% makes sure that each SEP consumer is actually
		   used (otherwise, some can sit idle, especially with small clusters) -->
	  <property>
		<name>replication.source.ratio</name>
		<value>1.0</value>
	  </property>
	  <!-- Maximum number of hlog entries to replicate in one go. If this is
		   large, and a consumer takes a while to process the events, the
		   HBase rpc call will time out. -->
	  <property>
		<name>replication.source.nb.capacity</name>
		<value>1000</value>
	  </property>
	  <!-- A custom replication source that fixes a few things and adds
		   some functionality (doesn't interfere with normal replication
		   usage). -->
	  <property>
		<name>replication.replicationsource.implementation</name>
		<value>com.ngdata.sep.impl.SepReplicationSource</value>
	  </property>
	 
</configuration>

+ 31 - 0
src/main/resources/log4j.properties

@ -0,0 +1,31 @@
log4j.rootLogger = INFO,console,debug,error
### console ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n
### log file ###
log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File = /usr/hbase-sep-debug.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n
### info ###
log4j.appender.info = org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File = /usr/hbase-sep-info.log
log4j.appender.info.Append = true
log4j.appender.info.Threshold = INFO
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
### exception ###
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = /usr/hbase-sep-error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n

+ 7944 - 0
src/main/resources/names/names.txt

@ -0,0 +1,7944 @@
Abagael
Abagail
Abbe
Abbey
Abbi
Abbie
Abby
Abigael
Abigail
Abigale
Abra
Acacia
Ada
Adah
Adaline
Adara
Addie
Addis
Adel
Adela
Adelaide
Adele
Adelice
Adelina
Adelind
Adeline
Adella
Adelle
Adena
Adey
Adi
Adiana
Adina
Adora
Adore
Adoree
Adorne
Adrea
Adria
Adriaens
Adrian
Adriana
Adriane
Adrianna
Adrianne
Adrien
Adriena
Adrienne
Aeriel
Aeriela
Aeriell
Ag
Agace
Agata
Agatha
Agathe
Aggi
Aggie
Aggy
Agna
Agnella
Agnes
Agnese
Agnesse
Agneta
Agnola
Agretha
Aida
Aidan
Aigneis
Aila
Aile
Ailee
Aileen
Ailene
Ailey
Aili
Ailina
Ailyn
Aime
Aimee
Aimil
Aina
Aindrea
Ainslee
Ainsley
Ainslie
Ajay
Alaine
Alameda
Alana
Alanah
Alane
Alanna
Alayne
Alberta
Albertina
Albertine
Albina
Alecia
Aleda
Aleece
Aleecia
Aleen
Alejandra
Alejandrina
Alena
Alene
Alessandra
Aleta
Alethea
Alex
Alexa
Alexandra
Alexandrina
Alexi
Alexia
Alexina
Alexine
Alexis
Alfie
Alfreda
Ali
Alia
Alica
Alice
Alicea
Alicia
Alida
Alidia
Alina
Aline
Alis
Alisa
Alisha
Alison
Alissa
Alisun
Alix
Aliza
Alla
Alleen
Allegra
Allene
Alli
Allianora
Allie
Allina
Allis
Allison
Allissa
Allsun
Ally
Allyce
Allyn
Allys
Allyson
Alma
Almeda
Almeria
Almeta
Almira
Almire
Aloise
Aloisia
Aloysia
Alpa
Alta
Althea
Alvera
Alvina
Alvinia
Alvira
Alyce
Alyda
Alys
Alysa
Alyse
Alysia
Alyson
Alyss
Alyssa
Amabel
Amabelle
Amalea
Amalee
Amaleta
Amalia
Amalie
Amalita
Amalle
Amanda
Amandi
Amandie
Amandy
Amara
Amargo
Amata
Amber
Amberly
Ambrosia
Ambur
Ame
Amelia
Amelie
Amelina
Ameline
Amelita
Ami
Amie
Amity
Ammamaria
Amy
Ana
Anabel
Anabella
Anabelle
Anais
Analiese
Analise
Anallese
Anallise
Anastasia
Anastasie
Anastassia
Anatola
Andee
Andi
Andie
Andra
Andrea
Andreana
Andree
Andrei
Andria
Andriana
Andriette
Andromache
Andromeda
Andy
Anestassia
Anet
Anett
Anetta
Anette
Ange
Angel
Angela
Angele
Angelia
Angelica
Angelika
Angelina
Angeline
Angelique
Angelita
Angelle
Angie
Angil
Angy
Ania
Anica
Anissa
Anita
Anitra
Anja
Anjanette
Anjela
Ann
Ann-Mari
Ann-Marie
Anna
Anna-Diana
Anna-Diane
Anna-Maria
Annabal
Annabel
Annabela
Annabell
Annabella
Annabelle
Annadiana
Annadiane
Annalee
Annalena
Annaliese
Annalisa
Annalise
Annalyse
Annamari
Annamaria
Annamarie
Anne
Anne-Corinne
Anne-Mar
Anne-Marie
Annecorinne
Anneliese
Annelise
Annemarie
Annetta
Annette
Anni
Annice
Annie
Annissa
Annmaria
Annmarie
Annnora
Annora
Anny
Anselma
Ansley
Anstice
Anthe
Anthea
Anthia
Antoinette
Antonella
Antonetta
Antonia
Antonie
Antonietta
Antonina
Anya
Aphrodite
Appolonia
April
Aprilette
Ara
Arabel
Arabela
Arabele
Arabella
Arabelle
Arda
Ardath
Ardeen
Ardelia
Ardelis
Ardella
Ardelle
Arden
Ardene
Ardenia
Ardine
Ardis
Ardith
Ardra
Ardyce
Ardys
Ardyth
Aretha
Ariadne
Ariana
Arianne
Aridatha
Ariel
Ariela
Ariella
Arielle
Arlana
Arlee
Arleen
Arlen
Arlena
Arlene
Arleta
Arlette
Arleyne
Arlie
Arliene
Arlina
Arlinda
Arline
Arly
Arlyn
Arlyne
Aryn
Ashely
Ashlee
Ashleigh
Ashlen
Ashley
Ashli
Ashlie
Ashly
Asia
Astra
Astrid
Astrix
Atalanta
Athena
Athene
Atlanta
Atlante
Auberta
Aubine
Aubree
Aubrette
Aubrey
Aubrie
Aubry
Audi
Audie
Audra
Audre
Audrey
Audrie
Audry
Audrye
Audy
Augusta
Auguste
Augustina
Augustine
Aura
Aurea
Aurel
Aurelea
Aurelia
Aurelie
Auria
Aurie
Aurilia
Aurlie
Auroora
Aurora
Aurore
Austin
Austina
Austine
Ava
Aveline
Averil
Averyl
Avie
Avis
Aviva
Avivah
Avril
Avrit
Ayn
Bab
Babara
Babette
Babita
Babs
Bambi
Bambie
Bamby
Barb
Barbabra
Barbara
Barbara-Anne
Barbaraanne
Barbe
Barbee
Barbette
Barbey
Barbi
Barbie
Barbra
Barby
Bari
Barrie
Barry
Basia
Bathsheba
Batsheva
Bea
Beatrice
Beatrisa
Beatrix
Beatriz
Beau
Bebe
Becca
Becka
Becki
Beckie
Becky
Bee
Beilul
Beitris
Bekki
Bel
Belia
Belicia
Belinda
Belita
Bell
Bella
Bellamy
Bellanca
Belle
Bellina
Belva
Belvia
Bendite
Benedetta
Benedicta
Benedikta
Benetta
Benita
Benni
Bennie
Benny
Benoite
Berenice
Beret
Berget
Berna
Bernadene
Bernadette
Bernadina
Bernadine
Bernardina
Bernardine
Bernelle
Bernete
Bernetta
Bernette
Berni
Bernice
Bernie
Bernita
Berny
Berri
Berrie
Berry
Bert
Berta
Berte
Bertha
Berthe
Berti
Bertie
Bertina
Bertine
Berty
Beryl
Beryle
Bess
Bessie
Bessy
Beth
Bethanne
Bethany
Bethena
Bethina
Betsey
Betsy
Betta
Bette
Bette-Ann
Betteann
Betteanne
Betti
Bettie
Bettina
Bettine
Betty
Bettye
Beulah
Bev
Beverie
Beverlee
Beverlie
Beverly
Bevvy
Bianca
Bianka
Biddy
Bidget
Bill
Billi
Billie
Billy
Binni
Binnie
Binny
Bird
Birdie
Birgit
Birgitta
Blair
Blaire
Blake
Blakelee
Blakeley
Blanca
Blanch
Blancha
Blanche
Blinni
Blinnie
Blinny
Bliss
Blisse
Blithe
Blondell
Blondelle
Blondie
Blondy
Blythe
Bo
Bobbette
Bobbi
Bobbie
Bobby
Bobette
Bobina
Bobine
Bobinette
Bonita
Bonnee
Bonni
Bonnie
Bonny
Brana
Brandais
Brande
Brandea
Brandi
Brandice
Brandie
Brandise
Brandy
Brea
Breanne
Brear
Bree
Breena
Bren
Brena
Brenda
Brenn
Brenna
Brett
Bria
Briana
Brianna
Brianne
Bride
Bridget
Bridgett
Bridgette
Bridie
Brier
Brietta
Brigid
Brigida
Brigit
Brigitta
Brigitte
Brina
Briney
Briny
Brit
Brita
Britaney
Britani
Briteny
Britney
Britni
Britt
Britta
Brittan
Brittany
Britte
Brittney
Brook
Brooke
Brooks
Brunella
Brunhilda
Brunhilde
Bryana
Bryn
Bryna
Brynn
Brynna
Brynne
Buffy
Bunni
Bunnie
Bunny
Burta
Cabrina
Cacilia
Cacilie
Caitlin
Caitrin
Cal
Calida
Calla
Calley
Calli
Callida
Callie
Cally
Calypso
Cam
Camala
Camel
Camella
Camellia
Cameo
Cami
Camila
Camile
Camilla
Camille
Cammi
Cammie
Cammy
Canada
Candace
Candi
Candice
Candida
Candide
Candie
Candis
Candra
Candy
Cappella
Caprice
Cara
Caralie
Caren
Carena
Caresa
Caressa
Caresse
Carey
Cari
Caria
Carie
Caril
Carilyn
Carin
Carina
Carine
Cariotta
Carissa
Carita
Caritta
Carla
Carlee
Carleen
Carlen
Carlena
Carlene
Carley
Carli
Carlie
Carlin
Carlina
Carline
Carlisle
Carlita
Carlota
Carlotta
Carly
Carlye
Carlyn
Carlynn
Carlynne
Carma
Carmel
Carmela
Carmelia
Carmelina
Carmelita
Carmella
Carmelle
Carmen
Carmina
Carmine
Carmita
Carmon
Caro
Carol
Carol-Jean
Carola
Carolan
Carolann
Carole
Carolee
Caroleen
Carolie
Carolin
Carolina
Caroline
Caroljean
Carolyn
Carolyne
Carolynn
Caron
Carree
Carri
Carrie
Carrissa
Carrol
Carroll
Carry
Cary
Caryl
Caryn
Casandra
Casey
Casi
Casia
Casie
Cass
Cassandra
Cassandre
Cassandry
Cassaundra
Cassey
Cassi
Cassie
Cassondra
Cassy
Cat
Catarina
Cate
Caterina
Catha
Catharina
Catharine
Cathe
Cathee
Catherin
Catherina
Catherine
Cathi
Cathie
Cathleen
Cathlene
Cathrin
Cathrine
Cathryn
Cathy
Cathyleen
Cati
Catie
Catina
Catlaina
Catlee
Catlin
Catrina
Catriona
Caty
Cayla
Cecelia
Cecil
Cecile
Ceciley
Cecilia
Cecilla
Cecily
Ceil
Cele
Celene
Celesta
Celeste
Celestia
Celestina
Celestine
Celestyn
Celestyna
Celia
Celie
Celina
Celinda
Celine
Celinka
Celisse
Celle
Cesya
Chad
Chanda
Chandal
Chandra
Channa
Chantal
Chantalle
Charil
Charin
Charis
Charissa
Charisse
Charita
Charity
Charla
Charlean
Charleen
Charlena
Charlene
Charline
Charlot
Charlott
Charlotta
Charlotte
Charmain
Charmaine
Charmane
Charmian
Charmine
Charmion
Charo
Charyl
Chastity
Chelsae
Chelsea
Chelsey
Chelsie
Chelsy
Cher
Chere
Cherey
Cheri
Cherianne
Cherice
Cherida
Cherie
Cherilyn
Cherilynn
Cherin
Cherise
Cherish
Cherlyn
Cherri
Cherrita
Cherry
Chery
Cherye
Cheryl
Cheslie
Chiarra
Chickie
Chicky
Chiquita
Chloe
Chloette
Chloris
Chris
Chriss
Chrissa
Chrissie
Chrissy
Christa
Christabel
Christabella
Christabelle
Christal
Christalle
Christan
Christean
Christel
Christen
Christi
Christian
Christiana
Christiane
Christie
Christin
Christina
Christine
Christy
Christyna
Chrysa
Chrysler
Chrystal
Chryste
Chrystel
Ciara
Cicely
Cicily
Ciel
Cilka
Cinda
Cindee
Cindelyn
Cinderella
Cindi
Cindie
Cindra
Cindy
Cinnamon
Cissie
Cissy
Clair
Claire
Clara
Clarabelle
Clare
Claresta
Clareta
Claretta
Clarette
Clarey
Clari
Claribel
Clarice
Clarie
Clarinda
Clarine
Clarisa
Clarissa
Clarisse
Clarita
Clary
Claude
Claudelle
Claudetta
Claudette
Claudia
Claudie
Claudina
Claudine
Clea
Clem
Clemence
Clementia
Clementina
Clementine
Clemmie
Clemmy
Cleo
Cleopatra
Clerissa
Cleva
Clio
Clo
Cloe
Cloris
Clotilda
Clovis
Codee
Codi
Codie
Cody
Coleen
Colene
Coletta
Colette
Colleen
Collete
Collette
Collie
Colline
Colly
Con
Concettina
Conchita
Concordia
Conney
Conni
Connie
Conny
Consolata
Constance
Constancia
Constancy
Constanta
Constantia
Constantina
Constantine
Consuela
Consuelo
Cookie
Cora
Corabel
Corabella
Corabelle
Coral
Coralie
Coraline
Coralyn
Cordelia
Cordelie
Cordey
Cordie
Cordula
Cordy
Coreen
Corella
Corena
Corenda
Corene
Coretta
Corette
Corey
Cori
Corie
Corilla
Corina
Corine
Corinna
Corinne
Coriss
Corissa
Corliss
Corly
Cornela
Cornelia
Cornelle
Cornie
Corny
Correna
Correy
Corri
Corrianne
Corrie
Corrina
Corrine
Corrinne
Corry
Cortney
Cory
Cosetta
Cosette
Courtenay
Courtney
Cresa
Cris
Crissie
Crissy
Crista
Cristabel
Cristal
Cristen
Cristi
Cristie
Cristin
Cristina
Cristine
Cristionna
Cristy
Crysta
Crystal
Crystie
Cyb
Cybal
Cybel
Cybelle
Cybil
Cybill
Cyndi
Cyndy
Cynthea
Cynthia
Cynthie
Cynthy
Dacey
Dacia
Dacie
Dacy
Dael
Daffi
Daffie
Daffy
Dafna
Dagmar
Dahlia
Daile
Daisey
Daisi
Daisie
Daisy
Dale
Dalenna
Dalia
Dalila
Dallas
Daloris
Damara
Damaris
Damita
Dana
Danell
Danella
Danelle
Danette
Dani
Dania
Danica
Danice
Daniel
Daniela
Daniele
Daniella
Danielle
Danika
Danila
Danit
Danita
Danna
Danni
Dannie
Danny
Dannye
Danya
Danyelle
Danyette
Daphene
Daphna
Daphne
Dara
Darb
Darbie
Darby
Darcee
Darcey
Darci
Darcie
Darcy
Darda
Dareen
Darell
Darelle
Dari
Daria
Darice
Darla
Darleen
Darlene
Darline
Darryl
Darsey
Darsie
Darya
Daryl
Daryn
Dasha
Dasi
Dasie
Dasya
Datha
Daune
Daveen
Daveta
Davida
Davina
Davine
Davita
Dawn
Dawna
Dayle
Dayna
Dea
Deana
Deane
Deanna
Deanne
Deb
Debbi
Debbie
Debbra
Debby
Debee
Debera
Debi
Debor
Debora
Deborah
Debra
Dede
Dedie
Dedra
Dee
Dee Dee
Deeann
Deeanne
Deedee
Deena
Deerdre
Dehlia
Deidre
Deina
Deirdre
Del
Dela
Delaney
Delcina
Delcine
Delia
Delila
Delilah
Delinda
Dell
Della
Delly
Delora
Delores
Deloria
Deloris
Delphina
Delphine
Delphinia
Demeter
Demetra
Demetria
Demetris
Dena
Deni
Denice
Denise
Denna
Denni
Dennie
Denny
Deny
Denys
Denyse
Deonne
Desaree
Desdemona
Desirae
Desiree
Desiri
Deva
Devan
Devi
Devin
Devina
Devinne
Devon
Devondra
Devonna
Devonne
Devora
Dew
Di
Diahann
Diamond
Dian
Diana
Diandra
Diane
Diane-Marie
Dianemarie
Diann
Dianna
Dianne
Diannne
Didi
Dido
Diena
Dierdre
Dina
Dinah
Dinnie
Dinny
Dion
Dione
Dionis
Dionne
Dita
Dix
Dixie
Dode
Dodi
Dodie
Dody
Doe
Doll
Dolley
Dolli
Dollie
Dolly
Dolora
Dolores
Dolorita
Doloritas
Dominica
Dominique
Dona
Donella
Donelle
Donetta
Donia
Donica
Donielle
Donna
Donnajean
Donnamarie
Donni
Donnie
Donny
Dora
Doralia
Doralin
Doralyn
Doralynn
Doralynne
Dorcas
Dore
Doreen
Dorelia
Dorella
Dorelle
Dorena
Dorene
Doretta
Dorette
Dorey
Dori
Doria
Dorian
Dorice
Dorie
Dorine
Doris
Dorisa
Dorise
Dorit
Dorita
Doro
Dorolice
Dorolisa
Dorotea
Doroteya
Dorothea
Dorothee
Dorothy
Dorree
Dorri
Dorrie
Dorris
Dorry
Dorthea
Dorthy
Dory
Dosi
Dot
Doti
Dotti
Dottie
Dotty
Dove
Drea
Drew
Dulce
Dulcea
Dulci
Dulcia
Dulciana
Dulcie
Dulcine
Dulcinea
Dulcy
Dulsea
Dusty
Dyan
Dyana
Dyane
Dyann
Dyanna
Dyanne
Dyna
Dynah
E'Lane
Eada
Eadie
Eadith
Ealasaid
Eartha
Easter
Eba
Ebba
Ebonee
Ebony
Eda
Eddi
Eddie
Eddy
Ede
Edee
Edeline
Eden
Edi
Edie
Edin
Edita
Edith
Editha
Edithe
Ediva
Edna
Edwina
Edy
Edyth
Edythe
Effie
Eileen
Eilis
Eimile
Eirena
Ekaterina
Elaina
Elaine
Elana
Elane
Elayne
Elberta
Elbertina
Elbertine
Eleanor
Eleanora
Eleanore
Electra
Elena
Elene
Eleni
Elenore
Eleonora
Eleonore
Elfie
Elfreda
Elfrida
Elfrieda
Elga
Elianora
Elianore
Elicia
Elie
Elinor
Elinore
Elisa
Elisabet
Elisabeth
Elisabetta
Elise
Elisha
Elissa
Elita
Eliza
Elizabet
Elizabeth
Elka
Elke
Ella
Elladine
Elle
Ellen
Ellene
Ellette
Elli
Ellie
Ellissa
Elly
Ellyn
Ellynn
Elmira
Elna
Elnora
Elnore
Eloisa
Eloise
Elonore
Elora
Elsa
Elsbeth
Else
Elsey
Elsi
Elsie
Elsinore
Elspeth
Elsy
Elva
Elvera
Elvina
Elvira
Elwina
Elwira
Elyn
Elyse
Elysee
Elysha
Elysia
Elyssa
Em
Ema
Emalee
Emalia
Emanuela
Emelda
Emelia
Emelina
Emeline
Emelita
Emelyne
Emera
Emilee
Emili
Emilia
Emilie
Emiline
Emily
Emlyn
Emlynn
Emlynne
Emma
Emmalee
Emmaline
Emmalyn
Emmalynn
Emmalynne
Emmeline
Emmey
Emmi
Emmie
Emmy
Emmye
Emogene
Emyle
Emylee
Endora
Engracia
Enid
Enrica
Enrichetta
Enrika
Enriqueta
Enya
Eolanda
Eolande
Eran
Erda
Erena
Erica
Ericha
Ericka
Erika
Erin
Erina
Erinn
Erinna
Erma
Ermengarde
Ermentrude
Ermina
Erminia
Erminie
Erna
Ernaline
Ernesta
Ernestine
Ertha
Eryn
Esma
Esmaria
Esme
Esmeralda
Esmerelda
Essa
Essie
Essy
Esta
Estel
Estele
Estell
Estella
Estelle
Ester
Esther
Estrella
Estrellita
Ethel
Ethelda
Ethelin
Ethelind
Etheline
Ethelyn
Ethyl
Etta
Etti
Ettie
Etty
Eudora
Eugenia
Eugenie
Eugine
Eula
Eulalie
Eunice
Euphemia
Eustacia
Eva
Evaleen
Evangelia
Evangelin
Evangelina
Evangeline
Evania
Evanne
Eve
Eveleen
Evelina
Eveline
Evelyn
Evette
Evey
Evie
Evita
Evonne
Evvie
Evvy
Evy
Eyde
Eydie
Fabrianne
Fabrice
Fae
Faina
Faith
Fallon
Fan
Fanchette
Fanchon
Fancie
Fancy
Fanechka
Fania
Fanni
Fannie
Fanny
Fanya
Fara
Farah
Farand
Farica
Farra
Farrah
Farrand
Fatima
Faun
Faunie
Faustina
Faustine
Fawn
Fawna
Fawne
Fawnia
Fay
Faydra
Faye
Fayette
Fayina
Fayre
Fayth
Faythe
Federica
Fedora
Felecia
Felicdad
Felice
Felicia
Felicity
Felicle
Felipa
Felisha
Felita
Feliza
Fenelia
Feodora
Ferdinanda
Ferdinande
Fern
Fernanda
Fernande
Fernandina
Ferne
Fey
Fiann
Fianna
Fidela
Fidelia
Fidelity
Fifi
Fifine
Filia
Filide
Filippa
Fina
Fiona
Fionna
Fionnula
Fiorenze
Fleur
Fleurette
Flo
Flor
Flora
Florance
Flore
Florella
Florence
Florencia
Florentia
Florenza
Florette
Flori
Floria
Florice
Florida
Florie
Florina
Florinda
Floris
Florri
Florrie
Florry
Flory
Flossi
Flossie
Flossy
Flower
Fortuna
Fortune
Fran
France
Francene
Frances
Francesca
Francesmary
Francine
Francis
Francisca
Franciska
Francoise
Francyne
Frank
Frankie
Franky
Franni
Frannie
Franny
Frayda
Fred
Freda
Freddi
Freddie
Freddy
Fredelia
Frederica
Fredericka
Fredi
Fredia
Fredra
Fredrika
Freida
Frieda
Friederike
Fulvia
Gabbey
Gabbi
Gabbie
Gabey
Gabi
Gabie
Gabriel
Gabriela
Gabriell
Gabriella
Gabrielle
Gabriellia
Gabrila
Gaby
Gae
Gael
Gail
Gale
Gale
Galina
Garland
Garnet
Garnette
Gates
Gavra
Gavrielle
Gay
Gayla
Gayle
Gayleen
Gaylene
Gaynor
Gelya
Gen
Gena
Gene
Geneva
Genevieve
Genevra
Genia
Genna
Genni
Gennie
Gennifer
Genny
Genovera
Genvieve
George
Georgeanna
Georgeanne
Georgena
Georgeta
Georgetta
Georgette
Georgia
Georgiamay
Georgiana
Georgianna
Georgianne
Georgie
Georgina
Georgine
Gera
Geralda
Geraldina
Geraldine
Gerda
Gerhardine
Geri
Gerianna
Gerianne
Gerladina
Germain
Germaine
Germana
Gerri
Gerrie
Gerrilee
Gerry
Gert
Gerta
Gerti
Gertie
Gertrud
Gertruda
Gertrude
Gertrudis
Gerty
Giacinta
Giana
Gianina
Gianna
Gigi
Gilberta
Gilberte
Gilbertina
Gilbertine
Gilda
Gill
Gillan
Gilli
Gillian
Gillie
Gilligan
Gilly
Gina
Ginelle
Ginevra
Ginger
Ginni
Ginnie
Ginnifer
Ginny
Giorgia
Giovanna
Gipsy
Giralda
Gisela
Gisele
Gisella
Giselle
Gizela
Glad
Gladi
Gladis
Gladys
Gleda
Glen
Glenda
Glenine
Glenn
Glenna
Glennie
Glennis
Glori
Gloria
Gloriana
Gloriane
Glorianna
Glory
Glyn
Glynda
Glynis
Glynnis
Godiva
Golda
Goldarina
Goldi
Goldia
Goldie
Goldina
Goldy
Grace
Gracia
Gracie
Grata
Gratia
Gratiana
Gray
Grayce
Grazia
Gredel
Greer
Greta
Gretal
Gretchen
Grete
Gretel
Grethel
Gretna
Gretta
Grier
Griselda
Grissel
Guendolen
Guenevere
Guenna
Guglielma
Gui
Guillema
Guillemette
Guinevere
Guinna
Gunilla
Gunvor
Gus
Gusella
Gussi
Gussie
Gussy
Gusta
Gusti
Gustie
Gusty
Gwen
Gwendolen
Gwendolin
Gwendolyn
Gweneth
Gwenette
Gwenn
Gwenneth
Gwenni
Gwennie
Gwenny
Gwenora
Gwenore
Gwyn
Gwyneth
Gwynne
Gypsy
Hadria
Hailee
Haily
Haleigh
Halette
Haley
Hali
Halie
Halimeda
Halley
Halli
Hallie
Hally
Hana
Hanna
Hannah
Hanni
Hannibal
Hannie
Hannis
Hanny
Happy
Harlene
Harley
Harli
Harlie
Harmonia
Harmonie
Harmony
Harri
Harrie
Harriet
Harriett
Harrietta
Harriette
Harriot
Harriott
Hatti
Hattie
Hatty
Havivah
Hayley
Hazel
Heath
Heather
Heda
Hedda
Heddi
Heddie
Hedi
Hedvig
Hedwig
Hedy
Heida
Heide
Heidi
Heidie
Helaina
Helaine
Helen
Helen-Elizabeth
Helena
Helene
Helga
Helge
Helise
Hellene
Helli
Heloise
Helsa
Helyn
Hendrika
Henka
Henrie
Henrieta
Henrietta
Henriette
Henryetta
Hephzibah
Hermia
Hermina
Hermine
Herminia
Hermione
Herta
Hertha
Hester
Hesther
Hestia
Hetti
Hettie
Hetty
Hilarie
Hilary
Hilda
Hildagard
Hildagarde
Hilde
Hildegaard
Hildegarde
Hildy
Hillary
Hilliary
Hinda
Holley
Holli
Hollie
Holly
Holly-Anne
Hollyanne
Honey
Honor
Honoria
Hope
Horatia
Hortense
Hortensia
Hulda
Hyacinth
Hyacintha
Hyacinthe
Hyacinthia
Hyacinthie
Hynda
Ianthe
Ibbie
Ibby
Ida
Idalia
Idalina
Idaline
Idell
Idelle
Idette
Ike
Ikey
Ilana
Ileana
Ileane
Ilene
Ilise
Ilka
Illa
Ilona
Ilsa
Ilse
Ilysa
Ilyse
Ilyssa
Imelda
Imogen
Imogene
Imojean
Ina
Inci
Indira
Ines
Inesita
Inessa
Inez
Inga
Ingaberg
Ingaborg
Inge
Ingeberg
Ingeborg
Inger
Ingrid
Ingunna
Inna
Ioana
Iolande
Iolanthe
Iona
Iormina
Ira
Irena
Irene
Irina
Iris
Irita
Irma
Isa
Isabeau
Isabel
Isabelita
Isabella
Isabelle
Isador
Isadora
Isadore
Isahella
Iseabal
Isidora
Isis
Isobel
Issi
Issie
Issy
Ivett
Ivette
Ivie
Ivonne
Ivory
Ivy
Izabel
Izzi
Jacenta
Jacinda
Jacinta
Jacintha
Jacinthe
Jackelyn
Jacki
Jackie
Jacklin
Jacklyn
Jackquelin
Jackqueline
Jacky
Jaclin
Jaclyn
Jacquelin
Jacqueline
Jacquelyn
Jacquelynn
Jacquenetta
Jacquenette
Jacquetta
Jacquette
Jacqui
Jacquie
Jacynth
Jada
Jade
Jaime
Jaimie
Jaine
Jaleh
Jami
Jamie
Jamima
Jammie
Jan
Jana
Janaya
Janaye
Jandy
Jane
Janean
Janeczka
Janeen
Janel
Janela
Janella
Janelle
Janene
Janenna
Janessa
Janet
Janeta
Janetta
Janette
Janeva
Janey
Jania
Janice
Janie
Janifer
Janina
Janine
Janis
Janith
Janka
Janna
Jannel
Jannelle
Janot
Jany
Jaquelin
Jaquelyn
Jaquenetta
Jaquenette
Jaquith
Jasmin
Jasmina
Jasmine
Jayme
Jaymee
Jayne
Jaynell
Jazmin
Jean
Jeana
Jeane
Jeanelle
Jeanette
Jeanie
Jeanine
Jeanna
Jeanne
Jeannette
Jeannie
Jeannine
Jehanna
Jelene
Jemie
Jemima
Jemimah
Jemmie
Jemmy
Jen
Jena
Jenda
Jenelle
Jenette
Jeni
Jenica
Jeniece
Jenifer
Jeniffer
Jenilee
Jenine
Jenn
Jenna
Jennee
Jennette
Jenni
Jennica
Jennie
Jennifer
Jennilee
Jennine
Jenny
Jeraldine
Jeralee
Jere
Jeri
Jermaine
Jerrie
Jerrilee
Jerrilyn
Jerrine
Jerry
Jerrylee
Jess
Jessa
Jessalin
Jessalyn
Jessamine
Jessamyn
Jesse
Jesselyn
Jessi
Jessica
Jessie
Jessika
Jessy
Jewel
Jewell
Jewelle
Jill
Jillana
Jillane
Jillayne
Jilleen
Jillene
Jilli
Jillian
Jillie
Jilly
Jinny
Jo
Jo Ann
Jo-Ann
Jo-Anne
JoAnn
JoAnne
Joan
Joana
Joane
Joanie
Joann
Joanna
Joanne
Joannes
Jobey
Jobi
Jobie
Jobina
Joby
Jobye
Jobyna
Jocelin
Joceline
Jocelyn
Jocelyne
Jodee
Jodi
Jodie
Jody
Joela
Joelie
Joell
Joella
Joelle
Joellen
Joelly
Joellyn
Joelynn
Joete
Joey
Johanna
Johannah
Johnette
Johnna
Joice
Jojo
Jolee
Joleen
Jolene
Joletta
Joli
Jolie
Joline
Joly
Jolyn
Jolynn
Jonell
Joni
Jonie
Jonis
Jordain
Jordan
Jordana
Jordanna
Jorey
Jori
Jorie
Jorrie
Jorry
Joscelin
Josee
Josefa
Josefina
Joselyn
Josepha
Josephina
Josephine
Josey
Josi
Josie
Joslyn
Josselyn
Josy
Jourdan
Joy
Joya
Joyan
Joyann
Joyce
Joycelin
Joye
Joyous
Juana
Juanita
Jude
Judi
Judie
Judith
Juditha
Judy
Judye
Julee
Juli
Julia
Juliana
Juliane
Juliann
Julianna
Julianne
Julie
Julienne
Juliet
Julieta
Julietta
Juliette
Julina
Juline
Julissa
Julita
June
Junette
Junia
Junie
Junina
Justin
Justina
Justine
Jyoti
Kacey
Kacie
Kacy
Kai
Kaia
Kaila
Kaile
Kailey
Kaitlin
Kaitlyn
Kaitlynn
Kaja
Kakalina
Kala
Kaleena
Kali
Kalie
Kalila
Kalina
Kalinda
Kalindi
Kalli
Kally
Kameko
Kamila
Kamilah
Kamillah
Kandace
Kandy
Kania
Kanya
Kara
Kara-Lynn
Karalee
Karalynn
Kare
Karee
Karel
Karen
Karena
Kari
Karia
Karie
Karil
Karilynn
Karin
Karina
Karine
Kariotta
Karisa
Karissa
Karita
Karla
Karlee
Karleen
Karlen
Karlene
Karlie
Karlotta
Karlotte
Karly
Karlyn
Karmen
Karna
Karol
Karola
Karole
Karolina
Karoline
Karoly
Karon
Karrah
Karrie
Karry
Kary
Karyl
Karylin
Karyn
Kasey
Kass
Kassandra
Kassey
Kassi
Kassia
Kassie
Kaster
Kat
Kata
Katalin
Kate
Katee
Katerina
Katerine
Katey
Kath
Katha
Katharina
Katharine
Katharyn
Kathe
Katheleen
Katherina
Katherine
Katheryn
Kathi
Kathie
Kathleen
Kathlene
Kathlin
Kathrine
Kathryn
Kathryne
Kathy
Kathye
Kati
Katie
Katina
Katine
Katinka
Katleen
Katlin
Katrina
Katrine
Katrinka
Katti
Kattie
Katuscha
Katusha
Katy
Katya
Kay
Kaycee
Kaye
Kayla
Kayle
Kaylee
Kayley
Kaylil
Kaylyn
Kee
Keeley
Keelia
Keely
Kelcey
Kelci
Kelcie
Kelcy
Kelila
Kellen
Kelley
Kelli
Kellia
Kellie
Kellina
Kellsie
Kelly
Kellyann
Kelsey
Kelsi
Kelsy
Kendra
Kendre
Kenna
Keren
Keri
Keriann
Kerianne
Kerri
Kerrie
Kerrill
Kerrin
Kerry
Kerstin
Kesley
Keslie
Kessia
Kessiah
Ketti
Kettie
Ketty
Kevina
Kevyn
Ki
Kia
Kiah
Kial
Kiele
Kiersten
Kikelia
Kiley
Kim
Kimberlee
Kimberley
Kimberli
Kimberly
Kimberlyn
Kimbra
Kimmi
Kimmie
Kimmy
Kinna
Kip
Kipp
Kippie
Kippy
Kira
Kirbee
Kirbie
Kirby
Kiri
Kirsten
Kirsteni
Kirsti
Kirstie
Kirstin
Kirstyn
Kissee
Kissiah
Kissie
Kit
Kitti
Kittie
Kitty
Kizzee
Kizzie
Klara
Klarika
Klarrisa
Konstance
Konstanze
Koo
Kora
Koral
Koralle
Kordula
Kore
Korella
Koren
Koressa
Kori
Korie
Korney
Korrie
Korry
Kourtney
Kris
Krissie
Krissy
Krista
Kristal
Kristan
Kriste
Kristel
Kristen
Kristi
Kristien
Kristin
Kristina
Kristine
Kristy
Kristyn
Krysta
Krystal
Krystalle
Krystle
Krystyna
Kyla
Kyle
Kylen
Kylie
Kylila
Kylynn
Kym
Kynthia
Kyrstin
La
Lacee
Lacey
Lacie
Lacy
Ladonna
Laetitia
Laila
Laina
Lainey
Lamb
Lana
Lane
Lanette
Laney
Lani
Lanie
Lanita
Lanna
Lanni
Lanny
Lara
Laraine
Lari
Larina
Larine
Larisa
Larissa
Lark
Laryssa
Latashia
Latia
Latisha
Latrena
Latrina
Laura
Lauraine
Laural
Lauralee
Laure
Lauree
Laureen
Laurel
Laurella
Lauren
Laurena
Laurene
Lauretta
Laurette
Lauri
Laurianne
Laurice
Laurie
Lauryn
Lavena
Laverna
Laverne
Lavina
Lavinia
Lavinie
Layla
Layne
Layney
Lea
Leah
Leandra
Leann
Leanna
Leanne
Leanor
Leanora
Lebbie
Leda
Lee
LeeAnn
Leeann
Leeanne
Leela
Leelah
Leena
Leesa
Leese
Legra
Leia
Leiah
Leigh
Leigha
Leila
Leilah
Leisha
Lela
Lelah
Leland
Lelia
Lena
Lenee
Lenette
Lenka
Lenna
Lenora
Lenore
Leodora
Leoine
Leola
Leoline
Leona
Leonanie
Leone
Leonelle
Leonie
Leonora
Leonore
Leontine
Leontyne
Leora
Leorah
Leshia
Lesley
Lesli
Leslie
Lesly
Lesya
Leta
Lethia
Leticia
Letisha
Letitia
Letta
Letti
Lettie
Letty
Leyla
Lezlie
Lia
Lian
Liana
Liane
Lianna
Lianne
Lib
Libbey
Libbi
Libbie
Libby
Licha
Lida
Lidia
Lil
Lila
Lilah
Lilas
Lilia
Lilian
Liliane
Lilias
Lilith
Lilla
Lilli
Lillian
Lillis
Lilllie
Lilly
Lily
Lilyan
Lin
Lina
Lind
Linda
Lindi
Lindie
Lindsay
Lindsey
Lindsy
Lindy
Linea
Linell
Linet
Linette
Linn
Linnea
Linnell
Linnet
Linnie
Linzy
Liora
Liorah
Lira
Lisa
Lisabeth
Lisandra
Lisbeth
Lise
Lisetta
Lisette
Lisha
Lishe
Lissa
Lissi
Lissie
Lissy
Lita
Liuka
Livia
Liz
Liza
Lizabeth
Lizbeth
Lizette
Lizzie
Lizzy
Loella
Lois
Loise
Lola
Lolande
Loleta
Lolita
Lolly
Lona
Lonee
Loni
Lonna
Lonni
Lonnie
Lora
Lorain
Loraine
Loralee
Loralie
Loralyn
Loree
Loreen
Lorelei
Lorelle
Loren
Lorena
Lorene
Lorenza
Loretta
Lorettalorna
Lorette
Lori
Loria
Lorianna
Lorianne
Lorie
Lorilee
Lorilyn
Lorinda
Lorine
Lorita
Lorna
Lorne
Lorraine
Lorrayne
Lorri
Lorrie
Lorrin
Lorry
Lory
Lotta
Lotte
Lotti
Lottie
Lotty
Lou
Louella
Louisa
Louise
Louisette
Love
Luana
Luanna
Luce
Luci
Lucia
Luciana
Lucie
Lucienne
Lucila
Lucilia
Lucille
Lucina
Lucinda
Lucine
Lucita
Lucky
Lucretia
Lucy
Luella
Luelle
Luisa
Luise
Lula
Lulita
Lulu
Luna
Lura
Lurette
Lurleen
Lurlene
Lurline
Lusa
Lust
Lyda
Lydia
Lydie
Lyn
Lynda
Lynde
Lyndel
Lyndell
Lyndsay
Lyndsey
Lyndsie
Lyndy
Lynea
Lynelle
Lynett
Lynette
Lynn
Lynna
Lynne
Lynnea
Lynnell
Lynnelle
Lynnet
Lynnett
Lynnette
Lynsey
Lysandra
Lyssa
Mab
Mabel
Mabelle
Mable
Mada
Madalena
Madalyn
Maddalena
Maddi
Maddie
Maddy
Madel
Madelaine
Madeleine
Madelena
Madelene
Madelin
Madelina
Madeline
Madella
Madelle
Madelon
Madelyn
Madge
Madlen
Madlin
Madona
Madonna
Mady
Mae
Maegan
Mag
Magda
Magdaia
Magdalen
Magdalena
Magdalene
Maggee
Maggi
Maggie
Maggy
Magna
Mahala
Mahalia
Maia
Maible
Maiga
Mair
Maire
Mairead
Maisey
Maisie
Mala
Malanie
Malcah
Malena
Malia
Malina
Malinda
Malinde
Malissa
Malissia
Malka
Malkah
Mallissa
Mallorie
Mallory
Malorie
Malory
Malva
Malvina
Malynda
Mame
Mamie
Manda
Mandi
Mandie
Mandy
Manon
Manya
Mara
Marabel
Marcela
Marcelia
Marcella
Marcelle
Marcellina
Marcelline
Marchelle
Marci
Marcia
Marcie
Marcile
Marcille
Marcy
Mareah
Maren
Marena
Maressa
Marga
Margalit
Margalo
Margaret
Margareta
Margarete
Margaretha
Margarethe
Margaretta
Margarette
Margarita
Margaux
Marge
Margeaux
Margery
Marget
Margette
Margi
Margie
Margit
Marglerite
Margo
Margot
Margret
Marguerite
Margurite
Margy
Mari
Maria
Mariam
Marian
Mariana
Mariann
Marianna
Marianne
Maribel
Maribelle
Maribeth
Marice
Maridel
Marie
Marie-Ann
Marie-Jeanne
Marieann
Mariejeanne
Mariel
Mariele
Marielle
Mariellen
Marietta
Mariette
Marigold
Marijo
Marika
Marilee
Marilin
Marillin
Marilyn
Marin
Marina
Marinna
Marion
Mariquilla
Maris
Marisa
Mariska
Marissa
Marit
Marita
Maritsa
Mariya
Marj
Marja
Marje
Marji
Marjie
Marjorie
Marjory
Marjy
Marketa
Marla
Marlane
Marleah
Marlee
Marleen
Marlena
Marlene
Marley
Marlie
Marline
Marlo
Marlyn
Marna
Marne
Marney
Marni
Marnia
Marnie
Marquita
Marrilee
Marris
Marrissa
Marry
Marsha
Marsiella
Marta
Martelle
Martguerita
Martha
Marthe
Marthena
Marti
Martica
Martie
Martina
Martita
Marty
Martynne
Mary
Marya
Maryangelyn
Maryann
Maryanna
Maryanne
Marybelle
Marybeth
Maryellen
Maryjane
Maryjo
Maryl
Marylee
Marylin
Marylinda
Marylou
Marylynne
Maryrose
Marys
Marysa
Masha
Matelda
Mathilda
Mathilde
Matilda
Matilde
Matti
Mattie
Matty
Maud
Maude
Maudie
Maura
Maure
Maureen
Maureene
Maurene
Maurine
Maurise
Maurita
Mavis
Mavra
Max
Maxi
Maxie
Maxine
Maxy
May
Maya
Maybelle
Mayda
Maye
Mead
Meade
Meagan
Meaghan
Meara
Mechelle
Meg
Megan
Megen
Meggan
Meggi
Meggie
Meggy
Meghan
Meghann
Mehetabel
Mei
Meira
Mel
Mela
Melamie
Melania
Melanie
Melantha
Melany
Melba
Melesa
Melessa
Melicent
Melina
Melinda
Melinde
Melisa
Melisande
Melisandra
Melisenda
Melisent
Melissa
Melisse
Melita
Melitta
Mella
Melli
Mellicent
Mellie
Mellisa
Mellisent
Mellissa
Melloney
Melly
Melodee
Melodie
Melody
Melonie
Melony
Melosa
Melva
Mercedes
Merci
Mercie
Mercy
Meredith
Meredithe
Meridel
Meridith
Meriel
Merilee
Merilyn
Meris
Merissa
Merl
Merla
Merle
Merlina
Merline
Merna
Merola
Merralee
Merridie
Merrie
Merrielle
Merrile
Merrilee
Merrili
Merrill
Merrily
Merry
Mersey
Meryl
Meta
Mia
Micaela
Michaela
Michaelina
Michaeline
Michaella
Michal
Michel
Michele
Michelina
Micheline
Michell
Michelle
Micki
Mickie
Micky
Midge
Mignon
Mignonne
Miguela
Miguelita
Mildred
Mildrid
Milena
Milicent
Milissent
Milka
Milli
Millicent
Millie
Millisent
Milly
Milzie
Mimi
Min
Mina
Minda
Mindy
Minerva
Minetta
Minette
Minna
Minni
Minnie
Minny
Minta
Miquela
Mira
Mirabel
Mirabella
Mirabelle
Miran
Miranda
Mireielle
Mireille
Mirella
Mirelle
Miriam
Mirilla
Mirna
Misha
Missie
Missy
Misti
Misty
Mitra
Mitzi
Mmarianne
Modesta
Modestia
Modestine
Modesty
Moina
Moira
Moll
Mollee
Molli
Mollie
Molly
Mommy
Mona
Monah
Monica
Monika
Monique
Mora
Moreen
Morena
Morgan
Morgana
Morganica
Morganne
Morgen
Moria
Morissa
Morlee
Morna
Moselle
Moya
Moyna
Moyra
Mozelle
Muffin
Mufi
Mufinella
Muire
Mureil
Murial
Muriel
Murielle
Myna
Myra
Myrah
Myranda
Myriam
Myrilla
Myrle
Myrlene
Myrna
Myrta
Myrtia
Myrtice
Myrtie
Myrtle
Nada
Nadean
Nadeen
Nadia
Nadine
Nadiya
Nady
Nadya
Nalani
Nan
Nana
Nananne
Nance
Nancee
Nancey
Nanci
Nancie
Nancy
Nanete
Nanette
Nani
Nanice
Nanine
Nannette
Nanni
Nannie
Nanny
Nanon
Naoma
Naomi
Nara
Nari
Nariko
Nat
Nata
Natala
Natalee
Natalia
Natalie
Natalina
Nataline
Natalya
Natasha
Natassia
Nathalia
Nathalie
Natka
Natty
Neala
Neda
Nedda
Nedi
Neely
Neila
Neile
Neilla
Neille
Nela
Nelia
Nelie
Nell
Nelle
Nelli
Nellie
Nelly
Nena
Nerissa
Nerita
Nert
Nerta
Nerte
Nerti
Nertie
Nerty
Nessa
Nessi
Nessie
Nessy
Nesta
Netta
Netti
Nettie
Nettle
Netty
Nevsa
Neysa
Nichol
Nichole
Nicholle
Nicki
Nickie
Nicky
Nicol
Nicola
Nicole
Nicolea
Nicolette
Nicoli
Nicolina
Nicoline
Nicolle
Nidia
Nike
Niki
Nikki
Nikkie
Nikoletta
Nikolia
Nil
Nina
Ninetta
Ninette
Ninnetta
Ninnette
Ninon
Nisa
Nissa
Nisse
Nissie
Nissy
Nita
Nitin
Nixie
Noami
Noel
Noelani
Noell
Noella
Noelle
Noellyn
Noelyn
Noemi
Nola
Nolana
Nolie
Nollie
Nomi
Nona
Nonah
Noni
Nonie
Nonna
Nonnah
Nora
Norah
Norean
Noreen
Norene
Norina
Norine
Norma
Norri
Norrie
Norry
Nova
Novelia
Nydia
Nyssa
Octavia
Odele
Odelia
Odelinda
Odella
Odelle
Odessa
Odetta
Odette
Odilia
Odille
Ofelia
Ofella
Ofilia
Ola
Olenka
Olga
Olia
Olimpia
Olive
Olivette
Olivia
Olivie
Oliy
Ollie
Olly
Olva
Olwen
Olympe
Olympia
Olympie
Ondrea
Oneida
Onida
Onlea
Oona
Opal
Opalina
Opaline
Ophelia
Ophelie
Oprah
Ora
Oralee
Oralia
Oralie
Oralla
Oralle
Orel
Orelee
Orelia
Orelie
Orella
Orelle
Oreste
Oriana
Orly
Orsa
Orsola
Ortensia
Otha
Othelia
Othella
Othilia
Othilie
Ottilie
Pacifica
Page
Paige
Paloma
Pam
Pamela
Pamelina
Pamella
Pammi
Pammie
Pammy
Pandora
Pansie
Pansy
Paola
Paolina
Parwane
Pat
Patience
Patrica
Patrice
Patricia
Patrizia
Patsy
Patti
Pattie
Patty
Paula
Paula-Grace
Paule
Pauletta
Paulette
Pauli
Paulie
Paulina
Pauline
Paulita
Pauly
Pavia
Pavla
Pearl
Pearla
Pearle
Pearline
Peg
Pegeen
Peggi
Peggie
Peggy
Pen
Penelopa
Penelope
Penni
Pennie
Penny
Pepi
Pepita
Peri
Peria
Perl
Perla
Perle
Perri
Perrine
Perry
Persis
Pet
Peta
Petra
Petrina
Petronella
Petronia
Petronilla
Petronille
Petunia
Phaedra
Phaidra
Phebe
Phedra
Phelia
Phil
Philipa
Philippa
Philippe
Philippine
Philis
Phillida
Phillie
Phillis
Philly
Philomena
Phoebe
Phylis
Phyllida
Phyllis
Phyllys
Phylys
Pia
Pier
Pierette
Pierrette
Pietra
Piper
Pippa
Pippy
Polly
Pollyanna
Pooh
Poppy
Portia
Pris
Prisca
Priscella
Priscilla
Prissie
Pru
Prudence
Prudi
Prudy
Prue
Prunella
Queada
Queenie
Quentin
Querida
Quinn
Quinta
Quintana
Quintilla
Quintina
Rachael
Rachel
Rachele
Rachelle
Rae
Raf
Rafa
Rafaela
Rafaelia
Rafaelita
Ragnhild
Rahal
Rahel
Raina
Raine
Rakel
Ralina
Ramona
Ramonda
Rana
Randa
Randee
Randene
Randi
Randie
Randy
Ranee
Rani
Rania
Ranice
Ranique
Ranna
Raphaela
Raquel
Raquela
Rasia
Rasla
Raven
Ray
Raychel
Raye
Rayna
Raynell
Rayshell
Rea
Reba
Rebbecca
Rebe
Rebeca
Rebecca
Rebecka
Rebeka
Rebekah
Rebekkah
Ree
Reeba
Reena
Reeta
Reeva
Regan
Reggi
Reggie
Regina
Regine
Reiko
Reina
Reine
Remy
Rena
Renae
Renata
Renate
Rene
Renee
Renel
Renell
Renelle
Renie
Rennie
Reta
Retha
Revkah
Rey
Reyna
Rhea
Rheba
Rheta
Rhetta
Rhiamon
Rhianna
Rhianon
Rhoda
Rhodia
Rhodie
Rhody
Rhona
Rhonda
Riane
Riannon
Rianon
Rica
Ricca
Rici
Ricki
Rickie
Ricky
Riki
Rikki
Rina
Risa
Rissa
Rita
Riva
Rivalee
Rivi
Rivkah
Rivy
Roana
Roanna
Roanne
Robbi
Robbie
Robbin
Robby
Robbyn
Robena
Robenia
Roberta
Robin
Robina
Robinet
Robinett
Robinetta
Robinette
Robinia
Roby
Robyn
Roch
Rochell
Rochella
Rochelle
Rochette
Roda
Rodi
Rodie
Rodina
Romola
Romona
Romonda
Romy
Rona
Ronalda
Ronda
Ronica
Ronna
Ronni
Ronnica
Ronnie
Ronny
Roobbie
Rora
Rori
Rorie
Rory
Ros
Rosa
Rosabel
Rosabella
Rosabelle
Rosaleen
Rosalia
Rosalie
Rosalind
Rosalinda
Rosalinde
Rosaline
Rosalyn
Rosalynd
Rosamond
Rosamund
Rosana
Rosanna
Rosanne
Rosario
Rose
Roseann
Roseanna
Roseanne
Roselia
Roselin
Roseline
Rosella
Roselle
Roselyn
Rosemaria
Rosemarie
Rosemary
Rosemonde
Rosene
Rosetta
Rosette
Roshelle
Rosie
Rosina
Rosita
Roslyn
Rosmunda
Rosy
Row
Rowe
Rowena
Roxana
Roxane
Roxanna
Roxanne
Roxi
Roxie
Roxine
Roxy
Roz
Rozalie
Rozalin
Rozamond
Rozanna
Rozanne
Roze
Rozele
Rozella
Rozelle
Rozina
Rubetta
Rubi
Rubia
Rubie
Rubina
Ruby
Ruella
Ruperta
Ruth
Ruthann
Ruthanne
Ruthe
Ruthi
Ruthie
Ruthy
Ryann
Rycca
Saba
Sabina
Sabine
Sabra
Sabrina
Sacha
Sada
Sadella
Sadie
Sal
Sallee
Salli
Sallie
Sally
Sallyann
Sallyanne
Salome
Sam
Samantha
Samara
Samaria
Sammy
Samuela
Samuella
Sande
Sandi
Sandie
Sandra
Sandy
Sandye
Sapphira
Sapphire
Sara
Sara-Ann
Saraann
Sarah
Sarajane
Saree
Sarena
Sarene
Sarette
Sari
Sarina
Sarine
Sarita
Sascha
Sasha
Sashenka
Saudra
Saundra
Savina
Sayre
Scarlet
Scarlett
Scotty
Sean
Seana
Secunda
Seka
Sela
Selena
Selene
Selestina
Selia
Selie
Selina
Selinda
Seline
Sella
Selle
Selma
Sena
Sephira
Serena
Serene
Shaina
Shaine
Shalna
Shalne
Shamit
Shana
Shanda
Shandee
Shandie
Shandra
Shandy
Shane
Shani
Shanie
Shanna
Shannah
Shannen
Shannon
Shanon
Shanta
Shantee
Shara
Sharai
Shari
Sharia
Sharie
Sharity
Sharl
Sharla
Sharleen
Sharlene
Sharline
Sharna
Sharon
Sharona
Sharra
Sharron
Sharyl
Shaun
Shauna
Shawn
Shawna
Shawnee
Shay
Shayla
Shaylah
Shaylyn
Shaylynn
Shayna
Shayne
Shea
Sheba
Sheela
Sheelagh
Sheelah
Sheena
Sheeree
Sheila
Sheila-Kathryn
Sheilah
Sheilakathryn
Shel
Shela
Shelagh
Shelba
Shelbi
Shelby
Shelia
Shell
Shelley
Shelli
Shellie
Shelly
Shena
Sher
Sheree
Sheri
Sherie
Sheril
Sherill
Sherilyn
Sherline
Sherri
Sherrie
Sherry
Sherye
Sheryl
Shilpa
Shina
Shir
Shira
Shirah
Shirl
Shirlee
Shirleen
Shirlene
Shirley
Shirline
Shoshana
Shoshanna
Shoshie
Siana
Sianna
Sib
Sibbie
Sibby
Sibeal
Sibel
Sibella
Sibelle
Sibilla
Sibley
Sibyl
Sibylla
Sibylle
Sidoney
Sidonia
Sidonnie
Sigrid
Sile
Sileas
Silva
Silvana
Silvia
Silvie
Simona
Simone
Simonette
Simonne
Sindee
Sinead
Siobhan
Sioux
Siouxie
Sisely
Sisile
Sissie
Sissy
Sofia
Sofie
Solange
Sondra
Sonia
Sonja
Sonni
Sonnie
Sonnnie
Sonny
Sonya
Sophey
Sophi
Sophia
Sophie
Sophronia
Sorcha
Sosanna
Stace
Stacee
Stacey
Staci
Stacia
Stacie
Stacy
Stafani
Star
Starla
Starlene
Starlin
Starr
Stefa
Stefania
Stefanie
Steffane
Steffi
Steffie
Stella
Stepha
Stephana
Stephani
Stephanie
Stephannie
Stephenie
Stephi
Stephie
Stephine
Stesha
Stevana
Stevena
Stoddard
Storey
Storm
Stormi
Stormie
Stormy
Sue
Sue-elle
Suellen
Sukey
Suki
Sula
Sunny
Sunshine
Susan
Susana
Susanetta
Susann
Susanna
Susannah
Susanne
Susette
Susi
Susie
Sussi
Susy
Suzan
Suzann
Suzanna
Suzanne
Suzetta
Suzette
Suzi
Suzie
Suzy
Suzzy
Sybil
Sybila
Sybilla
Sybille
Sybyl
Sydel
Sydelle
Sydney
Sylvia
Sylvie
Tabatha
Tabbatha
Tabbi
Tabbie
Tabbitha
Tabby
Tabina
Tabitha
Taffy
Talia
Tallia
Tallie
Tally
Talya
Talyah
Tamar
Tamara
Tamarah
Tamarra
Tamera
Tami
Tamiko
Tamma
Tammara
Tammi
Tammie
Tammy
Tamra
Tana
Tandi
Tandie
Tandy
Tani
Tania
Tansy
Tanya
Tara
Tarah
Tarra
Tarrah
Taryn
Tasha
Tasia
Tate
Tatiana
Tatiania
Tatum
Tawnya
Tawsha
Teane
Ted
Tedda
Teddi
Teddie
Teddy
Tedi
Tedra
Teena
Tella
Teodora
Tera
Teresa
TeresaAnne
Terese
Teresina
Teresita
Teressa
Teri
Teriann
Terina
Terra
Terri
Terri-Jo
Terrianne
Terrie
Terry
Terrye
Tersina
Teryl
Terza
Tess
Tessa
Tessi
Tessie
Tessy
Thalia
Thea
Theada
Theadora
Theda
Thekla
Thelma
Theo
Theodora
Theodosia
Theresa
Theresa-Marie
Therese
Theresina
Theresita
Theressa
Therine
Thia
Thomasa
Thomasin
Thomasina
Thomasine
Tia
Tiana
Tiena
Tierney
Tiertza
Tiff
Tiffani
Tiffanie
Tiffany
Tiffi
Tiffie
Tiffy
Tilda
Tildi
Tildie
Tildy
Tillie
Tilly
Tim
Timi
Timmi
Timmie
Timmy
Timothea
Tina
Tine
Tiphani
Tiphanie
Tiphany
Tish
Tisha
Tobe
Tobey
Tobi
Tobie
Toby
Tobye
Toinette
Toma
Tomasina
Tomasine
Tomi
Tomiko
Tommi
Tommie
Tommy
Toni
Tonia
Tonie
Tony
Tonya
Tootsie
Torey
Tori
Torie
Torrie
Tory
Tova
Tove
Trace
Tracee
Tracey
Traci
Tracie
Tracy
Trenna
Tresa
Trescha
Tressa
Tricia
Trina
Trish
Trisha
Trista
Trix
Trixi
Trixie
Trixy
Truda
Trude
Trudey
Trudi
Trudie
Trudy
Trula
Tuesday
Twila
Twyla
Tybi
Tybie
Tyne
Ula
Ulla
Ulrica
Ulrika
Ulrike
Umeko
Una
Ursa
Ursala
Ursola
Ursula
Ursulina
Ursuline
Uta
Val
Valaree
Valaria
Vale
Valeda
Valencia
Valene
Valenka
Valentia
Valentina
Valentine
Valera
Valeria
Valerie
Valery
Valerye
Valida
Valina
Valli
Vallie
Vally
Valma
Valry
Van
Vanda
Vanessa
Vania
Vanna
Vanni
Vannie
Vanny
Vanya
Veda
Velma
Velvet
Vena
Venita
Ventura
Venus
Vera
Veradis
Vere
Verena
Verene
Veriee
Verile
Verina
Verine
Verla
Verna
Vernice
Veronica
Veronika
Veronike
Veronique
Vi
Vicki
Vickie
Vicky
Victoria
Vida
Viki
Vikki
Vikkie
Vikky
Vilhelmina
Vilma
Vin
Vina
Vinita
Vinni
Vinnie
Vinny
Viola
Violante
Viole
Violet
Violetta
Violette
Virgie
Virgina
Virginia
Virginie
Vita
Vitia
Vitoria
Vittoria
Viv
Viva
Vivi
Vivia
Vivian
Viviana
Vivianna
Vivianne
Vivie
Vivien
Viviene
Vivienne
Viviyan
Vivyan
Vivyanne
Vonni
Vonnie
Vonny
Wallie
Wallis
Wally
Waly
Wanda
Wandie
Wandis
Waneta
Wenda
Wendeline
Wendi
Wendie
Wendy
Wenona
Wenonah
Whitney
Wileen
Wilhelmina
Wilhelmine
Wilie
Willa
Willabella
Willamina
Willetta
Willette
Willi
Willie
Willow
Willy
Willyt
Wilma
Wilmette
Wilona
Wilone
Wilow
Windy
Wini
Winifred
Winna
Winnah
Winne
Winni
Winnie
Winnifred
Winny
Winona
Winonah
Wren
Wrennie
Wylma
Wynn
Wynne
Wynnie
Wynny
Xaviera
Xena
Xenia
Xylia
Xylina
Yalonda
Yehudit
Yelena
Yetta
Yettie
Yetty
Yevette
Yoko
Yolanda
Yolande
Yolane
Yolanthe
Yonina
Yoshi
Yoshiko
Yovonnda
Yvette
Yvonne
Zabrina
Zahara
Zandra
Zaneta
Zara
Zarah
Zaria
Zarla
Zea
Zelda
Zelma
Zena
Zenia
Zia
Zilvia
Zita
Zitella
Zoe
Zola
Zonda
Zondra
Zonnya
Zora
Zorah
Zorana
Zorina
Zorine
Zsa Zsa
Zsazsa
Zulema
Zuzana
Mikako
Kaari
Gita
Geeta
Aamir
Aaron
Abbey
Abbie
Abbot
Abbott
Abby
Abdel
Abdul
Abdulkarim
Abdullah
Abe
Abel
Abelard
Abner
Abraham
Abram
Ace
Adair
Adam
Adams
Addie
Adger
Aditya
Adlai
Adnan
Adolf
Adolfo
Adolph
Adolphe
Adolpho
Adolphus
Adrian
Adrick
Adrien
Agamemnon
Aguinaldo
Aguste
Agustin
Aharon
Ahmad
Ahmed
Ahmet
Ajai
Ajay
Al
Alaa
Alain
Alan
Alasdair
Alastair
Albatros
Albert
Alberto
Albrecht
Alden
Aldis
Aldo
Aldric
Aldrich
Aldus
Aldwin
Alec
Aleck
Alejandro
Aleks
Aleksandrs
Alessandro
Alex
Alexander
Alexei
Alexis
Alf
Alfie
Alfonse
Alfonso
Alfonzo
Alford
Alfred
Alfredo
Algernon
Ali
Alic
Alister
Alix
Allah
Allan
Allen
Alley
Allie
Allin
Allyn
Alonso
Alonzo
Aloysius
Alphonse
Alphonso
Alston
Alton
Alvin
Alwin
Amadeus
Ambros
Ambrose
Ambrosi
Ambrosio
Ambrosius
Amery
Amory
Amos
Anatol
Anatole
Anatollo
Anatoly
Anders
Andie
Andonis
Andre
Andrea
Andreas
Andrej
Andres
Andrew
Andrey
Andri
Andros
Andrus
Andrzej
Andy
Angel
Angelico
Angelo
Angie
Angus
Ansel
Ansell
Anselm
Anson
Anthony
Antin
Antoine
Anton
Antone
Antoni
Antonin
Antonino
Antonio
Antonius
Antony
Anurag
Apollo
Apostolos
Aram
Archibald
Archibold
Archie
Archon
Archy
Arel
Ari
Arie
Ariel
Aristotle
Arlo
Armand
Armando
Armond
Armstrong
Arne
Arnie
Arnold
Arnoldo
Aron
Arron
Art
Arther
Arthur
Artie
Artur
Arturo
Arvie
Arvin
Arvind
Arvy
Ash
Ashby
Ashish
Ashley
Ashton
Aub
Aube
Aubert
Aubrey
Augie
August
Augustin
Augustine
Augusto
Augustus
Austen
Austin
Ave
Averell
Averil
Averill
Avery
Avi
Avraham
Avram
Avrom
Axel
Aylmer
Aziz
Bailey
Bailie
Baillie
Baily
Baird
Baldwin
Bancroft
Barbabas
Barclay
Bard
Barde
Barn
Barnabas
Barnabe
Barnaby
Barnard
Barnebas
Barnett
Barney
Barnie
Barny
Baron
Barr
Barret
Barrett
Barri
Barrie
Barris
Barron
Barry
Bart
Bartel
Barth
Barthel
Bartholemy
Bartholomeo
Bartholomeus
Bartholomew
Bartie
Bartlet
Bartlett
Bartolemo
Bartolomei
Bartolomeo
Barton
Barty
Bary
Basil
Batholomew
Baxter
Bay
Bayard
Beale
Bealle
Bear
Bearnard
Beau
Beaufort
Beauregard
Beck
Bela
Ben
Benedict
Bengt
Benito
Benjamen
Benjamin
Benji
Benjie
Benjy
Benn
Bennet
Bennett
Bennie
Benny
Benson
Bentley
Benton
Beowulf
Berchtold
Berk
Berke
Berkeley
Berkie
Berkley
Bernard
Bernardo
Bernd
Bernhard
Bernie
Bert
Bertie
Bertram
Bertrand
Bharat
Biff
Bill
Billie
Billy
Bing
Binky
Bishop
Bjorn
Bjorne
Blaine
Blair
Blake
Blare
Blayne
Bo
Bob
Bobbie
Bobby
Bogart
Bogdan
Boniface
Boris
Boyce
Boyd
Brad
Braden
Bradford
Bradley
Bradly
Brady
Brandon
Brandy
Brant
Brendan
Brent
Bret
Brett
Brewer
Brewster
Brian
Brice
Briggs
Brinkley
Britt
Brock
Broddie
Broddy
Broderic
Broderick
Brodie
Brody
Bronson
Brook
Brooke
Brooks
Bruce
Bruno
Bryan
Bryant
Bryce
Bryn
Bryon
Bubba
Buck
Bucky
Bud
Buddy
Burgess
Burke
Burl
Burnaby
Burt
Burton
Buster
Butch
Butler
Byram
Byron
Caesar
Cain
Cal
Caldwell
Caleb
Calhoun
Calvin
Cam
Cameron
Cammy
Carey
Carl
Carleigh
Carlie
Carlin
Carlo
Carlos
Carlton
Carlyle
Carmine
Carroll
Carson
Carsten
Carter
Cary
Caryl
Case
Casey
Caspar
Casper
Cass
Cat
Cecil
Cesar
Chad
Chadd
Chaddie
Chaddy
Chadwick
Chaim
Chalmers
Chan
Chance
Chancey
Chanderjit
Chandler
Chane
Chariot
Charles
Charleton
Charley
Charlie
Charlton
Chas
Chase
Chaunce
Chauncey
Che
Chelton
Chen
Chester
Cheston
Chet
Chev
Chevalier
Chevy
Chip
Chris
Chrissy
Christ
Christian
Christiano
Christie
Christof
Christofer
Christoph
Christophe
Christopher
Christorpher
Christos
Christy
Chrisy
Chuck
Churchill
Clair
Claire
Clancy
Clarance
Clare
Clarence
Clark
Clarke
Claude
Claudio
Claudius
Claus
Clay
Clayborn
Clayborne
Claybourne
Clayton
Cleland
Clem
Clemens
Clement
Clemente
Clemmie
Cletus
Cleveland
Cliff
Clifford
Clifton
Clint
Clinten
Clinton
Clive
Clyde
Cob
Cobb
Cobbie
Cobby
Cody
Colbert
Cole
Coleman
Colin
Collin
Collins
Conan
Connie
Connolly
Connor
Conrad
Conroy
Constantin
Constantine
Constantinos
Conway
Cooper
Corbin
Corby
Corey
Corky
Cornelius
Cornellis
Corrie
Cortese
Corwin
Cory
Cosmo
Costa
Courtney
Craig
Crawford
Creighton
Cris
Cristopher
Curt
Curtice
Curtis
Cy
Cyril
Cyrill
Cyrille
Cyrillus
Cyrus
Dabney
Daffy
Dale
Dallas
Dalton
Damian
Damien
Damon
Dan
Dana
Dane
Dani
Danie
Daniel
Dannie
Danny
Dante
Darby
Darcy
Daren
Darian
Darien
Darin
Dario
Darius
Darrel
Darrell
Darren
Darrick
Darrin
Darryl
Darth
Darwin
Daryl
Daryle
Dave
Davey
David
Davidde
Davide
Davidson
Davie
Davin
Davis
Davon
Davoud
Davy
Dawson
Dean
Deane
Del
Delbert
Dell
Delmar
Demetre
Demetri
Demetris
Demetrius
Demosthenis
Denis
Dennie
Dennis
Denny
Derby
Derek
Derick
Derk
Derrek
Derrick
Derrin
Derrol
Derron
Deryl
Desmond
Desmund
Devin
Devon
Dewey
Dewitt
Dexter
Dick
Dickey
Dickie
Diego
Dieter
Dietrich
Dillon
Dimitri
Dimitrios
Dimitris
Dimitrou
Dimitry
Dino
Dion
Dionis
Dionysus
Dirk
Dmitri
Dom
Domenic
Domenico
Dominic
Dominick
Dominique
Don
Donal
Donald
Donn
Donnie
Donny
Donovan
Dorian
Dory
Doug
Douggie
Dougie
Douglas
Douglass
Douglis
Dov
Doyle
Drake
Drew
Dru
Dryke
Duane
Dudley
Duffie
Duffy
Dugan
Duke
Dunc
Duncan
Dunstan
Durand
Durant
Durante
Durward
Dustin
Dwain
Dwaine
Dwane
Dwayne
Dwight
Dylan
Dyson
Earl
Earle
Easton
Eben
Ebeneser
Ebenezer
Eberhard
Ed
Eddie
Eddy
Edgar
Edgardo
Edie
Edmond
Edmund
Edouard
Edsel
Eduard
Eduardo
Edward
Edwin
Efram
Egbert
Ehud
Elbert
Elden
Eldon
Eli
Elias
Elihu
Elijah
Eliot
Eliott
Elisha
Elliot
Elliott
Ellis
Ellsworth
Ellwood
Elmer
Elmore
Elnar
Elric
Elroy
Elton
Elvin
Elvis
Elwin
Elwood
Elwyn
Ely
Emanuel
Emerson
Emery
Emil
Emile
Emilio
Emmanuel
Emmery
Emmet
Emmett
Emmit
Emmott
Emmy
Emory
Ender
Engelbart
Engelbert
Englebart
Englebert
Enoch
Enrico
Enrique
Ephraim
Ephram
Ephrayim
Ephrem
Er
Erasmus
Erastus
Erek
Erhard
Erhart
Eric
Erich
Erick
Erik
Erin
Erl
Ernest
Ernesto
Ernie
Ernst
Erny
Errol
Ervin
Erwin
Esau
Esme
Esteban
Ethan
Ethelbert
Ethelred
Etienne
Euclid
Eugen
Eugene
Eustace
Ev
Evan
Evelyn
Everard
Everett
Ewan
Ewart
Ez
Ezechiel
Ezekiel
Ezra
Fabian
Fabio
Fairfax
Farley
Fazeel
Federico
Felice
Felicio
Felipe
Felix
Ferd
Ferdie
Ferdinand
Ferdy
Fergus
Ferguson
Ferinand
Fernando
Fidel
Filbert
Filip
Filipe
Filmore
Finley
Finn
Fitz
Fitzgerald
Flem
Fleming
Flemming
Fletch
Fletcher
Flin
Flinn
Flint
Flipper
Florian
Floyd
Flynn
Fons
Fonsie
Fonz
Fonzie
Forbes
Ford
Forest
Forester
Forrest
Forrester
Forster
Foster
Fowler
Fox
Fran
Francesco
Francis
Francisco
Francois
Frank
Frankie
Franklin
Franklyn
Franky
Frans
Franz
Fraser
Frazier
Fred
Freddie
Freddy
Frederic
Frederich
Frederick
Frederico
Frederik
Fredric
Fredrick
Freeman
Freemon
Fremont
French
Friedric
Friedrich
Friedrick
Fritz
Fulton
Fyodor
Gabe
Gabriel
Gabriele
Gabriell
Gabriello
Gail
Gale
Galen
Gallagher
Gamaliel
Garcia
Garcon
Gardener
Gardiner
Gardner
Garey
Garfield
Garfinkel
Garold
Garp
Garret
Garrett
Garrot
Garrott
Garry
Garth
Garv
Garvey
Garvin
Garvy
Garwin
Garwood
Gary
Gaspar
Gasper
Gaston
Gav
Gaven
Gavin
Gavriel
Gay
Gayle
Gearard
Gene
Geo
Geof
Geoff
Geoffrey
Geoffry
Georg
George
Georges
Georgia
Georgie
Georgy
Gerald
Geraldo
Gerard
Gere
Gerhard
Gerhardt
Geri
Germaine
Gerold
Gerome
Gerrard
Gerri
Gerrit
Gerry
Gershom
Gershon
Giacomo
Gian
Giancarlo
Giavani
Gibb
Gideon
Giff
Giffard
Giffer
Giffie
Gifford
Giffy
Gil
Gilbert
Gilberto
Gilburt
Giles
Gill
Gilles
Ginger
Gino
Giordano
Giorgi
Giorgio
Giovanne
Giovanni
Giraldo
Giraud
Giuseppe
Glen
Glenn
Glynn
Godard
Godart
Goddard
Goddart
Godfree
Godfrey
Godfry
Godwin
Gomer
Gonzales
Gonzalo
Goober
Goose
Gordan
Gordie
Gordon
Grace
Grady
Graehme
Graeme
Graham
Graig
Grant
Granville
Greg
Gregg
Greggory
Gregor
Gregorio
Gregory
Gretchen
Griff
Griffin
Griffith
Griswold
Grove
Grover
Guido
Guillaume
Guillermo
Gunner
Gunter
Gunther
Gus
Gustaf
Gustav
Gustave
Gustavo
Gustavus
Guthrey
Guthrie
Guthry
Guy
Hadleigh
Hadley
Hadrian
Hagan
Hagen
Hailey
Hakeem
Hakim
Hal
Hale
Haleigh
Haley
Hall
Hallam
Halvard
Ham
Hamel
Hamid
Hamil
Hamilton
Hamish
Hamlen
Hamlet
Hamlin
Hammad
Hamnet
Han
Hanan
Hanford
Hank
Hannibal
Hans
Hans-Peter
Hansel
Hanson
Harald
Harcourt
Hari
Harlan
Harland
Harley
Harlin
Harman
Harmon
Harold
Harris
Harrison
Harrold
Harry
Hart
Hartley
Hartwell
Harv
Harvard
Harvey
Harvie
Harwell
Hasheem
Hashim
Haskel
Haskell
Hassan
Hastings
Hasty
Haven
Hayden
Haydon
Hayes
Hayward
Haywood
Hazel
Heath
Heathcliff
Hebert
Hector
Heinrich
Heinz
Helmuth
Henderson
Hendrick
Hendrik
Henri
Henrie
Henrik
Henrique
Henry
Herb
Herbert
Herbie
Herby
Hercule
Hercules
Herculie
Herman
Hermann
Hermon
Hermy
Hernando
Herold
Herrick
Herrmann
Hersch
Herschel
Hersh
Hershel
Herve
Hervey
Hew
Hewe
Hewet
Hewett
Hewie
Hewitt
Heywood
Hezekiah
Higgins
Hilary
Hilbert
Hill
Hillard
Hillary
Hillel
Hillery
Hilliard
Hilton
Hiralal
Hiram
Hiro
Hirsch
Hobart
Hodge
Hogan
Hollis
Holly
Homer
Horace
Horacio
Horatio
Horatius
Horst
Howard
Howie
Hoyt
Hubert
Hudson
Huey
Hugh
Hugo
Humbert
Humphrey
Hunt
Hunter
Huntington
Huntlee
Huntley
Hurley
Husain
Husein
Hussein
Hy
Hyatt
Hyman
Hymie
Iago
Iain
Ian
Ibrahim
Ichabod
Iggie
Iggy
Ignace
Ignacio
Ignacius
Ignatius
Ignaz
Ignazio
Igor
Ike
Ikey
Immanuel
Ingamar
Ingelbert
Ingemar
Inglebert
Ingmar
Ingram
Inigo
Ira
Irvin
Irvine
Irving
Irwin
Isa
Isaac
Isaak
Isador
Isadore
Isaiah
Ishmael
Isidore
Ismail
Israel
Istvan
Ivan
Ivor
Izaak
Izak
Izzy
Jabez
Jack
Jackie
Jackson
Jacob
Jacques
Jae
Jaime
Jake
Jakob
James
Jameson
Jamey
Jamie
Jan
Janos
Janus
Jared
Jarrett
Jarvis
Jason
Jasper
Javier
Jay
Jean
Jean-Christophe
Jean-Francois
Jean-Lou
Jean-Luc
Jean-Marc
Jean-Paul
Jean-Pierre
Jeb
Jed
Jedediah
Jef
Jeff
Jefferey
Jefferson
Jeffery
Jeffie
Jeffrey
Jeffry
Jefry
Jehu
Jennings
Jens
Jephthah
Jerald
Jeramie
Jere
Jereme
Jeremiah
Jeremias
Jeremie
Jeremy
Jermain
Jermaine
Jermayne
Jerold
Jerome
Jeromy
Jerri
Jerrie
Jerrold
Jerrome
Jerry
Jervis
Jerzy
Jess
Jesse
Jessee
Jessey
Jessie
Jesus
Jeth
Jethro
Jim
Jimbo
Jimmie
Jimmy
Jo
Joab
Joachim
Joao
Joaquin
Job
Jock
Jodi
Jodie
Jody
Joe
Joel
Joey
Johan
Johann
Johannes
John
John-David
John-Patrick
Johnathan
Johnathon
Johnnie
Johnny
Johny
Jon
Jonah
Jonas
Jonathan
Jonathon
Jonny
Jordan
Jordon
Jordy
Jorge
Jory
Jose
Josef
Joseph
Josephus
Josh
Joshua
Joshuah
Josiah
Jotham
Juan
Juanita
Jud
Judah
Judas
Judd
Jude
Judith
Judson
Judy
Juergen
Jule
Jules
Julian
Julie
Julio
Julius
Justin
Justis
Kaiser
Kaleb
Kalil
Kalle
Kalman
Kalvin
Kam
Kane
Kareem
Karel
Karim
Karl
Karsten
Kaspar
Keefe
Keenan
Keene
Keil
Keith
Kellen
Kelley
Kelly
Kelsey
Kelvin
Kelwin
Ken
Kendal
Kendall
Kendrick
Kenn
Kennedy
Kenneth
Kenny
Kent
Kenton
Kenyon
Kermie
Kermit
Kerry
Kevan
Kevin
Kim
Kimball
Kimmo
Kin
Kincaid
King
Kingsley
Kingsly
Kingston
Kip
Kirby
Kirk
Kit
Klaus
Klee
Knox
Konrad
Konstantin
Kory
Kostas
Kraig
Kris
Krishna
Kristian
Kristopher
Kristos
Kurt
Kurtis
Kyle
Laird
Lamar
Lambert
Lamont
Lance
Lancelot
Lane
Langston
Lanny
Larry
Lars
Laurance
Lauren
Laurence
Laurens
Laurent
Laurie
Lawerence
Lawrence
Lawson
Lawton
Lay
Layton
Lazar
Lazare
Lazaro
Lazarus
Lazlo
Lee
Lefty
Leif
Leigh
Leighton
Leland
Lem
Lemar
Lemmie
Lemmy
Lemuel
Len
Lenard
Lennie
Lenny
Leo
Leon
Leonard
Leonardo
Leonerd
Leonhard
Leonid
Leonidas
Leopold
Leroy
Les
Lesley
Leslie
Lester
Lev
Levi
Levin
Levon
Levy
Lew
Lewis
Lex
Liam
Lin
Lincoln
Lind
Lindsay
Lindsey
Lindy
Linoel
Linus
Lion
Lionel
Lionello
Llewellyn
Lloyd
Locke
Lockwood
Logan
Lon
Lonnie
Lonny
Loren
Lorenzo
Lorne
Lorrie
Lothar
Lou
Louie
Louis
Lovell
Lowell
Lucas
Luce
Lucian
Luciano
Lucien
Lucio
Lucius
Ludvig
Ludwig
Luigi
Luis
Lukas
Luke
Luther
Lyle
Lyn
Lyndon
Lynn
Mac
Mace
Mack
Mackenzie
Maddie
Maddy
Madison
Magnum
Magnus
Mahesh
Mahmoud
Mahmud
Maison
Major
Malcolm
Manfred
Manish
Manny
Manuel
Marc
Marcel
Marcello
Marcellus
Marcelo
Marchall
Marcio
Marco
Marcos
Marcus
Marietta
Marilu
Mario
Marion
Marius
Mark
Marko
Markos
Markus
Marlin
Marlo
Marlon
Marlow
Marlowe
Marmaduke
Marsh
Marshal
Marshall
Mart
Martainn
Marten
Martie
Martin
Martino
Marty
Martyn
Marv
Marve
Marven
Marvin
Marwin
Mason
Mateo
Mathew
Mathias
Matias
Matt
Matteo
Matthaeus
Mattheus
Matthew
Matthias
Matthieu
Matthiew
Matthus
Mattias
Mattie
Matty
Maurice
Mauricio
Maurie
Maurise
Maurits
Mauritz
Maury
Max
Maxfield
Maxie
Maxim
Maximilian
Maximilien
Maxwell
Mayer
Maynard
Maynord
Mayor
Mead
Meade
Meier
Meir
Mel
Melvin
Melvyn
Menard
Mendel
Mendie
Meredeth
Meredith
Merell
Merill
Merle
Merlin
Merrel
Merrick
Merril
Merrill
Merry
Merv
Mervin
Merwin
Meryl
Meyer
Mic
Micah
Michael
Michail
Michal
Michale
Micheal
Micheil
Michel
Michele
Mick
Mickey
Mickie
Micky
Miguel
Mika
Mikael
Mike
Mikel
Mikey
Mikhail
Miles
Millicent
Milo
Milt
Milton
Mischa
Mitch
Mitchael
Mitchel
Mitchell
Moe
Mohamad
Mohamed
Mohammad
Mohammed
Mohan
Moise
Moises
Moishe
Monroe
Montague
Monte
Montgomery
Monty
Moore
Mordecai
Morgan
Morlee
Morley
Morly
Morrie
Morris
Morry
Morse
Mort
Morten
Mortie
Mortimer
Morton
Morty
Mose
Moses
Moshe
Moss
Muffin
Mugsy
Muhammad
Munmro
Munroe
Murdoch
Murdock
Murphy
Murray
Mustafa
Myke
Myles
Mylo
Myron
Nahum
Napoleon
Nat
Natale
Nate
Nathan
Nathanael
Nathanial
Nathaniel
Nathanil
Neal
Neale
Neall
Nealon
Nealson
Nealy
Ned
Neddie
Neddy
Neel
Neil
Nels
Nelsen
Nelson
Nero
Neron
Nester
Nestor
Nev
Nevil
Nevile
Neville
Nevin
Nevins
Newton
Niall
Niccolo
Nicholas
Nichole
Nichols
Nick
Nickey
Nickie
Nickolas
Nicky
Nico
Nicolas
Niels
Nigel
Niki
Nikita
Nikki
Nikolai
Nikos
Niles
Nils
Nilson
Niven
Noach
Noah
Noam
Noble
Noe
Noel
Nolan
Noland
Norbert
Norm
Norman
Normand
Normie
Norris
Northrop
Northrup
Norton
Norwood
Nunzio
Obadiah
Obadias
Oberon
Obie
Octavius
Odell
Odie
Odin
Odysseus
Olaf
Olag
Ole
Oleg
Olin
Oliver
Olivier
Olle
Ollie
Omar
Oral
Oran
Orazio
Orbadiah
Oren
Orin
Orion
Orlando
Orren
Orrin
Orson
Orton
Orville
Osbert
Osborn
Osborne
Osbourn
Osbourne
Oscar
Osgood
Osmond
Osmund
Ossie
Oswald
Oswell
Otes
Othello
Otho
Otis
Otto
Owen
Ozzie
Ozzy
Pablo
Pace
Paco
Paddie
Paddy
Padraig
Page
Paige
Pail
Palmer
Paolo
Park
Parke
Parker
Parnell
Parrnell
Parry
Parsifal
Partha
Pascal
Pascale
Pasquale
Pat
Pate
Patel
Paten
Patin
Paton
Patric
Patrice
Patricio
Patrick
Patrik
Patsy
Pattie
Patty
Paul
Paulo
Pavel
Pearce
Pedro
Peirce
Pembroke
Pen
Penn
Pennie
Penny
Penrod
Pepe
Pepillo
Pepito
Perceval
Percival
Percy
Perry
Pete
Peter
Petey
Petr
Peyter
Peyton
Phil
Philbert
Philip
Phillip
Phillipe
Phillipp
Phineas
Phip
Pierce
Pierre
Pierson
Piet
Pieter
Pietro
Piggy
Pincas
Pinchas
Pincus
Piotr
Pip
Plato
Pooh
Porter
Poul
Powell
Praneetf
Prasad
Prasun
Prent
Prentice
Prentiss
Prescott
Preston
Price
Prince
Pryce
Puff
Purcell
Putnam
Pyotr
Quent
Quentin
Quiggly
Quigly
Quigman
Quill
Quillan
Quincey
Quincy
Quinlan
Quinn
Quint
Quintin
Quinton
Quintus
Rab
Rabbi
Rabi
Rad
Radcliffe
Rafael
Rafe
Ragnar
Raimund
Rainer
Raj
Rajeev
Raleigh
Ralf
Ralph
Ram
Ramesh
Ramon
Ramsay
Ramsey
Rand
Randal
Randall
Randell
Randi
Randie
Randolf
Randolph
Randy
Ransell
Ransom
Raoul
Raphael
Raul
Ravi
Ravil
Rawley
Ray
Raymond
Raymund
Raymundo
Raynard
Rayner
Raynor
Reagan
Red
Redford
Redmond
Reece
Reed
Rees
Reese
Reg
Regan
Regen
Reggie
Reggis
Reggy
Reginald
Reginauld
Reid
Reilly
Reinhard
Reinhold
Rem
Remington
Remus
Renado
Renaldo
Renard
Renato
Renaud
Renault
Rene
Reube
Reuben
Reuven
Rex
Rey
Reynard
Reynold
Reynolds
Reza
Rhett
Ric
Ricard
Ricardo
Riccardo
Rice
Rich
Richard
Richardo
Richie
Richmond
Richy
Rick
Rickard
Rickey
Ricki
Rickie
Ricky
Rik
Rikki
Riley
Rinaldo
Ripley
Ritch
Ritchie
Roarke
Rob
Robb
Robbert
Robbie
Robert
Roberto
Robin
Robinson
Rochester
Rock
Rockwell
Rocky
Rod
Rodd
Roddie
Roddy
Roderic
Roderich
Roderick
Roderigo
Rodge
Rodger
Rodney
Rodolfo
Rodolph
Rodolphe
Rodrick
Rodrigo
Rodrique
Rog
Roger
Rogers
Roice
Roland
Rolando
Rolf
Rolfe
Rolland
Rollin
Rollins
Rollo
Rolph
Romain
Roman
Romeo
Ron
Ronald
Ronen
Roni
Ronnie
Ronny
Roosevelt
Rory
Roscoe
Ross
Roth
Rourke
Rowland
Roy
Royal
Royce
Rube
Ruben
Rubin
Ruby
Rudd
Ruddie
Ruddy
Rudie
Rudiger
Rudolf
Rudolfo
Rudolph
Rudy
Rudyard
Rufe
Rufus
Rupert
Ruperto
Russ
Russel
Russell
Rustie
Rustin
Rusty
Rutger
Rutherford
Rutledge
Rutter
Ryan
Sal
Salem
Salim
Salman
Salmon
Salomo
Salomon
Salomone
Salvador
Salvatore
Salvidor
Sam
Sammie
Sammy
Sampson
Samson
Samuel
Samuele
Sancho
Sander
Sanders
Sanderson
Sandor
Sandro
Sandy
Sanford
Sanson
Sansone
Sarge
Sargent
Sascha
Sasha
Saul
Sauncho
Saunder
Saunders
Saunderson
Saundra
Saw
Sawyer
Sawyere
Sax
Saxe
Saxon
Say
Sayer
Sayers
Sayre
Sayres
Scarface
Schroeder
Schuyler
Scot
Scott
Scotti
Scottie
Scotty
Seamus
Sean
Sebastian
Sebastiano
Sebastien
See
Selby
Selig
Serge
Sergeant
Sergei
Sergent
Sergio
Seth
Seymour
Shadow
Shaine
Shalom
Shamus
Shanan
Shane
Shannan
Shannon
Shaughn
Shaun
Shaw
Shawn
Shay
Shayne
Shea
Sheff
Sheffie
Sheffield
Sheffy
Shelby
Shelden
Sheldon
Shell
Shelley
Shelton
Shem
Shep
Shepard
Shepherd
Sheppard
Shepperd
Sheridan
Sherlock
Sherlocke
Sherman
Sherwin
Sherwood
Sherwynd
Shimon
Shlomo
Sholom
Shorty
Shurlock
Shurlocke
Shurwood
Si
Sibyl
Sid
Siddhartha
Sidnee
Sidney
Siegfried
Siffre
Sig
Sigfrid
Sigfried
Sigmund
Silas
Silvain
Silvan
Silvano
Silvanus
Silvester
Silvio
Sim
Simeon
Simmonds
Simon
Simone
Sinclair
Sinclare
Sivert
Siward
Skell
Skelly
Skip
Skipp
Skipper
Skippie
Skippy
Skipton
Sky
Skye
Skylar
Skyler
Slade
Slim
Sloan
Sloane
Sly
Smith
Smitty
Socrates
Sol
Sollie
Solly
Solomon
Somerset
Son
Sonnie
Sonny
Sparky
Spence
Spencer
Spense
Spenser
Spike
Spiro
Spiros
Spud
Srinivas
Stacy
Staffard
Stafford
Staford
Stan
Standford
Stanfield
Stanford
Stanislaw
Stanleigh
Stanley
Stanly
Stanton
Stanwood
Stavros
Stearn
Stearne
Stefan
Stefano
Steffen
Stephan
Stephanus
Stephen
Sterling
Stern
Sterne
Steve
Steven
Stevie
Stevy
Stew
Steward
Stewart
Stig
Stillman
Stillmann
Sting
Stinky
Stirling
Stu
Stuart
Sturgis
Sullivan
Sully
Sumner
Sunny
Sutherland
Sutton
Sven
Swen
Syd
Sydney
Sylvan
Sylvester
Tab
Tabb
Tabbie
Tabby
Taber
Tabor
Tad
Tadd
Taddeo
Taddeus
Tadeas
Tailor
Tait
Taite
Talbert
Talbot
Tallie
Tally
Tam
Tamas
Tammie
Tammy
Tan
Tann
Tanner
Tanney
Tannie
Tanny
Tarrance
Tarrant
Tarzan
Tate
Taylor
Teador
Ted
Tedd
Teddie
Teddy
Tedie
Tedman
Tedmund
Tedrick
Temp
Temple
Templeton
Teodoor
Teodor
Teodorico
Teodoro
Terence
Terencio
Terrance
Terrel
Terrell
Terrence
Terri
Terrill
Terry
Thacher
Thad
Thaddeus
Thaddius
Thaddus
Thadeus
Thain
Thaine
Thane
Tharen
Thatch
Thatcher
Thaxter
Thayne
Thebault
Thedric
Thedrick
Theo
Theobald
Theodor
Theodore
Theodoric
Theophyllus
Thibaud
Thibaut
Thom
Thomas
Thor
Thorn
Thorndike
Thornie
Thornton
Thorny
Thorpe
Thorstein
Thorsten
Thorvald
Thurstan
Thurston
Tibold
Tiebold
Tiebout
Tiler
Tim
Timmie
Timmy
Timothee
Timotheus
Timothy
Tirrell
Tito
Titos
Titus
Tobe
Tobiah
Tobias
Tobie
Tobin
Tobit
Toby
Tod
Todd
Toddie
Toddy
Tom
Tomas
Tome
Tomkin
Tomlin
Tommie
Tommy
Tonnie
Tony
Tore
Torey
Torin
Torr
Torrance
Torre
Torrence
Torrey
Torrin
Torry
Town
Towney
Townie
Townsend
Towny
Trace
Tracey
Tracie
Tracy
Traver
Travers
Travis
Tray
Tre
Tremain
Tremaine
Tremayne
Trent
Trenton
Trev
Trevar
Trever
Trevor
Trey
Trip
Tristan
Troy
Truman
Tuck
Tucker
Tuckie
Tucky
Tudor
Tull
Tulley
Tully
Turner
Ty
Tybalt
Tye
Tyler
Tymon
Tymothy
Tynan
Tyrone
Tyrus
Tyson
Udale
Udall
Udell
Ugo
Ulberto
Uli
Ulick
Ulises
Ulric
Ulrich
Ulrick
Ulysses
Umberto
Upton
Urbain
Urban
Urbano
Urbanus
Uri
Uriah
Uriel
Urson
Vachel
Vaclav
Vail
Val
Valdemar
Vale
Valentin
Valentine
Van
Vance
Vasili
Vasilis
Vasily
Vassili
Vassily
Vaughan
Vaughn
Venkat
Verge
Vergil
Vern
Verne
Vernen
Verney
Vernon
Vernor
Vic
Vick
Victor
Vijay
Vilhelm
Vin
Vince
Vincent
Vincents
Vinnie
Vinny
Vinod
Virge
Virgie
Virgil
Virgilio
Vite
Vito
Vlad
Vladamir
Vladimir
Voltaire
Von
Wade
Wadsworth
Wain
Waine
Wainwright
Wait
Waite
Waiter
Wake
Wakefield
Wald
Waldemar
Walden
Waldo
Waldon
Waleed
Walker
Wallace
Wallache
Wallas
Wallie
Wallis
Wally
Walsh
Walt
Walter
Walther
Walton
Wang
Ward
Warde
Warden
Ware
Waring
Warner
Warren
Wash
Washington
Wat
Waverley
Waverly
Way
Waylan
Wayland
Waylen
Waylin
Waylon
Wayne
Web
Webb
Weber
Webster
Weidar
Weider
Welbie
Welby
Welch
Wells
Welsh
Wendall
Wendel
Wendell
Werner
Wes
Wesley
Weslie
West
Westbrook
Westbrooke
Westleigh
Westley
Weston
Weylin
Wheeler
Whit
Whitaker
Whitby
Whitman
Whitney
Whittaker
Wiatt
Wilber
Wilbert
Wilbur
Wilburn
Wilburt
Wilden
Wildon
Wilek
Wiley
Wilfred
Wilfrid
Wilhelm
Will
Willard
Willdon
Willem
Willey
Willi
William
Willie
Willis
Willmott
Willy
Wilmar
Wilmer
Wilson
Wilt
Wilton
Win
Windham
Winfield
Winford
Winfred
Winifield
Winn
Winnie
Winny
Winslow
Winston
Winthrop
Winton
Wit
Witold
Wittie
Witty
Wojciech
Wolf
Wolfgang
Wolfie
Wolfram
Wolfy
Woochang
Wood
Woodie
Woodman
Woodrow
Woody
Worden
Worth
Worthington
Worthy
Wright
Wyatan
Wyatt
Wye
Wylie
Wyn
Wyndham
Wynn
Wynton
Xavier
Xenos
Xerxes
Xever
Ximenes
Ximenez
Xymenes
Yaakov
Yacov
Yale
Yanaton
Yance
Yancey
Yancy
Yank
Yankee
Yard
Yardley
Yehudi
Yigal
Yule
Yuri
Yves
Zach
Zacharia
Zachariah
Zacharias
Zacharie
Zachary
Zacherie
Zachery
Zack
Zackariah
Zak
Zalman
Zane
Zared
Zary
Zeb
Zebadiah
Zebedee
Zebulen
Zebulon
Zechariah
Zed
Zedekiah
Zeke
Zelig
Zerk
Zeus
Zippy
Zollie
Zolly
Zorro
Rahul
Shumeet
Vibhu

+ 14 - 0
src/main/resources/names/readme.txt

@ -0,0 +1,14 @@
You may use the lists of names for any purpose, so long as credit is given
in any published work. You may also redistribute the list if you
provide the recipients with a copy of this README file. The lists are
not in the public domain (I retain the copyright on the lists) but are
freely redistributable.
If you have any additions to the lists of names, I would appreciate
receiving them.
My email address is mkant+@cs.cmu.edu.
Mark Kantrowitz
http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/nlp/corpora/names/

+ 16 - 0
src/test/java/com/yihu/ehr/SvrSepDemoApplicationTests.java

@ -0,0 +1,16 @@
package com.yihu.ehr;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SvrSepDemoApplicationTests {
	@Test
	public void contextLoads() {
	}
}